打印

圈复杂度

[复制链接]
1387|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renyaq|  楼主 | 2021-7-30 19:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在程序设计中,特别是大公司的,在要求程序猿在开发代码的时候都会要求编译码规范的,这其中一个就是需要要求圈复杂度的设计的。。那么什么是圈复杂度呢?又有什么意义呢?

使用特权

评论回复
沙发
chenjunt| | 2021-7-30 19:23 | 只看该作者
圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。
在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预防错误所需测试的最少路径条数。

使用特权

评论回复
板凳
pengf| | 2021-7-30 19:26 | 只看该作者
圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。

使用特权

评论回复
地板
dingy| | 2021-7-30 19:30 | 只看该作者
如果一段源码中不包含控制流语句(条件或决策点),那么这段代码的圈复杂度为1,因为这段代码中只会有一条路径;如果一段代码中仅包含一个if语句,且if语句仅有一个条件,那么这段代码的圈复杂度为2;包含两个嵌套的if语句,或是一个if语句有两个条件的代码块的圈复杂度为3。

使用特权

评论回复
5
zhanghqi| | 2021-7-30 19:34 | 只看该作者
圈复杂度所反映的是"判定条件"的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1,也即控制流图的区域数。

使用特权

评论回复
6
zhenykun| | 2021-7-30 19:34 | 只看该作者
另外关于圈复杂度的最直观的计算就是该函数的需要多少个测试用例的可以将该函数的全部情况都遍历一遍的

使用特权

评论回复
7
renyaq|  楼主 | 2021-7-30 19:36 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝