McCabe概念
McCabe度量法是一种基于程序控制流的复杂性度量方法。
McCabe复杂性度量又称环路度量,其计算公式为: V(G)=M-N+2,其中M和N分别代表图中的边数和顶点数。
下面来分析几道往年软考例题
2016年上半年试题
对下图所示流程图采用白盒测试方法进行测试,若要满足路径覆盖,则至少需要___个测试用例。采用McCabe度量法计算该程序对环路复杂性为___。
路径覆盖是指设计若干个测试用例,覆盖程序中的所有路径。
上图中一共有6条路径:12345678,1234568,1235678,123568,12678,1268。
根据McCabe度量法环路复杂性公式V(G)=M-N+2,图中M=10,N=8,V(G)=10-8+2=4。
那么答案应是:6个用例,环路复杂度为4。
2015年上半年试题
若采用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要___个测试用例。采用McCabe度量法算出该程序的环路复杂性为___。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
int find_max(int i, int j, int k){ int max; if(i > j) { if(i > k){ max = i; } else { max = k; } } else { if(j > k) { max = j; } else { max = k; } } return max; } |
先画出该代码的流程图,如下:
要满足条件覆盖,要求三个判断框的Y和N至少要经过一次,即:1Y2Y,1Y2N,1N3Y,1N3N,至少需要4个测试用例。
根据McCabe度量法环路复杂性公式V(G)=M-N+2,图中M=9,N=7,V(G)=9-7+2=4。
那么答案应是:4个用例,环路复杂度为4。