第02课 黑盒测试1-等价类划分
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为每个等价类规定一个唯一的编号。 设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等 价类,重复这一步,直到测试用例覆盖了所有的有效等价类。 设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆 盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无 效等价类。
等价类划分
等价类划分法的测试运用
等价类测试注意的问题
等价类测试需要注意:
规格说明往往没有定义无效测试用例的期望输出应该 是什么样的,因此,测试人员需要花费大量时间来定 义这些测试用例的期望输出。 如果程序中性别一栏以下拉列表框实现,没有给用户 留下可能输入别的数据的机会,就不用设计无效等价 类。
案例
功能说明 NextDate(年,月,日)是三个变量的函数。 函数返回输入日期的下一个日期。变量年份,月 份,日期都是整数值,且满足下面的条件: 1900≤年 ≤2060 ,1≤月 ≤12, 1≤日 ≤31. 分析和比较两种不同的等价类划分方法以及三种 设计的结果。
何时设计?
使用黑盒测试方法,测试人员所使用的唯一信息就是软 件的规格说明,在完全不考虑程序内部结构和内部特性 的情况下,只依靠被测程序输入和输出之间的关系或程 序的功能来设计测试用例,推断测试结果的正确性,即 所依据的只是程序的外部特性。 客户需求
输出
输入
事件驱动
黑盒测试的基本概念
黑盒测试是从用户观点出发的测试,其目的是尽可能 发现软件的外部行为错误。
某个互不相交的子集 划分等价类 合,所有等价类的并 (1)有效等价类——检验程序是否实现了规格说明预先规定 便是整个输入域。
的功能和性能。
(2)无效等价类——检查软件功能和性能的实现是否有不符 合规格说明要求的地方。
等价类划分
常用的等价类划分原则(书P21)
(1)按区间划分 (2)按数值划分 (3)按数值集合划分 (4)按限制条件或规则划分 (5)细分等价类:等价类中的各个元素在程序中的处理若不相同, 则可将此等价类进一步划分成更小的等价类。
年龄
40~59岁
1~19岁、 60~99岁 “M”
2
3 4 小于1 大于99 除“M”和“F”之外的其他字符 除“已婚”和“未婚”之外的其 他字符 除空白、无和数字之外的其他字 符 小于1 大于9 12 13 14 15 16 17 18
性别 婚姻
“F”
已婚 未婚 空白
5
6 7 8
抚养人数
无
1~6人 6~9人
③ 婚姻:字符,只能取‘已婚’或‘未婚’。 ④ 抚养人数:空白或字符‘无’或一位非零整数(1~9) ⑤ 点数 :一位或两位非零整数,取值范围为8~19
等价类划分
通过对规格说明输入数据的取值分析,可以得出保险 公司人寿保险保费计算程序的等价类。
有效等价类 20~39岁 编号 1 无效等价类 编号
输入条件
输入3个数
测试用例为:
a 5 2 3 4 b 5 2 4 1 c 5 3 5 2 预期输出 等边三角形 等腰三角形 一般三角形 非三角形 Test1 Test2 Test3 Test4
测试用例
等价类划分
保险公司人寿保险保费计算程序的等价类测试
某保险公司人寿保险的保费计算方式为:保费=投保额×保险 费率。其中,保险费率根据年龄、性别、婚姻状况和抚养人数 的不同而有所不同,体现在不同年龄、性别、婚姻状况和抚养 人数,点数设定不同,10点及10点以上保险费率为0.6%,10点 以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚 姻状况和抚养人数来决定,具体规则见下表:
参考答案1
等价类及其编号
测试用例
1. 2. 3.
覆盖等价类1,2,3: 测试输入=(2006,6,16), 预期结果=(2006,6,17) 覆盖等价类4,2,3: 测试输入=(1890,4,10), 预期结果=“输入错误!” 覆盖等价类5,2,3: 测试输入=(2062,4,10), 预期结果=“输入错误!”
9
10 11
等价类划分
等 价 类 测 试 用 例
覆盖测试 用例编号 1-4-6-8 2-5-7-9 3-4-6-10 3-4-6-11 12 13 14 15 16 17 18 输入数据 年龄 27 50 70 19 0 100 50 27 45 62 30 性别 M F M F M F 男 M F M F 婚姻 抚养人数 已婚 未婚 已婚 未婚 已婚 未婚 已婚 离婚 已婚 未婚 已婚 空白 无 1 7 空白 无 4 7 没有 0 10 预期输出 保险费率 60 60 10 10 提示“年龄在1~99之间” 提示“年龄在1~99之间” 提示“性别输入为M/F” 提示“婚姻为已婚/未婚” 提示“抚养人数为空或无或1~9之间的整数” 提示“抚养人数为空或无或1~9之间的整数” 提示“抚养人数为空或无或1~9之间的整数”
覆盖等价类 1,2,3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
等价类划分
还可以从输出域定义等价类:
三角形问题有4种可能的输出:等边三角形、等腰三角形、一般 三角形、非三角形。
创建等价类表如下:
有效等价类 编号 1 2 3 非三角形 4 无效等价类 编号 等边三角形 等腰三角形 一般三角形
在确立了等价类之后,可按如下形式列出所有划分出的等价类表
Fra Baidu bibliotek
同样,也可按照输出条件,将输出域划分为若干个等价类。
等价类划分
等价类划分测试用例设计
在设计测试用例时,要同时考虑有效等价类和无效等 价类的设计。 软件不能都只接收合理的数据,还要接受无效的或不 合理的数据,这样获得的软件才能具有较高的可靠性。 具体步骤:
软件测试
孙旭光
防灾科技学院
复 习
软件测试是对软件需求分析、设计规格说明和编码的最 终复审,是软件质量保证的关键步骤。
其根本目的是以尽可能少的时间和人力发现并改正软件 中潜在的各种故障及缺陷,提高软件的质量。 软件测试贯穿于软件开发的整个生命周期。 软件测试由单元测试、集成测试、确认测试、系统测试 和验收测试这几个不同的测试阶段组成。 软件测试过程与软件开发过程的关系 软件测试过程模型:V模型和W模型。 测试环境=硬件+软件+网络+数据准备+测试工具
年龄
20~39 6点 40~59 4点 其它 2点
性别
M 4点 F 3点
婚姻状况
已婚 3点 未婚 5点
抚养人数
1人扣0.5点, 最多扣3点
等价类划分
分析程序规格说明中给出和隐含的对输入数据的要求, 可以得出:
① 年龄:一位或两位非零整数,取值的有效范围为1~99。
② 性别:一位英文字符,只能取 ‘M’或’F’ 值。
Con2.1≤b≤100 Con5.b﹤a+c
Con3.1≤c≤100 Con6.c﹤a+b
如果a、b和c满足Con1、Con2和Con3,则输出为4种情况 之一:
①如果不满足条件Con 4、Con 5和Con 6中任意一个,则程序 输出为“非三角形”。 ②如果三条边相等,则程序输出为“等边三角形”。 ③如果恰好有两条边相等,则程序输出为“等腰三角形”。 ④如果三条边都不相等,则程序输出为“一般三角形”。
参考答案2
另一种答案
等价类及其编号
参考答案2
测试用例1 1. 覆盖等价类1,3,7: 测试输入=(2000,7,16), 预期结果=(2000,7,17) 2. 覆盖等价类2,4,8: 测试输入=(2006,4,29), 预期结果=(2006,4,30) 3. 覆盖等价类1,5,9: 测试输入=(2000,2,30), 预期结果=“输入错误!”
参考答案2
测试用例1(续)
4. 5. 6.
覆盖等价类2,6,10: 测试输入=(2001,12,31),预期结果=(2002,1,1) 覆盖等价类11,3,7: 测试输入=(1830,3,19), 预期结果=“输入错误!” 覆盖等价类12,3,7: 测试输入=(3000,3,19), 预期结果=“输入错误!”
黑盒测试的基本概念
黑盒测试的两个显著优点:
① 黑盒测试与软件具体实现无关,所以如果软件实现 发生了变化,测试用例仍然可以使用; ② 设计黑盒测试用例可以和软件实现同时进行,因此 可以压缩项目总的开发时间。
黑盒测试的基本概念
要利用黑盒测试方法查出软件中所有故障,只能采用 把所有可能的输入全部都用作测试输入的穷举输入参 数法来完成。
在已知软件产品功能的基础上,主要检测以下错误:
检测软件功能能否按照需求规格说明书的规定正常工作,是否
有功能遗漏; 检测是否有人机交互错误,是否有数据结构和外部数据库访问
错误,是否能恰当地接收数据并保持外部信息(如数据库或文
件)等的完整性;
检测行为、性能等特性是否满足要求等;
检测程序初始化和终止方面的错误等。
第二章 黑盒测试
2.1 黑盒测试的基本概念
2.2 等价类划分
2.3 边界值分析法 2.4 因果图法 2.5 决策表法 2.6 黑盒测试方法的比较与选择 2.7 黑盒测试工具介绍
黑盒测试的基本概念
黑盒测试是将被测软件看作一个打不开的黑盒,主要 黑盒测试用例 根据功能需求设计测试用例,进行测试。
三角形问题的等价类测试
输入三个整数a、b和c分别作为三角形的3条边,通过程序判 断由这3条边构成的三角形类型是:等边三角形、等腰三角形、 一般三角形或非三角形(不能构成一个三角形)。 假定3个输入a、b和c在1~100之间取值,则要求a、b和c必 须满足以下条件:
Con1.1≤a≤100 Con4.a﹤b+c
穷举输入测试是不现实的。这就需要我们认真研究测试方法, 以便能开发出尽可能少的测试用例,发现尽可能多的软件故障。
常用的黑盒测试方法有等价类划分、边界值分析、因 果图、决策表测试等,每种方法各有所长,应针对软 件开发项目的具体特点,选择合适的测试方法。
等价类划分
等价类划分法是根据程序规格说明书对输入范围进行 划分,把所有可能的输入数据,即程序输入域划分为 若干个互不相交的子集,称为等价类,然后从每个等 价类中选取少数具有代表性的数据作为测试用例,进 等价类是指输入域的 行测试。
参考答案1
测试用例 4. 覆盖等价类1,6,3: 测试输入=(2006,-2,16), 预期结果=“输入错误!” 5. 覆盖等价类1,7,3: 测试输入=(2006,13,16), 预期结果=“输入错误!” 6. 覆盖等价类1,2,8: 测试输入=(2006,6,0), 预期结果=“输入错误!” 7. 覆盖等价类1,2,9: 测试输入=(2006,4,33), 预期结果=“输入错误!”
测试用例 Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15 Test16
期望输出 一般三角形 提示“请输入1~100之间的整数” 提示“请输入1~100之间的整数” 提示“请输入1~100之间的整数” 提示“请输入三条边” 提示“请输入三条边” 提示“请输入三条边” 提示“边长不能为0” 提示“边长不能为0” 提示“边长不能为0” 提示“边长不能为负” 提示“边长不能为负” 提示“边长不能为负” 提示“请输入1~100之间的整数” 提示“请输入1~100之间的整数” 提示“请输入1~100之间的整数”
等价类划分
创建等价类表:
有效等价类 整数 3个数 输入 3个整数
编号
1
无效等价类
一边为非整数 二边为非整数 三边均为非整数 只有一条边 只有二条边 多于三条边 一边为0 二边为0 三边为0 一边小于0 二边小于0 三边小于0 一边大于100 二边大于100 三边大于100
编号
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
2
1≤ a ≤100 1≤ b ≤100 1≤ c ≤100
3
等价类划分
确定等价类输入数据——设计测试用例:
输入a、b、c
3,4,5 1.5,4,5 3.5,2.5,5 2.5,4.5,5.5 3 4,5 2,3,4,5 3,0,8 0,6,0 0,0,0 -3,4,6 2,-7,-5 -3,-5,-7 101,4,8 3,101,101 101,101,101