博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
圈复杂度(Cyclomatic Complexity)
阅读量:6907 次
发布时间:2019-06-27

本文共 569 字,大约阅读时间需要 1 分钟。

圈复杂度(Cyclomatic Complexity)是很常用的一种度量软件代码复杂程度的标准。这里所指的“代码复杂程度”并非软件内在业务逻辑的复杂程度,而是指代码的实现方式的 复杂程度。说起来有点绕是么?打个比方就是嘴笨的人可以把简单的事情说得很复杂。虽然“内在业务逻辑”与“实现方式”有紧密的联系,有很多研究统计指出, 圈复杂度高的代码中错误的可能性更大,维护的成本更高。
 
它的计算方法很简单,计算公式为:V(G)=e-n+2。其中,e表示中边的数量,n表示中节点的数量。其实,圈复杂度的计算还有更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1,也即的区域数,对应的计算公式为:V(G)=区域数=判定节点数+1。
关于圈复杂度的具体介绍可参见  ,网上也有很多中文资料。
非常非常简单的说它就是统计一个函数有多少个分支(if, while, for,等等),没有的话复杂度为一,每增加一个分支复杂度加一。让很多人不解的是,无论这些分支是并列还是嵌套,统统都是加一。

从一个非常非常简单的角度来理解,一个函数的圈复杂度就相当于至少需要多少个测试用例才能对这个函数做到全路径覆盖。

转载于:https://www.cnblogs.com/skyLogin/p/6785580.html

你可能感兴趣的文章
文件下的目录
查看>>
超详细在Ubuntu下安装JDK图文解析
查看>>
python使用pycurl获取web连接信息
查看>>
EMC PowerPath多路径软件实施报告
查看>>
Domain Name System
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
aspnet_regsql在哪里 怎么运行它 以及功能介绍
查看>>
AIX 6.1 + HACMP 6.1 + Oracle 11g双机实施 (3) --- AIX 6.1 Cloning an Oracle Home
查看>>
阮一峰之webpack-demos(译)
查看>>
(2)在Windows 7 x64端设置Python环境
查看>>
Set
查看>>
安装和配置mstmtp、mutt
查看>>
Mac操作postgres——使用homebrew
查看>>
解决低版本Xcode不支持高版本iOS真机调试的问题
查看>>
ubuntu限制本地网速
查看>>
div浮动层
查看>>
那些年我用awk时踩过的坑——awk使用注意事项
查看>>
逻辑卷LVM 应用之详解! VG LV用法 !
查看>>
服务器遇到大流量***的处理过程
查看>>