使用基本路径测试法测试这段程序总不对啊
if ((a>1) and (b=0)) then
x=x/a
if ((a=2) or (x>1)) then
x=x+1
这里面得复合判定条件分解以后画控制流图以后独立路径是9条啊,可是使用基本路径测试法的计算环形复杂度的两个公式算下来都是5,哪位高手帮我看看?????
[解决办法]
环形复杂度是5没错,独立路径数也是5而不是9
楼主怎么画的,4个判定节点,两个 执行语句节点 一个起始 一个结束节点
[解决办法]
- C/C++ code
我认为是你算错了,是5没有错虽然我不是做测试的,但我从开发的角度分析,是5/*为了清楚,我把你的代码用C++分解了,VB我不大会x = x + 1;是为了描述方便而分开的,它是一条语句*/if ( a > 1 ) // a{ if ( b == 0 ) // b { x = x / a; if ( a == 2 ) // c { x = x + 1; } else if ( x > 1 ) // d { x = x + 1; } }}/*a 是 1条b 是 1条a 和 b 是1条c 是 1条d 是 1条共 5 条不知道对你有没有帮助*/
[解决办法]
我认为问题程序可以转换为下面的脚本(为了方面观看,中间加了“空”)
if a>1 then
if b=0 then
x=x/a
else
空
endif
else
空
endif
if a<>2 then
if x>1 then
x=x+1
else
空
endif
else
x=x+1
endif
所以圈复杂度是5没有问题,但是独立路径数9是有问题的。