一、控制流图
控制流图常见语句画法
判定节点和区域
其中,包含条件的节点被称为判定节点(也叫谓词节点 ),由判定节点发出的边必须终止于某一个节点,由边和节点所限定的范围被称为区域 。
图中的判定节点有:1,3,6
有4个区域。
控制流图实例
如何画复合条件的控制流图 ?
由流程图(略)/源程序得到控制流图
二、图矩阵
三、环形复杂度
环形复杂度又称为圈复杂度,以图论为基础,为我们提 供了非常有用的软件度量。
可用如下三种方法之一来计算环形复杂度:
① 控制流图中区域的数量对应于环形复杂度。
②给定控制流图G的环形复杂度——V(G),定义为 V(G) = E-N+2 其中, E是控制流图中边的数量, N是控制流图中的节点数量。
③给定控制流图G的环形复杂度——V(G),也可定义为 V(G) = P+1 其中, P是控制流图G中判定节点的数量。
四、独立路径
五、基本路径集
① 程序基本路径集是指由若干条独立路径组成的集合,其数量由环形复杂度确定。
② McCabe开发了一种算法,用于确定程序的基本路径集合,方法如下:
1、选择一个基线路径。
2、沿基线路径后退,碰到判定节点后翻转,将翻转后的路径作为基线路径,重复本步骤,直到所有的节点都被翻转。
注意:为遵循先易后难的原则,对于循环,一般先让路径跳过循环,然后考虑进入循环。
③基本路径集通常并不唯一。
六、步骤
基本路径测试步骤:
1. 画出程序的控制流图
2. 计算流图G的环路复杂性V(G)
3. 确定只包含独立路径的基本路径集
4. 根据上面的独立路径,设计测试用例,使程序分别沿上面 的独立路径执行。