软件测试技术(第三版)(范勇)课后答案 练习题3参考答案.docx
练习题三
如何结合使用等价类测试技术和边界值分析技术设计测试用例?
【参考答案】进行黑盒测试时需要根据被测试对象选择合适的测试方法。在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。
必要时用等价类划分方法补充一些测试用例。
有一个小程序,能够求出三个0~9999间整数中的最大值,请分别用边界值分析和健壮性测试方法设计测试用例。
【参考答案】
输入值a、b、c的极值分析
min-
min
min+
nom
max-
max
max+
-1
0
6
2~9997
9998
9999
10000
边界值分析测试用例、健壮性分析测试用例
序号
a
b
c
预期结果
测试结果
备注
1
6
7
0
7
c取极值
2
6
7
1
7
3
6
7
9998
9998
4
6
7
9999
9999
5
6
7
8
8
abc为nom
6
6
0
7
7
b取极值
7
6
1
7
7
8
6
9998
7
9998
9
6
9999
7
9999
b取极值
10
0
6
7
7
a取极值
11
1
6
7
7
12
9998
6
7
9998
13
9999
6
7
9999
14
6
7
10000
输入无效
考虑c值健壮性
15
6
7
-1
16
6
-1
7
考虑b值健壮性
17
6
10000
7
18
-1
6
7
考虑a值健壮性
19
10000
6
7
注:序号1-13为边界值分析测试用例;序号1-19为健壮性分析测试用例。
为什么要进行等价类的划分?等价类划分应遵循哪些原则?
【参考答案】使用等价类划分可以在测试资源有限的情况下,用少量有代表性的数据得到比较好的测试结果。基本原则如下:
等价类测试的弱形式不如对应的强形式的测试全面。
如果实现语言是强类型,则没有必要使用健壮形式的测试。
如果错误条件非常,则进行健壮形式的测试是合适的
如果输入数据以离散值区间和集合定义,则等价类测试是合适的。当然也适用于如果变量值越界系统就会出现故障的系统。
通过结合边界值测试,等价类测试可得到加强。
如果程序函数很复杂,则等价类测试是被指示的。在这种情况下,函数的复杂性可以帮助标识有用的等价类。
强等价类测试假设变量是独立的,相应的测试用例相乘会引起冗余问题。如果存在依赖关系,则常常会生成错误测试用例。
在发现合适的等价关系之前,可能需要进行多次尝试。
针对以下问题:某一8位计算机,其十六进制常数的定义是以0x或0X开头的十六进制整数,其取值范围为-7f~7f(不区分大小写字母),如0x11,0x2A,-0x3c。请采用等价类划分的方法设计测试用例。
【参考答案】
(1)划分等价类
输入条件等价类
有效等价类
编号
无效等价类
编号
长度
3-5位
0
小于3位
8
大于5位
9
符号
无
1
长度大于1的字符串
10
+或—
2
非+和—的一个其它字符
11
前缀
0X
3
一个数字或字符
12
0x
4
长度大于2的数字字符串
13
长度为2的非0x和0X字符串
14
第一位数值
0到7之间的数
5
非数字符号
15
大于7的整数
16
第二位数值
数
6
非数字非字母的符号
17
a到f的字母或A到F的字母
7
其它字母
18
(2)根据上述等价类设计测试用例
测试用例编号
输入数据
预期结果
覆盖等价类
符号
前缀
第一位数值
第二位数值
1
0x
拒绝
8
2
0x
44
55
拒绝
9
3
0x
7
5
接收
1、3、5、6
4
-
0X
0
A
接收
2、4、5、7
5
Ab
0x
0
5
拒绝
10
6
*
0X
0
a
拒绝
11
7
+
A
0
B
拒绝
12
8
01X
5
7
拒绝
13
9
+
Ab
6
3
拒绝
14
10
-
0x
a
B
拒绝
15
11
-
0X
8
9
拒绝
16
12
+
0x
7
*
拒绝
17
13
oX
5
Z
拒绝
18
假定一台ATM机允许提取增量为50元,总金额从100~2000(包含2000)不等的现金,请结合等价类方法和边界值分析进行测试。
【参考答案】
边界值分析法:
测试用例
输入金额
预期输出
1
50
超出[100,2000]
2
150
正常取出
3
1000
正常取出
4
1950
正常取出
5
2050
超出[100,2000]
等价分析法:
有效等价类
编号
无效等价类
编号
整数
1
浮点数
4
在100到2000之间
2
小于100
5
大于2000
6
在100到2000之间,能被50整除
3
在100到2000之间,不能被50整除
7
用例编号
输入数据
预期结果
覆盖的等价类
1
100
提取成功
1、2、3
2
100.5
提示:输入无效
2,4
3
50
提示:输入无效
5