Sonar平台中项⽬主要指标以及代码坏味道详解原⽂链接:
Sonar项⽬主要指标以及代码坏味道详解
,
1、Reliability可靠性
1.1 Reliability Rating
可靠性⽐率的计算⽅法)
A = 0 Bug 最⾼等级A,表⽰代码⽆bug
B = at least 1 Minor Bug 代码只要有⼀个次要bug,等级就为Bargued
C = at least 1 Major Bug 只要包含⼀个重要bug,等级将为C
D = at least 1 Critical Bug 只要有⼀个严重bug,等级评估为D
E = at least 1 Blocker Bug 只要有⼀个最⾼等级的阻断级别的bug,可靠性评估为E,最低级别。
1.2 Reliability remediation effort
wolf修复所有缺陷问题成本/耗时
1.3 Reliability remediation effort on new code
在新增代码上修复所有缺陷问题成本/耗时
1.4 备注
英孚少儿英语费用
图中⽓泡⼤⼩根据bug数变化,bug数越⼤⽓泡越⼤。视觉更加直观。
2、Security安全性四级考试时间分配
政治红宝书是什么2.1 Security Rating
安全度指标计算⽅法
A = 0 Vulnerability 没有漏洞时,项⽬评估为最⾼级别A
B = at least 1 Minor Vulnerability 只要包含⼀个次要漏洞,项⽬评估为级别B
C = at least 1 Major Vulnerability 只要包含⼀个重要漏洞,项⽬评估为级别C
plea wait
D = at least 1 Critical Vulnerability 只要包含⼀个严重漏洞,评估为D
E = at least 1 Blocker Vulnerability 只要包含⼀个阻断漏洞,项⽬评估为最低级别E
2.2 备注
lines of code 计量⽅法:包括⾄少⼀个字符,不包括空格。
图中⽓泡⼤⼩根据漏洞数变化,漏洞数越⼤⽓泡越⼤。视觉上直观显⽰。
3、Maintainability可维护性
3.1 Technical Debt
阶梯英语培训学校“技术债务”概念,这个概念最早是在 1992 年由 Ward Cunningham 在他的论⽂“The WyCash Portfolio Management System”中提出的,之后被软件⼯程界接受并推⼴,《重构》的作者 Martin Fowler 也在其⽹站上对技术债务有所介绍。其实原理可以理解为“出来混早晚要还的”,当前不规范的代码,会对以后产品修改的成本造成影响。Technical Debt 计算公式如下:
3.2 开发成本
开发⼀⾏代码(LOC)的成本。⽰例:如果开发1 LOC的成本估计为30分钟,则此属性的值为30。⽬前我们采⽤的是系统默认值30。注意此处成本是指从零开始重写代码所需的成本。
3.3 可维护性
可维护性等级范围从A(⾮常好)到E(⾮常差)。评级由技术债务⽐率的值决定,技术债务⽐率是将项⽬的技术债务与从零开始重写代码所需的成本进⾏⽐较。 A到D的默认值为0.05,0.1,0.2,0.5。任何超过0.5评级就为E。
举个例⼦:假设开发成本是30分钟,2,500 LOC的技术债务为24,000分钟的项⽬将有技术债务⽐率为24000 /(30 * 2,500)= 0.32。因此项⽬的可维护性评级就是D。
4、Coverage覆盖率
4.1 Coverage
hbsag⾏覆盖和条件覆盖的混合。单元测试覆盖多少源代码。Coverage = (CT + CF + LC)/(2*B + EL),其中:CT = conditions that have been evaluated to ‘true’ at least once⾄少有⼀次被判断为true的条件数
CF = conditions that have been evaluated to ‘fal’ at least once ⾄少⼀次被判断为fal的条件数
LC = covered lines = lines_to_cover uncovered_lines 已覆盖的⾏数
B = total number of conditions 条件总数
EL = total number of executable lines (lines_to_cover) 所有可执⾏的代码总⾏数
4.2 Line coverage
单元测试覆盖⾏数密度
Line coverage = LC / EL
LC = covered lines (lines_to_cover - uncovered_lines) 已覆盖的⾏数
EL = total number of executable lines (lines_to_cover) 所有可执⾏的代码总⾏数
课外辅导班4.3 Condition coverage
Condition Coverage=(CT+CF)/(2*B)
CT = ⾄少⼀次使⽤ ‘true’的条件数
CF = ⾄少⼀次使⽤ ‘fal’ 的条件数
B = 条件总数
4.4 Unit test success density (%)
ecn
测试成功密度=(单元测试总数-(单元测试错误数+单元测试失败数))/单元测试数*100