软件测试——程序控制流图,McCabe环形复杂度
软件测试——程序控制流图,McCabe环形复杂度
根据下边的程序流程图,完成:
1.画出相应的程序控制流图;
根据上述的程序流程图画出程序控制流图
由于一个条件判断语句中有复合条件表达式,故需拆开表示
2.给出控制流图的邻接矩阵;
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
2 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
3 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
5 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
6 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
3.计算 McCabe 环形复杂度;
McCabe 环路复杂度
为程序逻辑复杂性提供定量测度。该度量用于计算程序的基本独立路径数目,也即是确保所有语句至少执行一次的起码测试数量。
程序控制流图中有7个结点,10条边。
故V(G) = m - n + 2 = 10 -7 + 2 = 5
程序控制流图中有4个单判定结点
故V(G)= d + 1 = 4 + 1 = 5
4.找出程序的一个独立路径集合。
一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G) 值正好等于该程序的独立路径的条数。
- 路径1:1-2-4-7
- 路径2:1-2-4-5-7
- 路径3:1-2-4-5-6-7
- 路径4:1-3-4-7
- 路径5:1-2-3-4-7