黑盒测试等价类

上传人:san****019 文档编号:70260401 上传时间:2019-01-16 格式:PPT 页数:50 大小:865.51KB
返回 下载 相关 举报
黑盒测试等价类_第1页
第1页 / 共50页
黑盒测试等价类_第2页
第2页 / 共50页
黑盒测试等价类_第3页
第3页 / 共50页
黑盒测试等价类_第4页
第4页 / 共50页
黑盒测试等价类_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《黑盒测试等价类》由会员分享,可在线阅读,更多相关《黑盒测试等价类(50页珍藏版)》请在金锄头文库上搜索。

1、第3章 黑盒测试方法,主要内容,3.1 黑盒测试法概述,又称为功能测试或数据驱动测试,把程序看成一个黑盒子,完全不考虑程序的内部结构和处理程序,只是在程序的接口进行测试,以检查程序功能是否正常,程序是否能适当接收输入数据产生正确的输出数据。 检查程序功能是否按照需求规格说明书的规定正常使用,测试每个功能是否有遗漏,检测性能等特性要求是否满足要求。 检测模块接口是否存在问题。 检测程序初始化和终止方面的错误。,黑盒测试,请注意 通常运用一种测试用例设计方法不能获得理想的测试用例集。在设计测试用例时,比较实用的方法是综合运用几种设计技术,取长补短。本章的最后会给出一个示例。 进行黑盒测试设计方法的

2、主要依据是软件系统需求规格说明书,因此,在进行黑盒测试设计之前需要确保说明书是经过评审的,其质量达到了既定的要求。另外,如果没有说明书的话,可以选择探索式测试。 黑盒测试思想不仅可以用于测试软件的功能,同时,也可用于测试软件的非功能,如性能、安全、可用性等。,如果你打算测试一个计算器程序的功能,你认为需要进行多少次输入?,结论是不计其数 整型: 从 1+1 到 999999999999999999999999999999+ 999999999999999999999999999999 小数:1.0+0.1,1.0+0.2等等 键盘上的任何一种组合 为乘法和除法运算重复上面的操作,如果不采用等级

3、类方法?,连一个计算器程序的测试工作量都是惊人的!,3.2 等价类测试,可以考虑从负实数、负整数、零、正整数、正实数等数据区间抽取一个数进行运算,等价类法,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。,等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的 将程序可能的输入数据分成若干个子集,从每个子集选取少数代表性的数据作为测试用例 在分析需求规格说明的基础上划分等价类,列出等价类表,有效等价类和无效等价类,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意

4、外的考验。经过正反的测试才能确保软件具有更高的可靠性。,有效等价类是有意义的、合理的输入数据,可以检查程序是否实现了规格说明中所规定的功能和性能 无效等价类和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合,有效等价类和无效等价类,例如:在进行无记名投票时,假如有6个候选人,每个人只能从中选定不超过3个候选人。那么清点选票时凡是选择4、5、6个候选人的票都作废,也就是无效票,需要统计。无效票就算是无效等价类,而有效票就是有效等价类。,有效等价类是有意义的、合理的输入数据,可以检查程序是否实现了规格说明中所规定的功能和性能 无效等价类和有效等价类相反,即不满足程序输入要求或者无效

5、的输入数据构成的集合,确定等价类的方法,1. 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。,合理值,如:程序输入条件为199的整数x,则有效等价类为199,2. 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。如:输入条件为x=a,则有效等价类为x=a;无效等价类为x!=a 3. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。如:输入条件为BOOL x=true,则有效等价类为x=true,无效等价类为x=false。,确定等价类的方法(2),不满足输入条件的数据,满足条

6、件的集合,Boolean,Non-Boolean,确定等价类的方法 (3),4. 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理,这种情况下可确立n个有效等价类和一个无效等价类。如:程序输入条件为x,取值于一个固定的枚举类型1,2,3,程序对这3个数字分别进行处理,对于其他的数值采用采用默认处理方式,则有效等价类为x=1,x=2,x=3,无效等价类为x!=1、2、3的值的集合。 5. 如果有理由确信,某一个等价类中的各个元素在程序处理有区别,那么就把这个等价类划分成更小的等价类。,确定测试用例,步骤 划分等价类 为每一个有效等价类和无效等价类规定一个唯一的编号 设计一个

7、测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类, 重复这一步直到所有有效等价类均被测试用例所覆盖 设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,直到所有无效等价类均被覆盖 表示法,实例一,有效等价类? 无效等价类?,假如某个系统的注册用户名要求由字母开头,后跟字母或数字的任意组合构成,有效字符数不超过6个,测试用例?,实例一,有效等价类? 可以划分为两个子类: 用户名:0全字母字母=6,如John,Jerry,Kenedy 用户名:0字母开头+数字=6,如u0001,user01 无效等价类? 有数字开头构成的字符串集合,如101,300234 字母开头构成的字符串,并含有特殊字符

8、(_$),如user_1,user$。 字母开头构成的字符串长度超过6的集合,如userabcd,user0001 空字符串。,假如某个系统的注册用户名要求由字母开头,后跟字母或数字的任意组合构成,有效字符数不超过6个,实例二,有效等价类? 无效等价类?,电话号码在应用程序中也是经常能见到,对于我国固定电话号码由两部分组成: 地区码:以0开头的三位或者四位数字 电话号码:以非0、非1开头的七位或者八位数字 应用程序会接受一切符合上述规定的电话号码,而拒绝不符合规定的号码,测试用例?,具体案例1 :日期检查问题,功能说明 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990

9、年1月2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。 1)划分等价类并编号, 右表等价类划分的 结果,具体案例1 :日期检查问题,2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为、,设计的测试用例如下: 测试数据 期望结果 覆盖的有效等价类,具体案例1 :日期检查问题,3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据 期望结果 覆盖的无效等价类,具体案例2 : 三角形问题,功能说明 某程序规定:“输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形

10、。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 ”。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。),具体案例2 : 三角形问题,分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 “ 非三角形 “ 。 2)如果三条边相等即满足条件(7),则程序输出为 “ 等边三角形 “ 。 3)

11、如果只有两条边相等、即满足条件(6),则程序输出为 “ 等腰三角形 “ 。 4)如果三条边都不相等,则程序输出为 “ 一般三角形 “ 。,具体案例2 : 三角形问题,1)划分等价类 并编号, 右表等价类 划分的结果,具体案例2 : 三角形问题,2)设计测试用例,覆盖的有效等价类,具体案例2 : 三角形问题,2)设计 测试 用例,覆盖的无效等价类,覆盖的无效等价类,具体案例3 : NextDate问题,功能说明 NextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件: 1900年 2060 ,1月 12, 1日 31. 分析

12、和比较两种不同的等价类划分方法以及三种设计的结果,参考答案1,参考答案1 等价类及其编号,测试用例 覆盖等价类1,2,3: 测试输入=(2006,6,16), 预期结果=(2006,6,17) 覆盖等价类4,2,3: 测试输入=(1890,4,10), 预期结果=“输入错误!” 覆盖等价类5,2,3: 测试输入=(2062,4,10), 预期结果=“输入错误!”,直接根据等价类划分的第一条方法:“在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。”,参考答案1,测试用例 覆盖等价类1,6,3: 测试输入=(2006,-2,16), 预期结果=“输入错误!”

13、覆盖等价类1,7,3: 测试输入=(2006,13,16), 预期结果=“输入错误!” 覆盖等价类1,2,8: 测试输入=(2006,6,0), 预期结果=“输入错误!” 覆盖等价类1,2,9: 测试输入=(2006,4,33), 预期结果=“输入错误!”,遗漏了很多的关键点:如平年闰年、大月小月、月底的日期、年底的日期等。,参考答案2,另一种划分方法 等价类及其编号,基于常识我们确信对于大月、小月、2月、月底的日期、平年、闰年的处理方法不同,因此根据等价类划分的指导方法5可以将月年日划分成更小的等价类。,方法5. 如果有理由确信,某一个等价类中的各个元素在程序处理 有区别,那么就把这个等价类

14、划分成更小的等价类。,参考答案2,测试用例1 覆盖等价类1,3,7: 测试输入=(2000,7,16), 预期结果=(2000,7,17) 覆盖等价类2,4,8: 测试输入=(2006,4,29), 预期结果=(2006,4,30) 覆盖等价类1,5,9: 测试输入=(2000,2,30), 预期结果=“输入错误!”,参考答案2,测试用例1(续) 覆盖等价类2,6,10: 测试输入=(2001,12,31),预期结果=(2002,1,1) 覆盖等价类11,3,7: 测试输入=(1830,3,19), 预期结果=“输入错误!” 覆盖等价类12,3,7: 测试输入=(3000,3,19), 预期结

15、果=“输入错误!”,参考答案2,测试用例1(续) 覆盖等价类1,13,7: 测试输入=(2004,-2,10),预期结果=“输入错误!” 覆盖等价类1,14,7: 测试输入=(2004,15,10),预期结果=输入错误!” 覆盖等价类1,3,15: 测试输入=(2004,8,-2), 预期结果=“输入错误!” 覆盖等价类1,3,16: 测试输入=(2004,8,38),预期结果=“输入错误!”,参考答案3,测试用例2(续) 覆盖等价类2,3,10: 测试输入=(2001,7,31), 预期结果=(2001,8,1) 覆盖等价类2,4,9: 测试输入=(2006,4,30), 预期结果=(200

16、6,5,1) 覆盖等价类1,5,8: 测试输入=(2000,2,29), 预期结果=(2000,3,1),参考答案3,测试用例2(续) 覆盖等价类2,6,7: 测试输入=(2001,12,15),预期结果=(2001,12,16) 覆盖等价类11,3,7: 测试输入=(1830,3,19), 预期结果=“输入错误!” 覆盖等价类12,3,7: 测试输入=(3000,3,19), 预期结果=“输入错误!”,参考答案3,测试用例2(续) 覆盖等价类1,13,7: 测试输入=(2004,-2,10),预期结果=“输入错误!” 覆盖等价类1,14,7: 测试输入=(2004,15,10),预期结果=输入错误!” 覆盖等价类1,3,15: 测试输入=(2004,8,-2), 预期结果=“输入错误!” 覆盖等价类1,3,16: 测试输入=(2004,8,38),预期结果=“输入错误!”,NextDate案例讨论,对三种设计结果的讨论 每种结果都覆盖了一些应该测试的功能点 第一组结果过多的关注于对无效等价类的测试,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号