软考软件测试 · 独立路径 · 基本路径测试

独立路径数和环路复杂度有什么关系?

很多同学会把环路复杂度当成单纯公式题,其实它背后问的是测试覆盖:这个程序的控制结构有多复杂,至少需要多少条独立路径才能覆盖基本路径。理解这一层,公式就不再是死记硬背。

计算题专题 软考题库编辑部 持续更新

环路复杂度不是为了算着玩

McCabe 环路复杂度的实际意义,是帮助我们估计程序控制结构的复杂程度。复杂度越高,说明分支、循环、路径组合越多,测试时需要关注的独立路径也越多。

所以题目问 V(G) 的值,表面是计算,背后其实是在问:基本路径测试至少要覆盖几条独立路径。能把这个关系讲出来,说明你对考点理解得比较扎实。

独立路径怎么理解

独立路径可以简单理解为:相对于已经走过的路径,它至少引入了一条新的边或新的控制走法。它不是随便挑几条从入口到出口的路径,而是要能覆盖控制流图中的基本结构。

考试一般不会让你像研究论文一样严格证明独立路径集合,更多是让你通过环路复杂度判断至少需要几条。比如 V(G)=5,就常常对应至少 5 条独立路径。

概念考试中的理解常见误区
环路复杂度控制结构复杂程度的度量只当成公式,不理解含义
独立路径能引入新控制走法的路径把所有可能路径都列出来
基本路径测试围绕独立路径设计测试用例以为路径数越多越随意
判定节点控制流发生选择的位置把普通语句也算进去

为什么说“至少”需要多少条路径

环路复杂度给的是基本路径测试的下限提示,不是全部测试工作的上限。真实项目里,一个独立路径可能还要配多组数据,尤其当判断条件里有边界值、组合条件或异常输入时。

软考题里如果问“至少需要多少条独立路径”,通常就把 V(G) 的计算结果作为答案。题目如果再问测试用例设计,就要结合具体条件继续分析。

老师式记法

可以这样记:边点法负责算,判定法负责快,独立路径负责解释意义。只会算 E-N+2,遇到问“基本路径测试至少几条”时容易发懵;知道 V(G) 对应独立路径数,就能把计算结果和测试含义连起来。

复习时建议把公式题和概念题放在一起看。今天会算 V(G),明天就要能说清楚它为什么和基本路径测试有关。

相关题目解析

下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。