McCabe度量法

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度量法算出该程序的环路复杂性为___。

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。

参考链接


软考必考题型之McCabe度量法

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注