况,根据他们选择测试用例。
例如, 在单元测试时曾列出的许多在模块中常见的错误。 以
前产品测试中曾经发现的错误等,
这些就是经验的总结。 还有,输入数据和输出数据为 0
的情况。输入表格为空格或输入表格只有一行。
这些都是容易发生错误的情况。 可选择这些
情况下的例子作为测试用例。
3 结构性测试用例设计
结构性测试又称白盒测试 (White-box Testing),也称逻辑驱动测试,是把测试对象看
作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理
过程,不需测试软件产品的功能。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句
覆盖、判定覆盖、条件覆盖、判定
/条件覆盖、条件组合覆盖和路径覆盖。
下面以一个实际例子说明逻辑覆盖的六种不同的测试用例的设计。
3.1 语句覆盖:
语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语
句至少执行一次
对于该例来说,
A=2,B=5,X=4 时,执行路径 ace,就把每个语句执行了一遍。
3.2 判定覆盖
判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能
结果至少出现一次,对于
此例,
当
A=1,B=5,X=2 时,第一个判定为真,第二个判定为假。执行路径 acd
当
A=3,B=5,X=3 时,第一个判定为假,第二个判定为真。执行路径 abe
3.3 条件覆盖
条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所
有可能结果至少出现一次,但未必能覆盖全部分支;该例子中有两个判定,每个判定有两
个条件,也就是四个条件,四个条件分别取真假两种可能,只要在用例条件中四个条件的
真假各出现一次就可以了。
A<3 取真 t1,取假 f1
B=5 取真 t2,取假 f2
A=2 取真 t3,取假 f3
X>2 取真 t4,取假 f4
这样可以
选择 t1t2t3t4 和 f1f2f3f4 组合。
A=2,B=5,X=3 满足条件 t1t2t3t4,程序执行路径为 ace
A=3,B=4,X=2 满足条件 f1f2f3f4,程序执行路径为 abd
这样四个条件的真假值都取到了,也可选择别的组合方式,例如
t 1f2t3t4 和 f1t2f3f4,只要保证每个条件的真假值各取到一次就行。
3.4 判定条件覆盖:
判定
/条件覆盖是使判定中每个条件的所有可能结果至少出现一次,并且每个判定本身
的所有可能结果也至少出现一次;
上面条件覆盖中的
t1t2t3t4,f1f2f3f4 的例子正好满足此条件,所以就采用与上面相同
的取值。
3.5 条件组合覆盖
对于(
A<3)and (B=5)的组合有
(1) A<3,B=5
(2) A<3,B!=5;