51Testing软件测试论坛

标题: [白盒测试]关于条件覆盖中的一个例子的疑问 [打印本页]

作者: testdatura    时间: 2009-7-4 16:01
标题: [白盒测试]关于条件覆盖中的一个例子的疑问
“条件覆盖”的含义是:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。
我看到的一个范例:
void  DoWork(int x,int y,int z)
{  int  k=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
标题: 回复 1# 的帖子
根据定义,条件覆盖测试:选取足够多的测试数据,使被测试程序中不仅每条语句至少执行一次,而且每个判定表达式中的每个条件都取到各种可能的结果。
楼主的用例也是正确的。即能使每条语句达到至少执行一次,每个条件都至少取得一次真假
作者: testdatura    时间: 2009-7-5 14:50
谢谢.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2