圈复杂度
来源:互联网 发布:ubuntu中怎么关闭终端 编辑:程序博客网 时间:2024/04/28 11:57
所谓圈复杂度是一种代码复杂度的衡量标准。在软件测试的概念里,圈复杂度“用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系”。
算编辑
它的计算方法很简单:
计算公式1:V(G)=e-n+2p。其中,e表示控制流图中边的数量,n表示控制流图中节点的数量,p图的连接组件数目(图的组件数是相连节点的最大集合)。因为控制流图都是连通的,所以p为1.
计算公式2:V(G)=区域数=判定节点数+1。其实,圈复杂度的计算还有更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1,也即控制流图的区域数。
对于多分支的CASE结构或IF-ELSEIF-ELSE结构,统计判定节点的个数时需要特别注意一点,要求必须统计全部实际的判定节点数,也即每个ELSEIF语句,以及每个CASE语句,都应该算为一个判定节点。
计算公式3:V(G)=R。其中R代表平面被控制流图划分成的区域数。
针对程序的控制流图计算圈复杂度V(G)时,最好还是采用第一个公式,也即V(G)=e-n+2;而针对模块的控制流图时,可以直接统计判定节点数,这样更为简单;针对复杂的控制流图是,使用区域计算公式V(G)=R更为简单。
0 0
- 圈复杂度
- 圈复杂度
- 圈复杂度
- 圈复杂度
- 圈复杂度
- 圈复杂度
- 圈复杂度
- 圈复杂度
- #圈复杂度
- 程序复杂度之圈复杂度
- 圈复杂度计算
- 圈复杂度计算
- 圈复杂度计算
- 圈复杂度的计算
- 圈复杂度详解
- 函数圈复杂度介绍
- 控制流图|圈复杂度|基本复杂度
- 什么是圈复杂度(Cyclomatic Complexity)
- Java下利用Jackson进行JSON解析和序列化
- 重构读书笔记
- 软件测试面试题3
- 代理模式
- java项目结局篇之项目进度
- 圈复杂度
- ThinkPHP--项目分组设置(前后台分组)
- 条件随机场CRF简介
- windbg+vmware搭建驱动联机调试环境
- LCA&RMQ
- Perl 模块依赖
- CTF入门
- NewProductActivity.java
- 面向对象编程思想