【测试技术】白盒测试之条件覆盖法和判定条件覆盖法

根据测试方法有没有关注程序内部的结构可以将其划分为:白盒测试、黑盒测试和灰盒测试,黑盒测试不关注程序内部的实现结构,仅仅是通过向程序进行输入来观察程序的输出对不对;白盒测试就需要关注程序内部的实现结构,对程序的逻辑结构实施相关的测试;下面来简单介绍一下条件覆盖法和判定条件覆盖法两种白盒测试方法。

1.条件覆盖法

所谓的条件覆盖法是指在测试时,设计若干个测试用例,然后运行被测程序,要使每个判断中每个条件的可能取值至少满足一次;

如下图所示的被测试程序流程图:

 

【测试技术】白盒测试之条件覆盖法和判定条件覆盖法

 

做程序的流程条件分析如下:

条件

取值

标记

A>1

取真

T1

取假

F1

B=0

取真

T2

取假

F2

A=2

取真

T3

取假

F3

X>1

取真

T4

取假

F4

按照条件覆盖法可以设计如下测试用例

测试用例

A B X

所走路径

覆盖条件

用例1

2 0 3

a c e

T1 T2 T3 T4

用例2

1 0 1

a b d

F1 T2 F3 F4

用例3

2 1 1

a b e

T1 F2 T3 F4

 

测试用例

A B X

所走路径

覆盖条件

用例1

1 0 3

a b e

F1 T2 F3 T4

用例2

2 1 1

a b e

T1 F2 T3 F4

 

 

2.判定条件覆盖法

所谓的判定条件覆盖法是指在测试时,设计若干个测试用例,然后运行被测程序,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次;

如下图所示的被测试程序流程图:

 

【测试技术】白盒测试之条件覆盖法和判定条件覆盖法

做程序的流程条件分析如下:

 

【测试技术】白盒测试之条件覆盖法和判定条件覆盖法

 

按照判定条件覆盖法可以设计如下测试用例

 

【测试技术】白盒测试之条件覆盖法和判定条件覆盖法

 

(1)以上四个测试用例覆盖了100%条件、分支

(2)从路径角度看仅覆盖了3条路径,漏掉了路径acd