hnxt_hwj 发表于 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 编辑 ]

peimzh 发表于 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条

孤独无心 发表于 2007-7-3 12:12:01

谢谢楼主

孤独无心 发表于 2007-7-3 12:12:13

错了

Spark.lee 发表于 2007-7-3 13:57:05

问题是不是错了啊

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


好象不对啊

ddonking 发表于 2007-9-11 17:49:59

用图形矩阵可快速算出圈复杂度:
圈复杂度=判定节点数+1;
if、for都算一个节点,if或for中如果有”||“时,则算为两个节点。

tiffany413 发表于 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条
我觉得是这样。

菜鸟上路 发表于 2008-4-25 16:53:15

貌似 真的不怎么对`

独角兽妹妹 发表于 2008-4-26 15:17:04

原帖由 hnxt_hwj 于 2007-6-28 13:56 发表 http://bbs.51testing.com/images/common/back.gif
计算圈复杂度(独立路径数)的方法:
1、流程图中区域的数量对应于环形的复杂性
2、流程图形G的圈复杂度V(G)为
   V(G)=E-N+2
其中,E-是流程图形中的边数N-是流程图形中的节点数
3、流程图形G的圈复杂度V(G)为 ...
你好,请问什么是圈复杂度?用来干吗的?等等.可以给我说说吗
swallow_i@hotmail.com.谢谢 邮箱和MSN都是这个.这里回答也行.我很想知道

chenwei8295 发表于 2008-4-27 13:36:05

有5

ilovecinema 发表于 2008-5-7 13:15:51

原帖由 chenwei8295 于 2008-4-27 13:36 发表 http://bbs.51testing.com/images/common/back.gif
有5
如果判断中的条件表达式是由一个或多个逻辑运算符 (OR,AND, NAND,NOR)连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。

airjiachao 发表于 2008-8-8 10:06:09

:L 我已经晕了

let$it$be 发表于 2008-8-8 11:47:45

圈复杂度=判定节点数+1
同意6,7楼

tulongqing 发表于 2008-8-10 17:24:21

有5条啊

indiepop 发表于 2008-11-2 21:53:32

确实是5,4个谓词结点+1

shc7478 发表于 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)

shc7478 发表于 2008-11-4 14:42:03

ding起来

shc7478 发表于 2008-11-5 18:09:32

为什么没人发表意见?看晕了吗?

shc7478 发表于 2008-11-9 11:42:12

ding si ta

hyrzll 发表于 2008-11-10 10:25:04

页: [1] 2
查看完整版本: 控制流图和圈复杂度