51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14789|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-3 11:43:59 | 只看该作者
总计4条如下:
1 (x>3) && (z<10)    1条
2 x==4                    1条
3 y>5                      1条
4 (x==4) || (y>5)    1条
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-7-3 12:12:01 | 只看该作者
谢谢楼主
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-7-3 12:12:13 | 只看该作者
错了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-3 13:57:05 | 只看该作者

问题是不是错了啊

小弟自己画的控制流图算出的圈复杂度为3
但是此题的独立路数有4条呀???


好象不对啊
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-9-11 17:49:59 | 只看该作者
用图形矩阵可快速算出圈复杂度:
圈复杂度=判定节点数+1;
if、for都算一个节点,if或for中如果有”||“时,则算为两个节点。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-4-25 16:20:08 | 只看该作者
LZ归纳的独立路径错了吧。本来独立路径只有三条。
1 (x>3) && (z<10)  ,(x==4) || (y>5)   1条
2 ~ (x>3) && (z<10)                   1条
3 (x>3) && (z<10),~((x==4) || (y>5))                      1条
我觉得是这样。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-4-25 16:53:15 | 只看该作者
貌似 真的不怎么对`
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-4-26 15:17:04 | 只看该作者
原帖由 hnxt_hwj 于 2007-6-28 13:56 发表
计算圈复杂度(独立路径数)的方法:
1、流程图中区域的数量对应于环形的复杂性
2、流程图形G的圈复杂度V(G)为
     V(G)=E-N+2
其中,E-是流程图形中的边数  N-是流程图形中的节点数
3、流程图形G的圈复杂度V(G)为 ...

你好,请问什么是圈复杂度?用来干吗的?等等.可以给我说说吗
swallow_i@hotmail.com.谢谢 邮箱和MSN都是这个.这里回答也行.我很想知道
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-4-27 13:36:05 | 只看该作者
有5
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-5-7 13:15:51 | 只看该作者
原帖由 chenwei8295 于 2008-4-27 13:36 发表
有5

如果判断中的条件表达式是由一个或多个逻辑运算符 (OR,  AND, NAND,  NOR)  连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-8-8 10:06:09 | 只看该作者
我已经晕了
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-8-8 11:47:45 | 只看该作者
圈复杂度=判定节点数+1  
同意6,7楼
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-8-10 17:24:21 | 只看该作者
有5条啊
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-22 02:54 , Processed in 0.091144 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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