51Testing软件测试论坛

标题: 关于控制流图环路复杂度的小问题,请老师和理解的同学指教,谢谢~ [打印本页]

作者: guolm1225    时间: 2006-7-26 19:16
标题: 关于控制流图环路复杂度的小问题,请老师和理解的同学指教,谢谢~
教材162页基本路径覆盖法:
如果判断条件的条件表达式是由一个或多个逻辑运算符<OR,AND,NAND,NOR
>连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。

if a OR b
then      procedure  x;
else       procedure y;



如果按照流图来看的话,这个流图的复杂度为3,这个流图是不是有
1)a---x
2)a---b---y
3)a---b---x
3条基本路径?
但是按照我们实际的来看的话,是不是只有2条基本路径:
1)then      procedure  x;
2)else       procedure y;

所以觉得有些疑惑,请老师或者理解的同学指教,谢谢。

[ 本帖最后由 guolm1225 于 2006-7-26 19:20 编辑 ]
作者: wxq8102    时间: 2006-7-26 22:43
该方法让程序中的循环体最多只执行一次,把条件表达式中的复合条件改为一系列只有单条件的嵌套的判断.就是在基本路径的基础上进行拆分的,两者应该好区分吧.个人意见,如有不对,敬请指出!

[ 本帖最后由 wxq8102 于 2006-7-26 22:44 编辑 ]
作者: morn    时间: 2006-7-28 16:42
认真好学的小guo同学:P表扬一下!


以下是我的理解,欢迎切磋:D

首先,按教材内容分析,讲到“基本路径”,都是程序流程里只有单条件判断的前提下,所以,以复合条件下的分支内容“then procedure x; else procedure y;”来作为基本路径的内容,这应该是不准确滴。

其次,按实际来分析,结合条件看:
if a OR b
then      procedure  x;
else       procedure y;
它是有三种情况:
1. a为真,procedure  x;
2. a不为真,b为真,procedure  x;
3. a、b均不为真时,procedure  y。

因为在实际执行时,如果a为真,程序将不再判断b,直接执行procedure x,只有当a不为真时,才去判断b,此时若b为真,procedure x,b不为真,就procedure y。然后就得到你下面贴的那张图啦:)
作者: guolm1225    时间: 2006-7-28 17:47
谢谢楼上2位。。。

再谢谢zmMMsdlkfj2
昨天你是不是跑去17testing区注册发帖啦。。sdlkfj2
作者: morn    时间: 2006-7-28 20:44
晕,这你也知道?汗……

昨天在家搜QTP 8.2的破解版,有个百度快照指向17testing,但一个关键的文件快照里看不到,就注册了去实际网页上看,唉,可惜,貌似这个帖子已经被删了或屏蔽了。好像是顺便答了个QTP的题,你是看到俺答的题了吧呵呵

[ 本帖最后由 morn 于 2006-7-28 20:51 编辑 ]
作者: guolm1225    时间: 2006-7-28 21:02
哈哈,4242,这都被我抓到咯。

对了,刚刚发现。
作者: morn    时间: 2006-7-28 23:24
真的啊,明天去学校拷回来嘿嘿,周四那天没拷东西回家,想着去mercury下9.0的呵呵,但用演示版的心里终归有点不爽,就去找8.2的破解了,真是曲折~~
作者: wxq8102    时间: 2006-7-29 20:50
是QC的8.2吗,找到了吗?如果找到破解版发一下地址,共享啊.
作者: guolm1225    时间: 2006-7-29 22:49
原帖由 wxq8102 于 2006-7-29 20:50 发表
是QC的8.2吗,找到了吗?如果找到破解版发一下地址,共享啊.



非也。QTP




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2