等价类与边界值练习题解
- 格式:doc
- 大小:277.50 KB
- 文档页数:7
⿊盒测试⽤例设计⽅法之等价类和边界值⼀、等价类划分等价类划分是⼀种重要的、常⽤的⿊盒测试⽅法,不需要考虑程序的内部结构,只需要考虑程序的输⼊规格即可。
它将不能穷举的测试过程进⾏合理分类,从⽽保证设计出来的测试⽤例具有完整性和代表性。
1、等价类的分类 有效等价类:指符合《需求规格说明书》,输⼊合理的数据集合。
⽆效等价类:指不符合《需求规格说明书》,输⼊不合理的数据集合。
2、等价类思考步骤 (1)先确定有效和⽆效等价类 (2)有效等价类就是题⽬条件(两端的极值(边界值)要判断、中间随意⼀个值也要判断) (3)⽆效等价类先划分与条件相反的情况,再找到特殊情况(中⽂、英⽂、符号、空格、空)3、例题:A、测试QQ账号,账号的要求是 6---10位正整数。
B、⼿机号码1. 某城市的电话号码由三部分组成。
这三部分的名称和内容分别是地区码:空⽩或三位数字;前 缀:⾮’0’或’1’开头的三位数;后 缀:四位数字。
解:第⼀步:划分等价类,包括4个有效等价类,11个⽆效等价类。
第⼆步:确定调试⽤例。
对11个⽆效等价类,要选择11个调试⽤例,如下所⽰:3、等价类分类总结通过上⾯的案例,我们可以总结⼀下,当我们在测试⽂本框的程序可以考虑如下的情况:a:⽂本框要求输⼊的长度b:输⼊的类型c:组成规则d:是否为空e:是否重复---区分⼤⼩写,f:是否去除空格⼆、边界值分析1.什么是边界值分析法?边界条件,是指输⼊和输出等价类中那些恰好处于边界、或超过边界、或在边界⼀下的状态。
边界值分析法也是⼀种常⽤的⿊盒测试⽅法。
特别要注意的是:⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是在输⼊范围的内部。
我们先来看⼀个例题,解释⼀下为什么要⽤边界值。
题⽬:输⼊的参数值必须⼤于0同时⼩于100的整数。
接下来我们来看程序员写的⼀段代码:number = int(input("输⼊的参数值必须⼤于0同时⼩于100的整数:"))if 100 >= number >= 18:print("输⼊的数据合法")else:print("输⼊的数据不符合要求")各位思考⼀下,这⾥⾯有什么问题呢。
一、等价类划分法实例:1.输入条件为某个范围的取值:例:在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,它的有效和无效等价类分别为?2.输入条件为输入值的集合:例:假设PowerPoint打印输出幻灯片的页数分别为{1,2,3,6,9 },则根据黑盒测试中的等价类划分技术,它的有效和无效等价类分别为?3.输入为BOOL变量,它的有效和无效等价类分别为?4.输入条件中由若干规则组成,其中各个规则都是独立的:例:一条输入的字符串中不能含有“#”和“&”两个特殊字符(其他字符都是合法的)的规则,它的有效和无效等价类分别为?5.输入条件由一个合法的规则组成:例:某个变量的取值必须为100,那么它的有效和无效等价类分别为?6.为输入条件的组合关系划分等价类:输入条件同时满足x>10和y<200两个判断表达式决定,那么它的有效和无效等价类分别为?二、边界值分析法实例:1.大小范围边界例:若10≤x≤200,利用边界值分析法需要选择哪些测试数据?若10<x<200,利用边界值分析法需要选择哪些测试数据?2.极限边界当给出的整数是无限制范围时,它的边界便是整数的最大值和最小值。
例:16位的有符号整数,它的边界是?利用边界值分析法需要选择哪些测试数据?3.NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量month和变量day的取值范围为1≤month≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050。
利用边界值分析法选择测试数据进行测试用例设计,完成下表。
解答:等价类一、某程序规定:”输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形.通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。
用等价类划分方法为该程序进行测试用例设计.(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。
)分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数 (3)非零数 (4)正数(5)两边之和大于第三边(6)等腰(7)等边如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:1)如果不满足条件(5),则程序输出为 " 非三角形” 。
2)如果三条边相等即满足条件(7),则程序输出为” 等边三角形” .3)如果只有两条边相等、即满足条件(6),则程序输出为” 等腰三角形 " 。
4)如果三条边都不相等,则程序输出为” 一般三角形 " 。
列出等价类表并编号覆盖有效等价类的测试用例:a b c 覆盖等价类号码3 4 5 (1)—-(7)4 45 (1)--(7),(8)4 5 5 (1)-—(7),(9)5 4 5 (1)—-(7),(10)4 4 4 (1)——(7),(11)覆盖无效等价类的测试用例:二、设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的”日期检查功能"。
1)划分等价类并编号,下表等价类划分的结果输入等价类有效等价类无效等价类日期的类型及长度①6位数字字符②有非数字字符③少于6位数字字符④多于6位数字字符年份范围⑤在1990~2049之间⑥小于1990⑦大于2049月份范围⑧在01~12之间⑨等于00⑩大于122)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:测试数据期望结果覆盖的有效等价类200211 输入有效①、⑤、⑧3)为每一个无效等价类设计一个测试用例,设计结果如下:测试数据期望结果覆盖的无效等价类95June 无效输入②20036 无效输入③2001006 无效输入④198912 无效输入⑥200401 无效输入⑦200100 无效输入⑨200113 无效输入⑩边界值:一、当变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 ,请设计边界值测试用例:测试用例 mouth day year 预期输出Test1 6 15 1911 year超出【1912...2050】Test1 6 15 1912 1912.6.15Test1 6 15 1913 1913。
等价类和边界值测试用例举例等价类和边界值测试是软件测试中常用的测试方法,能够有效地发现系统中的错误和问题。
在进行等价类和边界值测试时,需要将输入值划分为不同的等价类,并选择边界值进行测试。
下面将以某个电子商务网站的注册功能为例,列举10个符合题目要求的等价类和边界值测试用例。
1. 等价类测试用例:用户名- 等价类1: 用户名为空- 等价类2: 用户名长度小于3个字符- 等价类3: 用户名长度大于20个字符- 等价类4: 用户名包含非法字符(如特殊符号、空格等)- 等价类5: 用户名已存在2. 边界值测试用例:用户名- 边界值1: 用户名长度等于3个字符- 边界值2: 用户名长度等于20个字符- 边界值3: 用户名长度大于3个字符,小于20个字符3. 等价类测试用例:密码- 等价类1: 密码为空- 等价类2: 密码长度小于6个字符- 等价类3: 密码长度大于16个字符- 等价类4: 密码包含非法字符(如特殊符号、空格等)4. 边界值测试用例:密码- 边界值1: 密码长度等于6个字符- 边界值2: 密码长度等于16个字符- 边界值3: 密码长度大于6个字符,小于16个字符5. 等价类测试用例:邮箱- 等价类1: 邮箱为空- 等价类2: 邮箱格式不正确(缺少@或后缀不正确)- 等价类3: 邮箱已存在6. 边界值测试用例:邮箱- 边界值1: 邮箱长度等于5个字符- 边界值2: 邮箱长度等于254个字符- 边界值3: 邮箱长度大于5个字符,小于254个字符7. 等价类测试用例:手机号码- 等价类1: 手机号码为空- 等价类2: 手机号码格式不正确(长度不为11位或不以1开头) - 等价类3: 手机号码已存在8. 边界值测试用例:手机号码- 边界值1: 手机号码长度等于10位- 边界值2: 手机号码长度等于11位- 边界值3: 手机号码长度大于10位,小于11位9. 等价类测试用例:验证码- 等价类1: 验证码为空- 等价类2: 验证码不正确10. 边界值测试用例:验证码- 边界值1: 验证码长度等于3个字符- 边界值2: 验证码长度等于6个字符- 边界值3: 验证码长度大于3个字符,小于6个字符通过以上的等价类和边界值测试用例,可以覆盖到各种可能的输入情况,包括空值、边界值、非法字符等。
等价类和边界值方法的结合例题等价类和边界值方法的结合例题:让测试不再头疼的神奇秘籍嗨,亲爱的小伙伴们!今天我要给你们分享一个超级厉害的测试方法,那就是等价类和边界值方法的结合。
这就像是给你的测试工作来了一场魔法变身,让那些隐藏的小怪兽(bug)无处可逃!首先咱们来聊聊啥是等价类。
想象一下,你面前有一堆水果,有苹果、香蕉、橙子、梨。
如果咱们把水果按照能剥皮和不能剥皮来分类,那能剥皮的就是一类,不能剥皮的就是另一类。
这就是等价类啦,就是把输入的东西按照相似的特性分成几类。
比如说,咱们要测试一个登录功能,用户名要求是 6 - 12 位的字母和数字组合。
那等价类就可以分为:有效的用户名(6 - 12 位的字母和数字组合)、太短的用户名(小于 6 位)、太长的用户名(大于 12 位)、包含非法字符的用户名(比如有特殊符号)。
接下来就是边界值啦!这就像是走钢丝,钢丝的两端就是边界。
比如说用户名要求是 6 - 12 位,那边界值就是 6 位、12 位,还有 5 位、13 位。
好啦,现在咱们来看看怎么把这俩结合起来搞个例题。
假设咱们要测试一个购物车结算功能,商品数量输入范围是 1 - 100 件。
第一步,先划分等价类。
有效等价类就是 1 - 100 件的输入,无效等价类呢,有小于 1 件(比如 0 件),大于 100 件(比如 101 件),还有非数字的输入(比如字母啥的)。
第二步,确定边界值。
那就是 1 件、100 件、0 件、101 件。
第三步,开始测试啦!先试试有效等价类里的中间值,比如50 件,看看有没有问题。
然后再试试边界值,输入 1 件,看看能不能正常结算;输入 100 件,瞅瞅有没有异常。
接着输入 0 件,看看系统会不会报错;最后输入 101 件,瞧瞧是不是会有提示说数量不对。
我跟你们说,我之前有一次测试的时候,就忘了考虑边界值,结果上线后,有个用户一下子买了 1000 件商品,系统直接崩溃啦!老板那个脸拉得比驴脸还长,我那叫一个惨哟!再给你们举个例子,比如说测试一个输入年龄的功能,范围是 18 - 60 岁。
测试用例设计方法之等价类划分与边界值分析1.等价类划分1.1.前言我们知道软件测试是根据软件开发各个阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例运行软件,以发现软件错误的过程。
但在设计测试用例时,往往程序的输入是不可能穷举的。
因此,我们在测试某个程序时就被限制在从所有的输入条件中挑选某个小的子集来设计测试用例。
选择这个子集的前提是必须保证子集是正确的,保证子集尽可能的发现最多的错误,保证子集能代表其他大部分的测试用例,保证子集的数量是最为合理的。
1.2.定义在前言中提到的“子集”,因为他们一个个具有代表性的集合,我们将这个“子集”称为等价类。
等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某个等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
1.3.方法应用使用等价类划分方法来做测试,主要分两个步骤:确定等价类,生成测试用例。
1.3.1.确定等价类确定等价类的过程是根据规格说明选取每一个输入条件将其划分为两个或更多的组。
一般将等价类分为两类,有效等价类和无效等价类。
有效等价类代表对程序的有效输入。
无效等价类代表的则是其他任何可能的不正确的输入。
遵循“有效”,“无效”这个两个原则我们可以设计一个等价类表,确定等价类的结果就是生成一个等价类表。
1.3.2.生成测试用例根据第一步的等价类表来生成测试用例,其过程如下:1.为每一个等价类设置一个不同的编号2.编写新的测试用例,尽可能多地覆盖那些尚未被覆盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖。
也就可理解为一个测试用用例可以涵盖多个有效等价类。
项⽬:NextDate()函数-等价类、边界值法(student)项⽬:NextDate( )函数测试需求:NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输⼊⽇期后⼀天的⽇期。
例如,输⼊为2006年3⽉7⽇,则函数的输出为2006年3⽉8⽇。
要求输⼊变量month 、day 和year 均为整数值,并且满⾜下列条件:①1≤month≤12②1≤day≤31③1912≤year≤2050要求:⿊盒测试、等价类划分法、边界值分析法分析:此函数的主要特点是输⼊变量之间的逻辑关系⽐较复杂。
复杂性的来源有两个:⼀个是输⼊域的复杂性,另⼀个是指闰年的规则。
例如变量year和变量month取不同的值,对应的变量day会有不同的取值范围,day值的范围可能是1~30或1~31,也可能是1~28或1~29。
⼀、等价类划分法设计测试⽤例1、简单等价类划分测试NextDate函数分析:(1)有效等价类知识点:有效等价类是指对软件规格说明⽽⾔,由有意义的、合理的输⼊数据所组成的集合。
利⽤有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能。
简单等价类划分测试NextDate函数可以划分以下三种有效等价类:M1={month:1≤month≤12}D1={day:1≤day≤31}Y1={year:1912≤year≤2050}(2)⽆效等价类知识点:⽆效等价类是指对软件规格说明⽽⾔,由⽆意义的、不合理的输⼊数据所构成的集合。
利⽤⽆效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地⽅。
若条件M1,D1,Y1中任何⼀个条件⽆效,那么NextDate 函数都会产⽣⼀个输出,指明相应的变量超出取值范围,例如month 的值不在1~12 范围当中。
显然还存在着⼤量的year 、month 、day 的⽆效组合,NextDate 函数将这些组合统⼀输出为:“⽆效输⼊⽇期”。
.边界值说明:由于程序开发过程中边界是最容易出现bug的地方,所以有了边界值法重点检查。
适用场合:有数据输入的地方,一般可以使用,边界值法跟等价类划分法一起使用,形成一套完善的测试方法。
例如性别,有效等价类男、女。
无效等价无。
如何使用:找到有效等价类和无效等价类的分界点(最大和最小),及其两边的点,(次边界)进行重点测试。
1、说明:如果测试时间紧张,会优先测试边界点(最大和最小),有时间在测试次边界2、边界值的数据本质上是属于某个等价类的范围,要求单独测试,实质上是一种冗余,但工作中必须要测,为了更好的测试质量。
(变界是最容易出bug的地方)3、等价类和边界值的综合测试:提出问题:在一条用例中只测试1个控件的一个有效数据,(有效等价类、有效边界值),比较简单,适合初学者,存在不必要冗余如何解决?----用例的优化(用例数会减少)注意:优化是用来处理有效数据的在一条用例中可以尽可能多的测试不同控件的1个有效数据(不同控件的有效数据可以组合起来测)效果:在测试质量不变的情况下,减少测试用例的数量四、无效数据怎么测?首先:1条用例只能测试1个控件的1个无效数据。
(单独测,不能组合,)避免发生屏蔽现象。
屏蔽现象:前面控件弹出错误提示后,后面的错误提示就弹不出来,就是屏蔽了。
选取测试数据不要极端等价类和边界值应用步骤:1、独立分析每个控件的有效等价类和边界值和无效数据控件的等价类和边界值2、把分析结果填入《数据分析表》3、综合分析数据,形成测试思路,最后编写测试用例测试思路:1)先测有效数据(1条用例尽可能测多个控件的有效数据的组合,一定会减少测试用例的数量,实现优化)2)在测无效数据(无效数据+无效边界值,每个控件的每个无效数据要单独测,避免屏蔽现象)3)最后在时间允许的情况下补充无效数据的组合,(多个控件无效数据组合,和1个控件多个无效数据组合)1---3000整数是等价类1.00-3000.00一样二、等价划分+边界值总结1、有效等价类好找,一半来自需求而且数量少,使用有效等价类的测试称为:通过测试或正向测试2、无效等价类数量较多,使用无效等价类的测试称为:失败测试或反向测试3、无效等价类长考虑哪些因素:1)要求“不能为空”不能为空2)要求“不能重复”3)要考虑范围(包括数的范围,字符个数的范围,)4)整数的类型(要测小数,字母,符号,汉字)要求是数(小数)就测:字母,符号,汉字小数有小数位数要求——要测小数点后位数的超出范围的情况4、关于小数的边界值:1)小数的次边界值要根据小数位数的要求取值例如:精确到小数点后2位,那么间隔单位为0.012)小数的位数也需要考虑边界值例如:小数点后2位边界值:小数点后2位次边界:小数点后1位小数点后3位补充:关于小数的有效等价类只要需求中没有明确说明是小数,那么默认既有小数范围也有整数范围三、测试用例的用途1、防止缺陷的遗漏2、版本的重复测试3、监督测试的过程(可以评估工作量)4、评估结果(对测试的完成情况进行评估,对产品也能进行评估)5、提高测试效率,缩短周期(版本升级和更新,只要修整部分测试用例,用力资源可以重用)四、对测试人员有什么要求(写测试用例的时候)?1、基本要求:能够把1条测试用例写好(基本标准:就是别人按照你写的用例可以顺利的执行)2、更高的要求;综合分析形成测试思路,逻辑清晰,测试要全面完善,(标准:测试覆盖率高,遗漏bug少)。
习题解答第三章黑盒测试及其用例1、NextDate函数(P28)请使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。
解答:NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。
要求输入变量month、day和year均为整数值,并且满足下列条件:条件1 1≤month ≤12条件2 1≤day ≤31条件3 1912≤year ≤2050分析程序规格说明中给出和隐含的对输入条件的要求。
列出等价类表*年份:闰年、非闰年(1912≤year ≤2050)*月份:1-12月*天数:1、3、5、7、8、10、12(31天),4、6、9、11(30天),2(28或29)等价类表2、找零钱最佳组合(P47)假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。
请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
解答:根据等价类划分法和边界值分析法的基本定义,得到下列基本认识:Step1.输入:商品价格R和顾客付款P有以下情况:R > 100 0 < R < = 100 R <= 0 P > 100 R<= P <= 100 P < RStep2.输出:N50 = 1 N50 = 0 4 > N10 >= 1 N10 = 0 N5 = 1 N5 = 0 4 > N1 >= 1 N1 = 0 Step3.分析规格中每一决策点之情形,以RR1, RR2, RR3 表示计算要找50, 10, 5 元货币数时之剩余金额。
R > 100R <= 0 P > 100 P < R RR1 >= 50 RR2 >= 10 RR3 >= 5Step4. 由上述之输入/ 输出条件组合出可能的情形。
3、某计算机语言的编译系统关于数组定义的语法规则如下:DIMENSION array1[,array2][,array3]…上面语句用来声明一或多个数组array1、array2、array3…,一个语句最多可定义6个数组。
其中[]内的内容数组描述符形式如下: n(d[,d]…)其中n 为数组名,由1到6个字母或数字组成,为首的必须是字母;d 为数组维数说明符,数组维数范围为1-7,形式为[lb:]ub,其中lb和ub分别表示数组该维的下界和上界,例如:DIMENSION A1(-2:5,3:10),B(5)这里定义了一个二维数组A1和一个一维数组B。
A1一维的下界为-2,上界为5,二维的下界为3,上界为10;B一维的下界为1,上界为5。
等价类表:输入有效等价类无效等价类数组定义符DIMENSION非DIMENSION分隔符空格(tab、多个空格)非空格数组个数1~6<1>6数组分隔符,非,数组描述符数组名由1到6个字母或数字组成,为首的必须是字母个数<1个数>6非字母数字组成非字母开头()非()数组维数说明符1~7<1>7lb:ub ub>=lb ub<lb分隔符:非:lb可缺省ub>=1ub<1[lb:]ub:ublb:lb -65534到65535之间的整数<-65534>65535非整数ub -65534到65535之间的整数<-65534>65535非整数维数分割,非,义6个数组。
其中[]内的内容是可选的(以下出现的 []也一样)。
DIMENSION为数组类型定义符,array1、array2、示数组该维的下界和上界,取值范围均为-65534到65535之间的整数,ub>=lb。
若未定义lb,则其值缺省认为为1。
,上界为5。
价类非DIMENSION dimension非字母数字组成非字母开头数字开头字符开头中文开头类型定义符,array1、array2、array3等为数组描述符。
三角形问题的三种测试方式--边界值测试,等价类测试、决策表测试一.方法简介1. 定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2. 与等价划分的区别1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3. 边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
4. 常见的边界值1) 对16-bit 的整数而言32767 和-32768 是边界2) 屏幕上光标在最左上、最右下位置3) 报表的第一行和最后一行4) 数组元素的第一个和最后一个5) 循环的第0 次、第1 次和倒数第2 次、最后一次5. 边界值分析1) 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
例:测试计算平方根的函数--输入:实数--输出:实数--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。
2) 如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
等价类和边界值等价性划分:选择输入,输出,动作,环境,或者你感兴趣的因素,对这些因素进行分类,系统应该对每一类中的因素进行等价处理。
我们选择的测试应该至少代表了每个类中的一个选项。
当选择存在某种有意义的顺序,等价类中就会存在边界值。
整数:假设输入允许的最大数量为99,那么等价类和边界值如下:在有效的数量类里面,也可能存在两个子类,可能允许输入千位分隔符。
这只有当你允许数目可以数以千计时才有意义。
如果说输入65536可以,为什么65537不可以。
由于依赖于计算机表示而迫使产生了边界值。
尤其是最大的边界。
这样,我们完全可以分析出两个无效的等价类。
数量过少,数量过多。
那么最低的有效值减1和最高有效数量加1都是你的边界值。
对于卖东西而言。
0是典型的边界值,卖出1包槟榔是有意义的,卖出0包则没意义。
对于随行人数而言,随行人数0又是有意义的,我们在设计时,考虑系统应该显示的业务行为。
一个合理的用户期待是什么样子的,以此来设计测试,覆盖这些行为。
实数:对于实数而言,整数的例子可以直接借用,这里我们需要考虑的问题是一个数值的最小差值是多少。
在测试我们酒店管理系统时,一个可能的用例是用户提交申请查看账务信息。
为了识别等价类和边界值,我们必须知道我们的差值幅度是多少,在实际中,我们保存的为0.01.那么有效等价类为什么我把有效等价的又分成了三个子类。
比0小的,比0大的,和0,这样就造成了位于0和接近0的边界值。
很多时候奇怪的事情发生在0,如果程序员忘记在做除法时检查0值会怎么样。
空值有的时候在计算时被处理成0.所以,在一个数值中检查位于或者接近0这样做是很值得的。
输入过多的小数位数也是无效等价类,使用了错误的千位或者小数分隔符的无效等价类,输入两个小数分隔符或者千位分隔符。
解答:
等价类
一、某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。
用等价类划分方法为该程序进行测试用例设计。
(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。
)
分析题目中给出和隐含的对输入条件的要求:
(1)整数(2)三个数(3)非零数(4)正数
(5)两边之和大于第三边(6)等腰(7)等边
如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:
1)如果不满足条件(5),则程序输出为 " 非三角形 " 。
2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
列出等价类表并编号
覆盖有效等价类的测试用例:
a b c 覆盖等价类号码
3 4 5 (1)--(7)
4 4
5 (1)--(7),(8)
4 5 5 (1)--(7),(9)
5 4 5 (1)--(7),(10)
4 4 4 (1)--(7),(11)
覆盖无效等价类的测试用例:
二、设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
1)划分等价类并编号,下表等价类划分的结果
日期的类型及长度①6位数字字符②有非数字字符
③少于6位数字字符
④多于6位数字字符
年份范围⑤在1990~2049之间⑥小于1990
⑦大于2049
月份范围⑧在01~12之间⑨等于00
⑩大于12
2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、
⑤、⑧,设计的测试用例如下:
测试数据期望结果覆盖的有效等价类
200211 输入有效①、⑤、⑧
3)为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据期望结果覆盖的无效等价类
95June 无效输入②
20036 无效输入③
2001006 无效输入④
198912 无效输入⑥
200401 无效输入⑦
200100 无效输入⑨
200113 无效输入⑩
边界值:
一、当变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year 的取值范围为1912≤year≤2050 ,请设计边界值测试用例:
测试用例 mouth day year 预期输出
Test1 6 15 1911 year超出【1912...2050】
Test1 6 15 1912 1912.6.15
Test1 6 15 1913 1913.6.15
Test1 6 15 2049 2049.6.15
Test1 6 15 2050 2050.6.15
Test1 6 15 2051 year超出【1912...2050】
Test1 6 -1 2001 day超出【1...31】
Test1 6 1 2001 2001.6.1
Test1 6 2 2001 2001.6.2
Test1 6 30 2001 2001.6.30
Test1 6 31 2001 2001.6.31
Test1 6 32 2001 day超出【1...31】
Test1 -1 15 2001 mouth超出【1...12】
Test1 1 15 2001 2001.1.15
Test1 2 15 2001 2001.2.15
Test1 11 15 2001 2001.11.15
Test1 12 15 2001 2001.12.15
Test1 13 15 2001 mouth超出【1...12】
二、三角形问题的边界值分析测试用例
在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。
在此,我们将三角形每边边长的取范围值设值为[1, 100] 。