软件测试技术第3章

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单科成绩的输入域:{单科成绩:0≤单科成绩≤100}。根据题意 当0≤单科成绩<60时,程序所做的处理是:将单科成绩登记为“不及 格”;当60≤单科成绩≤100时,程序所做的处理是:按实际输入的单科 成绩登记。
0≤单科成绩<60、60≤成绩≤100为0≤单科成绩≤100的子集,这两 个子集互不相交,每个子集里的所有数据都执行相同的处理,相同处理 映射到程序的“相同的执行路径”。所以只要在每个子集选择一个有代 表性的数据就可以把其处理功能测试了。
如果规定了输入数据的一组值,并且程序要对每个输入值分别进行不同的处 理,则可为每个值确定一个有效等价类,此外针对这组值确立一个无效等价类, 它是这组值之外的所有数据的集合。
例如:程序输入x 取值于一个固定的枚举类型{1,3,7,15},且程序中对这 4个数值分别进行了处理,则有效等价类为x=1、x=3、x=7、x=15,无效等价类为 {x :x≠1,3,7,15}。
在19750101~19950101之间 (2)
在1~12之间
(3)
在1~31之间
(4)
>19950101
(8)
< 19750101
(9)
<1
(10)
>12
(11)
<1
(12)
>31
(13)
3.2.4 等价类划分法实例
【例3-2】某公司招聘销售人员,规定报名者为1975年1月1日到1995年1月1日期 间出生,若出生日期为1995年1月1日之后,将显示“对不起,您的年龄太小 了!!”并拒绝接收,若出生日期在1975年1月1日之前,将显示“对不起,您的 年龄超过了我们的要求!!”并拒绝接收。用等价类划分法为此功能设计测试用 例。
解: 第一步:划分等价类。 根据题意,本题可能进行3种不同的处理: 1)如果a、b、c三边构成一般三角形,输出其周长; 2)如果a、b、c三边构成等边三角形,输出其面积; 3)如果a、b、c三边构成等腰三角形,输出其三个内角。 根据以上3种不同的处理所对应的输入条件: 一般三角形的输入条件:a+b>c;a+c>b;b+c>a; 等边三角形的输入条件:a=b=c; 等腰三角形的输入条件:a=b;a=c;b=c; 另外,在等价类划分时还要考虑输入各种可能发生的情况。根据以上的分析和考 虑该三角形三边a、b、c的等价类划分如表3-8所示:
解: 第一步:划分等价类 假设出生年月日由8为数字字符表示,前4位为年,5、6位为月,7、8位为日。可 划分4个有效等价类和9个无效等价类。
报名功能的等价类表
输入数据(或输入条件)
有效等价分类
无效等价分类
出生年月日
8位有效数字字符 (1)
有非数字字符 位数小于8 位数大于8
(5) (6) (7)
数值范围 月的范围 日的范围
3.2.4 等价类划分法实例
【例3-2】某公司招聘销售人员,规定报名者为1975年1月1日到1995年1月1日期 间出生,若出生日期为1995年1月1日之后,将显示“对不起,您的年龄太小 了!!”并拒绝接收,若出生日期在1975年1月1日之前,将显示“对不起,您的 年龄超过了我们的要求!!”并拒绝接收。用等价类划分法为此功能设计测试用 例。
测试用例 Test Case 1 Test Case 2 Test Case 3
输入数据 R6 -20 124
预期输出 非法成绩 非法成绩 非法成绩
测试范围 (4) (5) (6)
3.2.4 等价类划分法实例
【例3-2】某公司招聘销售人员,规定报名者为1975年1月1日到1995年1月1日期 间出生,若出生日期为1995年1月1日之后,将显示“对不起,您的年龄太小 了!!”并拒绝接收,若出生日期在1975年1月1日之前,将显示“对不起,您的 年龄超过了我们的要求!!”并拒绝接收。用等价类划分法为此功能设计测试用 例。
3.1 黑盒测试概述
黑盒测试又称为功能测试,即将软件看成黑盒子,在完全不考虑 软件内部结构和特性的情况下,测试软件的外部特性。黑盒测试是一 种从用户观点出发,基于规格说明的测试方法,主要验证软件的功能 需求和用户最终需求。黑盒测试技术有很多测试方法,常用的有等价 类划分、边界值法、错误猜测法、因果图、判断表法、正交实验法、 场景法等
3.2 等价类划分
熟练掌握黑盒测试技术的等价类划分法,需要学习 以下内容: • 认识什么是等价类 • 等价类概念和等价类的分类 • 划分等价类的方法 • 等价类划分法设计测试用例实例分析
3.2.1 认识等价类
假设GradeRecord函数能根据输入的单科成绩,把低于60分的成 绩登记为“不及格”,大于等于60分的成绩按实际成绩登记。
GradeRecord函数的等价类表
输入数据(或输入条件)
有效等价类
无效等价类
单科成绩
为数字
(1)
0≤Grade<60 (2)
60≤Grade≤100 (3)
有非数字字符 (4) Grade<0 (5) Grade>100 (6)
ቤተ መጻሕፍቲ ባይዱ
3.2.4 等价类划分法实例
【例3-1】假设GradeRecord函数能根据输入的单科成绩,把低于60分的成绩登记 为“不及格”,大于等于60分的成绩按实际成绩登记。试用等价类划分法为其设 计测试用例。
从理论上讲,黑盒测试只有采用穷举输入测试,把输入域里所有 可能的输入数据都作为测试情况考虑,才能查出程序中所有的错误。 实际上测试情况有无穷多个,不仅要测试所有合法的输入,而且还要 对那些不合法但可能的输入进行测试,测试量是非常庞大的,因此完 全测试是不可能的,所以要进行有针对性的测试。本章介绍了多种测 试方法,其目的是在庞大的输入域中合理的设计有代表性的测试用例, 以进行高效的测试。
【例3-1】假设GradeRecord函数能根据输入的单科成绩,把低于60分的成绩登记 为“不及格”,大于等于60分的成绩按实际成绩登记。试用等价类划分法为其设 计测试用例。
解: 第三步:为无效等价类设计测试用例 为GradeRecord函数无有效等价类设计的测试用例。
GradeRecord函数覆盖无有效等价类的测试用例
输入数据 19r41215 199414 1992100556 19981029 19700528 19800013 19981416 19770200 19920533
预期输出 输入错误提示 输入错误提示 输入错误提示 对不起,您的年龄太小了!! 对不起,您的年龄超出了!! 输入错误提示 输入错误提示 输入错误提示 输入错误提示
解: 第二步:为有效等价类设计测试用例 为GradeRecord函数有效等价类设计的测试用例。
GradeRecord函数覆盖有效等价类的测试用例
测试用例 Test Case 1 Test Case 2
输入数据 47 80
预期输出 不及格 登记成绩80分
测试范围 (1)、(2) (1)、(3)
3.2.4 等价类划分法实例
2.无效等价类 无效等价类是指对程序的规格说明来说所有的不合理的或无意义的
输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个, 也可能有多个。利用无效等价类,可以检查程序对各种异常输入的处理。
3.2.3 划分等价类的方法
1.划分等价类
有效等价类是指对于程序规格说明来说,是合理的、有意义的输入 数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明预 先规定的功能和性能。有效等价类可以是一个,也可以是多个。
等价类的划分方法如下: 1)按区间划分
如果可能的输入数据属于一个取值范围,则可以确定1个有效等价类和2个无 效等价类。
例如:输入数据是学生的单科成绩,单科成绩的范围是0~100,可划分为 “0≤单科成绩≤100”一个有效等价类(有效成绩),“单科成绩<0”、“单科 成绩>100”2个无效等价类(无效成绩)。 2)按数值划分
解: 第二步:为有效等价类设计测试用例 为报名功能有效等价类设计测试用例。Test Case 1测试用例就可以覆盖编号为 (1)、(2)、(3)、(4)的有效等价类。
测试用例 Test Case 1
报名功能覆盖有效等价类的测试用例
输入数据 19860815
预期输出 接收报名
测试范围 (1)、(2)、(3)、(4)
3.2.3 划分等价类的方法
等价类的划分方法如下: 3)按数值集合划分
如果可能的输入数据属于一个值的集合(假定n个),并且程序对该集合的每 一个输入值进行不同的处理,这时可确定n个有效等价类和1个无效等价类。 4)按限制条件或规则划分
在规定了输入数据必须遵守的规则或限定条件的情况下,可确定1个有效等价 类(符合规则)和若干个无效等价类(从不同角度违反规则)。
测试范围 (5) (6) (7) (8) (9) (10) (11) (12) (13)
3.2.4 等价类划分法实例
【例3-3】输入3个整数a、b、c作为三角形的三条边。判断所构成的三角形是什么 类型的三角形。如果是一般三角形,输出其周长;如果是等边三角形,输出其面 积;如果是等腰三角形,输出其三个内角。试用等价类划分法为该程序三角形判 断及计算部分进行测试用例设计。
2.等价类划分法设计测试用例的原则 为等价类表中所有的有效等价类和无效等价类设计测试用例的原则如下:
• 为每一个等价类规定一个惟一的编号。 • 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类;重复这 一步骤,直到所有的有效等价类都被覆盖为止。 • 设计一个新的测试用例,使其覆盖且仅覆盖一个无效等价类,重复这一步骤, 直到所有的无效等价类都被覆盖为止。
解: 第三步:为无效等价类设计测试用例 为报名功能无效等价类设计测试用例
报名功能覆盖有效等价类的测试用例
测试用例 Test Case 1 Test Case2 Test Case 3 Test Case 4 Test Case 5 Test Case 6 Test Case 7 Test Case 8 Test Case 9
为了保证测试用例的完整性和代表性。测试用例由有效等价类和无 效等价类的代表组成。
3.2.2 等价类划分概述
1.有效等价类 有效等价类是指对于程序规格说明来说,是合理的、有意义的输入
数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明预 先规定的功能和性能。有效等价类可以是一个,也可以是多个。
例如:程序输入条件为以字符‘a’开头、长度为8的字符串,并且字符串不 包含‘a’~ ‘z’之外的其他字符,则有效等价类为满足了上述所有条件的字符 串,无效等价类为不以‘a’开头的字符串、长度不为8的字符串和包含了‘a’~ ‘z’之外其他字符的字符串。 5)按布尔值分
如果输入条件是一个布尔量,可确定一个有效等价类和一个无效等价类。 6)按处理方式划分
等价类划分就是解决如何选择适当的数据子集来代表整个数据集的 问题,通过降低测试的数目去实现“合理的”覆盖,覆盖更多的可能数 据,以发现更多的软件缺陷。
所谓等价类划分,就是把输入数据(有效的和无效的)的所有可能 值划分为若干等价类。使每个等价类中任何一个测试用例,都能代表同 一等价类中的其它测试用例。划分了等价类,就可以从每个等价类中选 取任意的或具有代表性的数据当作测试用例进行测试。
0≤单科成绩<60、60≤成绩≤100就是GradeRecord函数测试的两 个等价类。
3.2.2 等价类划分概述
在做黑盒测试时,需要通过接口把输入域中的数据输入,然后观 察输出结果,如果输出结果和预期结果不一致,表示被测试的功能有 错误。通常输入域是个庞大数据集合,试图用穷举法把输入域中的所 有输入数据做上述测试是不可能也没有必要的。
在确定已划分的等价类中各元素在程序处理中方式不同的情况下,则应再将 该等价类进一步的划分为更小的等价类。
在划分了等价类之后,需要建立等价类表,列出所有划分出的等价类,如下 表。
3.2.3 划分等价类的方法
表1 等价类表
输入数据(或输入条件)
… …
有效等价类
… …
无效等价类
… …
3.2.3 划分等价类的方法
3.2.4 等价类划分法实例
【例3-1】假设GradeRecord函数能根据输入的单科成绩,把低于60分的成绩登记 为“不及格”,大于等于60分的成绩按实际成绩登记。试用等价类划分法为其设 计测试用例。
解: 第一步:划分等价类 GradeRecord函数的输入变量是Grade(单科成绩),可将其输入域划分成 0≤Grade<60、60≤Grade≤100两个有效等价类,另外还需考虑各种情况的无效等 价类。
《软件测试技术及实践》
詹慧静 陈燕 段相勇
第3章 黑盒测试技术
本章学习目标
了解黑盒测试基本知识 熟练掌握等价类划分法设计测试用例 熟练掌握边界值分析法设计测试用例 熟练掌握错误猜测法设计测试用例
熟练掌握因果图法设计测试用例 熟练掌握判断表驱动法设计测试用例
熟练掌握场景法设计测试用例 熟练掌握正交实验法设计测试用例
相关文档
最新文档