McCabe 度量法(循环复杂度)

310页

介绍

McCabe 度量法,也被称为循环复杂度(Cyclomatic Complexity),是由 Thomas J. McCabe, Sr. 在 1976 年提出的一种软件 程序复杂度 的量度方法。
主要用于衡量一个程序单元(如函数、方法、模块等)的复杂度。

步骤

  • 根据程序画出 程序流程图
  • 根据图进行计算,计算方式有下面两种

计算方式

方法一:公式计算(复杂)

V(G) = E - N + 2

解释:

  • E:表示程序控制流图中 边的数量;
  • N:表示程序控制流图中 节点的数量;

关键:上图 线的交叉点,也算 一个结点,如下图:

缺点:边 和 结点太多,复杂麻烦容易错

方法二(推荐)

最小独立闭环数 + 1

如下图:

有 4 个最小独立闭环数,所以复杂度是 5

题

采用McCabe度量法计算下图所示程序的环路复杂性为( )

A、1
B、N
C、3
D、4

答案

C,有 2 个 最小独立闭环,所以 2+1=3

题

若用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要( )个测试用例。平采用McCabe度量法算出该程序的环路复杂度为( )

A、3
B、4
C、5
D、6

A、1
B、2
C、3
D、4

第一问答案

根据程序画出程序流程图如下,

测试用例1:i>j为 真,i>k 为 真
测试用例2:i>j为 真,i>k 为 假
测试用例3:i>j为 假,j>k 为 真
测试用例4:i>j为 假,j>k 为 假

答案:B

第二问答案

有 3 个 最小独立闭环,所以复杂度:3 + 1 = 4

答案:D


原文出处:/show_1GWyRWLHimq.html