持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情
一.定义
在程序控制流图中,通过对控制构造的环路复杂性分析而导出的基本的、可执行的独立路径集合。
测试:在程序的控制流图的基础上,通过分析控制流程的环路复杂性,导出独立可执行路径集合,从而设计测试用例的方法。
二.控制流图/程序图
流程图用来描述程序控制结构。
- 在流图中,每一个圆,称为流图的结点,表示一个或多个无分支的语句或源程序语句。
- 一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。
- 一条边必须终止于一个结点,即使该结点并不代表任何语句。
- 由边和结点限定的范围称为区域,计算区域时应包括图外部的范围。
三.步骤
- 步骤1:根据源程序导出程序控制流图(程序图),得到路径测试所需的路径地图。
- 步骤2:通过计算程序图的环复杂度,确定独立路径集合的规模大小。
- 步骤3:以包含判定节点最多的路径作为主路径,并以此为基础构建其他独立路径。
- 步骤4:注意剔除不可行路径,必要时补充其他重要路径。
- 步骤5:根据得到的路径集合对应设计测试用例。
四.计算圈复杂度
以下三个方法计算,又可以叫做计算环复杂度
- 给定流图G的圈复杂度V(G),定义为V(G)=Area,Area是流程图中的区域数量(即为封闭区域数量+1);
- 给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;
- 给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量