白盒测试之逻辑覆盖---软考

   白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。

   白盒测试常用的技术是逻辑覆盖、循环覆盖和基本路径测试。

   本次,小编为大家介绍逻辑覆盖。逻辑覆盖考察用测试数据运行被策程序时对程序逻辑的覆盖程度。包括六种,覆盖从弱到强的顺序依次是语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

代码:

int  result(int  x, int  y, int  z) 

int  k=0,j=0; 

if((x) 

k=x+y; 

if((y>3)||(x==10)) 

j=x*y; 

return  k+j; 

流程图:

白盒测试之逻辑覆盖---软考_第1张图片

条件1:M={(x

条件2:N={(y>3)||(x==10)}

1. 语句覆盖:每条语句(包括判定语句和赋值语句)至少执行一次。

测试用例

判定M的值

判定N 的值

覆盖路径

输入:x=2,y=4,z=3

T

T

ace

2. 判定覆盖:又称分支覆盖,每个判定的每个分支至少执行一次,即一个判定的“真”、“假”各执行一次。

测试用例

判定M的值

判定N 的值

覆盖路径

输入:x=2,y=4,z=3

T

T

ace

输入:x=6,y=2,z=8

F

F

abd

3. 条件覆盖:每个判定的每个条件应取到各种可能的值。对于此示例来说,每个判定包括两个条件。

测试用例

具体取值条件

覆盖路径

输入:x=10,y=11,z=3

x3

ace

输入:x=6,y=2,z=7

x>y,z>5,x!=10,y<3

abd

4. 判定/条件覆盖:同时满足判定覆盖条件覆盖。它的含义是,选取足够的测试用例,使得表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。

测试用例

判定M的值

判定N的值

具体取值条件

覆盖路径

输入:x=10,y=11,z=3

T

T

x3,x==10

ace

输入:x=6,y=2,z=7

F

F

x>y,z>5,y<3,x!=10

abd

5. 条件组合覆盖:每个判定中各条件的每一种组合至少出现一次。

条件组合表:

编号

覆盖条件取值

判定条件取值

判定-条件组合

1

T1,T2

M

x

2

T1,F2

/M

x5

3

F1,T2

/M

x>y,z<5

4

F1,F2

/M

x>y,z>5

5

T3,T4

N

y>3,x==10

6

T3,F4

N

y>3, x!=10

7

F3,T4

N

Y<3, x==10

8

F3,F4

/N

y<3, x!=10

测试用例表:

测试用例

覆盖条件

覆盖路径

覆盖组合

输入:x=10,y=11,z=3

T1,T2, T3,T4

ace

1,5

输入:x=2,y=4,z=8

T1,F2, T3,F4

abe

2,6

输入:x=10,y=2,z=3

F1,T2, F3,T4

abe

3,7

输入:x=6,y=2,z=7

F1,F2, F3,F4

abd

4,8

显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。

6.路径覆盖:使程序中每一条可能的路径至少执行一次。

测试用例

覆盖条件

覆盖路径

输入:x=10,y=11,z=3

T1,T2, T3,T4

ace

输入:x=1,y=2,z=3

T1,T2, F3,F4

acd

输入: x=10,y=2,z=3

F1,T2, F3,T4

abe

输入: x=6,y=2,z=7

F1,F2, F3,F4

abd

   路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。所以,六种逻辑覆盖的关系并不是包含关系。

你可能感兴趣的:(软考)