51Testing软件测试论坛
标题:
质疑:这组测试设计真能达到分支覆盖吗???
[打印本页]
作者:
bluepop
时间:
2004-8-23 09:27
标题:
质疑:这组测试设计真能达到分支覆盖吗???
AUT:========
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
}
TestCase:======
测试用例的输入为:
{ x=4、y=5、z=5}
{ x=2、y=5、z=5}
作者:
bluepop
时间:
2004-8-23 09:36
定义?
条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次;
所以:
此AUT的条件应该有四个,分别是——
条件1:(x>3)
条件2:(z<10)
条件3:(x= =4)
条件4:(y>5)
而根据上面的两组测试数据,只能满足条件1和条件3的覆盖,那条件2、条件4呢???【请大家多多指教!】
作者:
东方一华
时间:
2004-8-24 10:23
这里对语句块1 中的y其实应该有限制的,如果y<1/x语句块1就会出错
同时语句块3可能会考虑语句快1和语句快2执行的条件和情况(可能2个都不执行!)
作者:
njypch
时间:
2004-8-24 11:31
上面的用例已经达到了分支覆盖.你说的是条件覆盖(逻辑覆盖).
作者:
Kapok
时间:
2004-8-25 15:09
分支覆盖应该是branch coverage吧 比condition coverage弱
{ x=4、y=5、z=5}同时满足两个predicate
{ x=2、y=5、z=5}同时不满足两个predicate
因此足够覆盖所有分支
作者:
bluepop
时间:
2004-8-25 20:43
其实我想问是否满足条件覆盖?Sorry,有些材料把分支覆盖也叫做条件覆盖……
作者:
Kapok
时间:
2004-8-25 21:14
Originally posted by
bluepop
at 25-8-2004 20:43:
其实我想问是否满足条件覆盖?Sorry,有些材料把分支覆盖也叫做条件覆盖……
如果是condition coverage的话 你的第一个回帖没错
(z<10) 和 (y>5) 没有被覆盖
作者:
bluepop
时间:
2004-8-26 09:24
谢谢——Kapok!
作者:
闪灵
时间:
2007-7-11 13:47
呵呵,这样的所谓覆盖有什么意义呢?sqrt函数的返回值是double型的,它把j定义成int,如果程序进入第一个条件而不进入第二个的话,返回值极可能是个奇怪负数。而你的测试用例更本不可能发现这个问题啊。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2