(二)动态白盒测试(含逻辑覆盖例子)

一、动态白盒测试(重点)
1、概念
动态:测试运行中的程序 白盒:洞察盒子里面,检查代码并观察运行状况
生成测试数据、分析测试结果的工作量大,使开展测试工作费时、费力、费人
二、动态白盒测试常用的测试用例方法
a.逻辑覆盖
语句覆盖;分支(判定覆盖);条件覆盖;分支-条件覆盖;条件组合覆盖;路径覆盖
b.基本路径覆盖(重点)
c.循环覆盖
这里写图片描述
void DoWork(int x,int y,int z)
{
int k=0,j=0;
if((x>3)&&(z<10))
{
k=x*z-1;
j=sqrt(k); //语句块1
}
if((x==4)||(y>5))
{
j=x*y+10; //语句块2
}

j=j%3;           //语句块3

}
1、语句覆盖
基本思想:设计若干条测试用例,保证程序中所有可执行语句 ,至少被执行一次

x=4 z=9  y=5

2、判定(分支)覆盖
基本思想:设计若干条测试用例,保证程序中每一个判定的真分支、假分支至少被执行一次

  x=4 z=9 y=5  (11)
  x=2 z=9 y=2  (00)

3、条件覆盖
基本思想:设计若干条测试用例,保证每个判定中每个条件的取值情况,至少被执行一次

   x=4 z=9 y=6        11 11 
   x=2 z=11 y=4       00 00  

注意:满足条件覆盖,不一定满足判定覆盖
还可以这样设计测试用例:(以下第二个判定一直为真)
x=2 z=11 y=6 00 01
x=4 z=9 y=4 11 10

4、判定-条件覆盖
基本思想:设计若干条测试用例,保证程序中每个判定中的每个条件的取值情况至少执行一次,并且要保证每个判定的所有取值情况至少执行一次

   x=2 z=11 y=4     00 00
   x=2 z=11 y=4     11 11

5、条件组合
判定1中的条件1:x>3 条件2: z<10 2^2
判定2中的条件1:x=4 条件2: y>5 2^2

 00 00:x=2 z=11 y=4
 01 01:x=1 z=9 y=6
 10 10:x=4 z=11 y=3
 11 11:x=4 z=9 y=6

6、路径覆盖

   1-2-4:x=4 z=9 y=6  11
   1-2-5:x=5 z=9 y=4  10
   1-3-5:x=2 z=11 y=4 00
   1-3-4: x=2 z=9 y=6  01

优点:这种测试方法可以对程序进行彻底的路径测试
缺点:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,而且不见得把所有的条件组合都覆盖

7、条件组合覆盖结合路径覆盖

x=4 z=9 y=6  11 11
x=5 z=9 y=4  11 00
x=2 z=11 y=4 00 00
x=2 z=9 y=6  01 01
x=4 z=11 y=3 10 10 (路径覆盖没有的情况)

这里写图片描述
===满足判定-条件覆盖,一定满足判定覆盖,一定满足条件覆盖
===满足条件覆盖,不一定满足判定覆盖
===满足判定覆盖,一定满足语句覆盖

猜你喜欢

转载自blog.csdn.net/jiangshangchunjiezi/article/details/80804595
今日推荐