51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3859|回复: 8
打印 上一主题 下一主题

[讨论] 质疑:这组测试设计真能达到分支覆盖吗???

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-8-23 09:27:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
 楼主| 发表于 2004-8-23 09:36:30 | 只看该作者
定义?
条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次;
所以:
此AUT的条件应该有四个,分别是——
   条件1:(x>3)
   条件2:(z<10)
   条件3:(x= =4)
   条件4:(y>5)
而根据上面的两组测试数据,只能满足条件1和条件3的覆盖,那条件2、条件4呢???【请大家多多指教!】
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2004-8-24 10:23:04 | 只看该作者
这里对语句块1 中的y其实应该有限制的,如果y<1/x语句块1就会出错

同时语句块3可能会考虑语句快1和语句快2执行的条件和情况(可能2个都不执行!)
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-8-24 11:31:57 | 只看该作者
上面的用例已经达到了分支覆盖.你说的是条件覆盖(逻辑覆盖).
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2004-8-25 15:09:19 | 只看该作者
分支覆盖应该是branch coverage吧 比condition coverage弱
{ x=4、y=5、z=5}同时满足两个predicate
{ x=2、y=5、z=5}同时不满足两个predicate
因此足够覆盖所有分支
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2004-8-25 20:43:12 | 只看该作者
其实我想问是否满足条件覆盖?Sorry,有些材料把分支覆盖也叫做条件覆盖……
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2004-8-25 21:14:13 | 只看该作者
Originally posted by bluepop at 25-8-2004 20:43:
其实我想问是否满足条件覆盖?Sorry,有些材料把分支覆盖也叫做条件覆盖……


如果是condition coverage的话 你的第一个回帖没错
(z<10) 和 (y>5) 没有被覆盖
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2004-8-26 09:24:13 | 只看该作者
谢谢——Kapok!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-7-11 13:47:42 | 只看该作者
呵呵,这样的所谓覆盖有什么意义呢?sqrt函数的返回值是double型的,它把j定义成int,如果程序进入第一个条件而不进入第二个的话,返回值极可能是个奇怪负数。而你的测试用例更本不可能发现这个问题啊。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 15:32 , Processed in 0.067951 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表