testdatura 发表于 2009-7-4 16:01:18

[白盒测试]关于条件覆盖中的一个例子的疑问

“条件覆盖”的含义是:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。
我看到的一个范例:
voidDoWork(int x,int y,int z)
{intk=0,j=0;
   if((x>3)&&(z<10))
   {       k=x*y-1;   //语句块1
             j=sqrt(k);
    }
   if((x= =4)||(y>5))
   {       j=x*y+10;   //语句块2
    }
   j=j%3;             //语句块3
}
按照我的理解:
对于第一个判断:
条件x>3取真值为T1,取假值为-T1
条件z<10 取真值为T2,取假值为-T2
对于第二个判断:
条件x=4取真值为T3,取假值为-T3
条件y>5取真值为T4,取假值为-T4
那么,采用两个测试案例:
x=3,y=5,z=10
x=4,y=6,z=9
就可以了。

但是,看书上说,需要3个测试案例:
x=3,y=5,z=5
x=4,y=6,z=5
x=4,y=5,z=10
哪个是正确的,为什么?

kpsz202 发表于 2009-7-4 23:29:33

回复 1# 的帖子

根据定义,条件覆盖测试:选取足够多的测试数据,使被测试程序中不仅每条语句至少执行一次,而且每个判定表达式中的每个条件都取到各种可能的结果。
楼主的用例也是正确的。即能使每条语句达到至少执行一次,每个条件都至少取得一次真假

testdatura 发表于 2009-7-5 14:50:13

谢谢.
页: [1]
查看完整版本: [白盒测试]关于条件覆盖中的一个例子的疑问