当前位置:文档之家› 第7课时黑盒测试—案例分析与实践

第7课时黑盒测试—案例分析与实践


3-25
案例讨论

对三种设计结果的讨论
1.
每种结果都覆盖了一些应该测试的功能点。 第一组结果过多的关注于对无效等价类的测试,遗漏了很多
NextDate问题需测试的关键点,比如平年闰年、二月、大小月、
月底等等。
2.
第二组结果包含了第一组的结果的基础上,增加了对二月、年
底等的测试。
3.
第三组结果通过日常知识的运用,使得测试用例涵盖了大部分 需测试的要点,尤其是测试用例1,2,3的有效性明显要比前二

步骤
1. 2. 3.
划分等价类。 为每一个有效等价类和无效等价类规定一个唯一的编号。 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有 效等价类, 重复这一步直到所有有效等价类均被测试用 例所覆盖。
4.
设计一个测试用例,使其只覆盖一个无效等价类,重复
这一步,直到所有无效等价类均被覆盖。
3-10

件下所产生的输出结果,验证系统是否达到用户需求。

常用的黑盒测试技术包括
1. 2. 3. 4.
等价类划分 边界值测试 决策表 因果图
3-5
不可能进行完全的测试
1.
结论是不计其数 整型: 从 1+1 到 9999999999999999999999 99999999+
9999999999999999999999

测试用例
4.
覆盖等价类1,6,3: 测试输入=(2006,-2,16), 预期结果=“输入错 误!” 覆盖等价类1,7,3: 测试输入=(2006,13,16), 预期结果=“输入错 误!” 覆盖等价类1,2,8: 测试输入=(2006,6,0), 预期结果=“输入错误!”
5.
6. 3-18 7.
参考答案3

测试用例2(续)
7. 8. 9. 10.
覆盖等价类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-26
案例讨论

如何再次提高测试用例质量呢?
1.
在实际测试时,可以考虑增加一些测试用例来补充想到但是通
过使用测试用例设计方法没有办法覆盖到的测试点(实际上, 运用了错误猜测法)
2.
根据功能规格说明,选取恰当的测试用例设计方法。 Nextdate各个输入变量之间其实并不是完全独立的,在设计 测试用例时并没有考虑到这点,可以使用:

数值 字母


位置
数量 速度 大小
3-31
边界值测试

除了遵循前面论述的边界值设计原则,还应考虑测试下面的情况

第一个/最后一个, 第一个-1/最后一个+1 开始/结束, 开始-1/结束+1 超过/低于, 刚刚超过/刚刚低于


空的/满的, 比空的少点/比满的多些
最短的/最长的, 稍微短点/稍微长点 最慢的/最快的, 稍微慢点/稍微快点 最早的/最晚的, 稍微早点/稍微晚点 最大的/最小的, 最大的+1/最小的-1 最高的/最低的, 最高的+1/最低的-1 距离最近的/距离最远的
3-32
与等价划分的区别


边界值分析使用与等价类划分法相同 的划分。 只是边界值分析假定错误更多地存在 于划分的边界上,边界值分析不是从 某等价类中随便挑一个作为代表,而 是在等价类的边界上以及两侧的情况 设计测试用例。
99999999
2.
小数:1.0+0.1,1.0+0.2…等等

如果你打算测试一个 计算器程序的功能, 你认为需要进行多少 次输入?
3. 4.
键盘上的任何一种组合
为乘法和除法运算重复上面的操作
黑盒测试

通常运用一种测试用例设计方法不能获得理想的测试用例 集。在设计测试用例时,比较实用的方法是综合运用几种 设计技术,取长补短。

功能说明

NextDate(年,月,日)是三个变量的函数。函数返 回输入日期的下一个日期。变量年份,月份,日期都是
整数值,且满足下面的条件: 1900≤年 ≤2060 ,1≤
月 ≤12, 1≤日 ≤31.

分析和比较两种不同的等价类划分方法以及三种设计的 结果。
3-16
参考答案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), 预期结果=“输入错误!”
3-17
参考答案1
划分等价类---说明
在划分等价类时,可以参考下面的建议:
1.
如果某个输入条件规定值的范围,可以确定一个有效等 价类和两个无效等价类
2.
如果输入条件规定了一个输入值的集合,可以确定一个
有效等价类和一个无效等价类。
3.
如果输入条件是一个布尔表达式的条件,可以确定一个 有效等价类和一个无效等价类
3-9
确定测试用例

测试思想
1.
3-28
案例

功能描述

某选课系统中规定每门课程的选修人数在[20,60] 之间,小于20人不开设该门选修课,大于60人不接 受后面的选课要求。

测试设计
1.
输入变量:选课人数 测试输入
选择当选课人数分别为19,20,21, 59,60和61
等几个边界点 再加上一个正常值点40
覆盖等价类1,2,9: 测试输入=(2006,4,33), 预期结果=“输入错误!”
参考答案2

另一种答案

等价类及其编号
3-19
参考答案2

测试用例1
1.
覆盖等价类1,3,7: 测试输入=(2000,7,16), 预期结果 =(2000,7,17)
2.
覆盖等价类2,4,8: 测试输入=(2006,4,29), 预期结果
软件测试技术与实践
第7课时 黑盒测试—案例分析与实践
内容提纲

复习 讨论常用的黑盒测试用例设计方法,包括
等价类划分 边界值测试 决策表 因果图 综合运用黑盒用例设计方法



总结
上一节课我们学了什么呢?
黑盒测试

把系统看成一个不透明的黑匣,在完全不考虑系统内部结构 和处理过程的情况下,只关注在选择的输入和相应的执行条
3-33
决策表

定义

决策表由四个部分组成,分别是条件桩(condition stub), 条件项
(condition entry), 动作桩(action stub)和动作项(action entry).
1.
2. 3. 4. 5.
条件桩是条件的列表
动作桩是满足条件时系统可能产生的动作的列表. 条件项是条件值的组合 动作项是在条件值组合情况下发生的动作 表中的每一列称为一条规则。规则定义了动作在什么条件下发生
在2001~ 2005之间
在1~12之间
2
小于2001 大于2005 小于1 大于12
月份范围
3
3-13
第二步:为有效等价类设计测试 用例
对表中编号为1、2、3的3个有效等价类用 一个测试用例覆盖:
测试数据 200105
期望结果 输入有效
覆盖范围 等价类1,2,3
3-14
第三步:为每一个无效等价类至 少设计一个测试用例

决策表分为

有限项决策表:每个条件只有两个值,如Y/N, T/F,1/0 等. 扩展项决策表:条件项的取值有多个(大于2个)
3-34
决策表示例

下面的决策表描述了读书时的场景
条件桩 条件项
动作桩
动作项 规则
3-35
决策表

和测试用例之间的关系

一条规则对应一个测试用例, 条件项构成了测试用例的输入,相应的动作
5. 6.
3-21
参考答案2

测试用例1(续)
7.
8. 9. 10.
覆盖等价类1,13,7: 测试输入=(2004,-2,10),预期结果=“输入错误!”
覆盖等价类1,14,7: 测试输入=(2004,15,10),预期结果=输入错误!” 覆盖等价类1,3,15: 测试输入=(2004,8,-2), 预期结果=“输入错误!” 覆盖等价类1,3,16: 测试输入=(2004,8,38),预期结果=“输入错误!”
测试数据 001MAY 20015 2001001 200001 期望结果 输入无效 输入无效 输入无效 输入无效 覆盖范围 等价类4 等价类5 等价类6 等价类1,7,3
200801
200100 200113
3-15
输入无效
输入无效 输入无效
等价类1,8,3
等价类1,2,9 等价类1,2,10
案例

各个变量之间进行全组合 决策表
3.
综合运用多种测试用例设计方法,以求得测试质量与成本之间 的平衡
3-27
边界值测试

边界值
1. 2.
任何值得测试的范围的临界点,可分为: 边界值:明确地定义在规格说明书中 次边界:隐含在软件中必须经过分析才能获得 取边界点附近的值作为测试用例的输入,可参考如下的设计原则: 如果输入条件定义了数值区间(a,b),那么测试用例应包括a、b、 稍微比a大、稍微比b大、稍微比a小和稍微比b小等几种情况. 举个例子,如果a,b是整数, 除在a,b之间取正常点外,a,b,a1,b-1,a+1,b+1都应被测试.
相关主题