软考必考题型之McCabe度量法

McCabe概念:

McCabe度量法是一种基于程序控制流的复杂性度量方法。
McCabe复杂性度量又称环路度量,其计算公式为: V(g)=m-n+2,其中m和n分别代表图中的边数顶点数

下面来分析几道往年软考例题

  1. (2016年上半年试题)对下图所示流程图采用白盒测试方法进行测试,若要满足路径覆盖,则至少需要___个测试用例。采用McCabe度量法计算该程序对环路复杂性为___。
    软考必考题型之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。
  2. (2015年上半年试题)若采用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要___个测试用例。采用McCabe度量法算出该程序的环路复杂性为___。
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;
}

先画出该代码的流程图,如下:
软考必考题型之McCabe度量法
要满足条件覆盖,要求三个判断框的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。