51Testing软件测试论坛

标题: 有个疑难问题,请大家帮帮忙,O(∩_∩)O谢谢 [打印本页]

作者: lushuishui    时间: 2010-1-11 17:25
标题: 有个疑难问题,请大家帮帮忙,O(∩_∩)O谢谢
例:下例程序流程图描述了最多输入50个值(以–1作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。

步骤1:导出过程的流图。


请问红色和黑色,哪个才是对的呢?
作者: Jackc    时间: 2010-1-14 12:29
简单看了下,红色的肯定不对。
设计两个case:
1、Score[1]=-1 ,则对应的流程是1、2、9、11、12

2、除Score[50]=-1外,其他的均为正整数,则对应流程为1、2、3、4、5、6、7、8(循环2、3、4、5、6、7、8共49次)、2、3、9、10、12

这两个CASE都无法用红色的流程图解释。

至于黑色的是否正确,没仔细去研究了。
作者: lushuishui    时间: 2010-1-14 15:11
标题: 回复 2# 的帖子
谢谢你的回答,我再仔细看一下流程图
作者: Jackc    时间: 2010-1-15 09:54
第2个CASE有点问题,应该设计为Score都不等于-1,才会在50次循环完毕后走239路径。

如果设计的Score[50]=-1,则在第50次循环开始时,走29路径
作者: lushuishui    时间: 2010-1-20 11:00
标题: 回复 4# 的帖子
我找到原因了,不过有个疑问,在画流图的时候是不是要看判断条件,如果是AND的话,是要把每个条件作为节点,如果是OR的关系,那么可以把判断条件作为一个节点来画,是这样的吗?
作者: Jackc    时间: 2010-1-21 11:00
在化简流程图时,比较常用的方法:
1.当两个结点存在绝对路径时,可以合并,比如黑图中的1/2;4/5都可以整合


2.如果是and ,可以划成一个结点(但是在设计CASE时,还是需要设计覆盖不同判断条件的case,只是方便阅读而已),or则肯定需要分为是多个结点(根据判断条件的个数决定结点个数)

比如,在黑图中,将2、3划为1个结点,5,6也一样划为一个结点,但是在设计路径时,239与29都需要考虑。所以这种化简方法并不是很规范的,不建议使用:)

[ 本帖最后由 Jackc 于 2010-1-21 11:19 编辑 ]
作者: Jackc    时间: 2010-1-21 11:03
关于路径覆盖的方法,可以参考http://bbs.51testing.com/thread-170435-1-1.html
作者: lushuishui    时间: 2010-1-25 17:28
标题: 回复 7# 的帖子
非常的感谢




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