软件工程复习L9
第一步:画出控制流图

画出其程序流程图和对应的控制流图如下

第二步:计算圈复杂度
有以下三种方法计算圈复杂度: - 流图中区域的数量对应于环型的复杂性; - 给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量; - 给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。

第三步:导出测试用例
- 根据上面的计算方法,可得出四个独立的路径。
- (一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)
- 路径1:4-14
- 路径2:4-6-7-14
- 路径3:4-6-8-10-13-4-14
- 路径4:4-6-8-11-13-4-14
总结:McCabe的确定基路径集合的算法
McCabe开发了一种算法,用于确定程序的基本路径集合,方法如下:
1、选择一个基线路径(应该对应某个“正常案例”,建议选择尽可能多判断节点的路径)
2、沿基线路径后退,碰到判定节点后翻转,将翻转后的路径作为基线路径,重复本步骤,直到所有的判定节点都被翻转。
- 注意:为遵循先易后难的原则,对于循环,一般先让路径跳过循环,然后考虑进入循环。
基本路径集通常并不唯一。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yeの博客!