51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14747|回复: 32
打印 上一主题 下一主题

[原创] 控制流图和圈复杂度

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-6-28 13:56:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
计算圈复杂度(独立路径数)的方法:
1、流程图中区域的数量对应于环形的复杂性
2、流程图形G的圈复杂度V(G)为
     V(G)=E-N+2
其中,E-是流程图形中的边数  N-是流程图形中的节点数
3、流程图形G的圈复杂度V(G)为:
   V(G)=P+1
其中,P是包含在流程图形中判断节点的数量。

void doWork(int x,int y,int z)
{
   int k=0,j=0;
   if((x>3) && (z<10))
   {
     k=x*y-1;
   }
   if((x==4) || (y>5))
  {
     j=x*y+10;
  }
  j=j/3;  
}

请帮忙计算以上代码的圈复杂度(独立路径数)
小弟根据以上代码画出流程图并计算出圈复杂度为3
但这段代码的独立路径数有4条呀
请高手指点。。。

[ 本帖最后由 hnxt_hwj 于 2007-7-11 12:25 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

33#
发表于 2013-9-16 16:03:43 | 只看该作者
如果判断中的条件表达式是由一个或多个逻辑运算符 (OR,  AND, NAND,  NOR)  连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。


茅塞顿开啊,终于知道2011年那独立路径的题目为什么那样画控制流图了!原来符合条件要分解为单个判断条件啊
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 2013-8-15 14:29:47 | 只看该作者
正确答案应该是5
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2013-7-8 17:07:24 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

30#
发表于 2010-10-19 17:09:16 | 只看该作者
16楼真不错
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2009-11-26 11:59:03 | 只看该作者
16楼说的很在理
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2009-10-22 17:14:50 | 只看该作者
学习了一回。
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2009-5-19 19:00:33 | 只看该作者
学习了,这个是正确的


原帖由 shc7478 于 2008-11-3 17:24 发表
你要先把控制流图画出来。
有很多人在画控制流图时,只是把条件简单地看成一个判定节点,而没有考虑条件的复合性。
关于画控制流图的问题,我以前也在论坛里请教过,好象都支支唔唔,很令我悲哀。
本题正确的控制 ...
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2009-4-27 22:36:12 | 只看该作者
原帖由 shc7478 于 2008-11-3 17:24 发表
你要先把控制流图画出来。
有很多人在画控制流图时,只是把条件简单地看成一个判定节点,而没有考虑条件的复合性。
关于画控制流图的问题,我以前也在论坛里请教过,好象都支支唔唔,很令我悲哀。
本题正确的控制 ...


标准答案,非常正确,同时也受益了,感谢楼主!
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2009-4-26 21:06:35 | 只看该作者
支持16楼的意见
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2009-4-21 15:35:21 | 只看该作者
从16楼画的图来看,我觉得应该是6
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2009-4-21 14:24:26 | 只看该作者

回复 16# 的帖子

1、环形复杂度
  (1)区域数=5
  (2)边数-节点数+2=10-7+2=5
  (3)判定节点个数+1=4+1=5

为什么区域数为5 ,我数数总觉得是6
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2009-3-8 11:27:24 | 只看该作者
每一个判定结点算一个复杂度的话。

程序中有FOR 又有|| 因此每个for有两条路径,

也就是说是4.
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2009-3-8 10:57:19 | 只看该作者

谢谢了

回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2008-11-10 10:25:04 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2008-11-9 11:42:12 | 只看该作者
ding si ta
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2008-11-5 18:09:32 | 只看该作者
为什么没人发表意见?看晕了吗?
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-11-4 14:42:03 | 只看该作者
ding起来
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-11-3 17:24:58 | 只看该作者
你要先把控制流图画出来。
有很多人在画控制流图时,只是把条件简单地看成一个判定节点,而没有考虑条件的复合性。
关于画控制流图的问题,我以前也在论坛里请教过,好象都支支唔唔,很令我悲哀。
本题正确的控制流图应为:


1、环形复杂度
  (1)区域数=5
  (2)边数-节点数+2=10-7+2=5
  (3)判定节点个数+1=4+1=5
2、基本路径集中独立路径条数=5,这个数目是测试用例的上界,即每一条边都走过,最多需设计5个测试用例,你能写出少于5个并能保证每一条边都走过也行。
3、独立路径集:
  1)1-4-5-7
  2)1-4-6-7
  3)1-4-5-6-7
  4)1-2-4-5-7
  5)1-2-3-4-5-7
独立路径有些同志在数的时候,可能算出来有9条,还是请好好研究一下基本路径测试的含义吧:每一条边都走过就OK了。

  4)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-11-2 21:53:32 | 只看该作者
确实是5,4个谓词结点+1
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-22 21:22 , Processed in 0.092169 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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