background image

况,根据他们选择测试用例。

 例如, 在单元测试时曾列出的许多在模块中常见的错误。 以

前产品测试中曾经发现的错误等,

 这些就是经验的总结。 还有,输入数据和输出数据为 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;