SonarQube速查手册
作者:互联网
目录
前言
由于团队开始使用Sonar并且要确定对应的度量指标,因此为了方便查阅,特把Sonar官方文档中的指标翻译成中文。由于本人水平有限,翻译仅供参考。
复杂度(Complexity)
指标(中文) | 指标(英文) | 描述 |
复杂度 | Complexity | 基于代码的分支计算出来的复杂度,即圈复杂度。当一个方法的控制流多了一个分支,它的复杂度就会增加1。每个方法的最小复杂度为1。 |
理解复杂度 | Congnitive Complexity | 理解代码的控制流的难易程度。具体参考 https://www.sonarsource.com/resources/white-papers/cognitive-complexity.html |
覆盖率(Coverage)
指标(中文) | 指标(英文) | 描述 |
分支覆盖 | Condition coverage | 被单元测试覆盖到的分支数 |
分支覆盖率 | Condition coverage(%) | 在包含一些布尔表达式的每一行代码中,条件覆盖率简单地回答了以下问题:“是否将每个布尔表达式都计算为true和false?”这是单元测试执行期间遵循的流控制结构中可能的条件的密度。 分支覆盖率 = (CT + CF)/(2*B) 其中,CT为至少一次被评估为true的分支数,CF为至少一次被评估为false的分支数,B为总分支数。 |
新代码的分支覆盖率 | Condition coverage on new code | 同上,但只针对新代码和更新的代码 |
代码覆盖率 | Line coverage | 代码行覆盖率,即被单元测试覆盖的行数/总代码行数 公式:LC / EL 其中, LC为被单元测试覆盖到的行数;EL为总代码行数。 |
新代码覆盖率 | Line coverage on new code | 新代码行覆盖率,公式同上,但只针对新代码或更新的代码 |
覆盖率 | Coverage | 总覆盖率,即分支覆盖率和代码行覆盖率的总和,它旨在提供更加准确的数据去展现源代码被单元测试覆盖的程度。 公式:(CT+CF+LC)/(2*B+EL) |
新覆盖率 | Coverage on new code | 同上,但只针对新代码和更新的代码 |
代码行 | Lines to cover | 被单元测试覆盖的代码行数 |
覆盖的新代码 | Lines to cover on new code | 被单元测试覆盖的代码行数(只针对新增代码或更新的代码) |
单元测试忽略数 | Skipped unit tests | 忽略的单元测试用例数 |
未覆盖分支 | Uncovered conditions | 单元测试未覆盖的分支数 |
未覆盖新分支 | Uncovered conditions on new code | 单元测试未覆盖的新增分支数 |
未覆盖的代码 | Uncovered lines | 单元测试未覆盖的代码行数 |
未覆盖的新代码 | Uncovered lines on new code | 单元测试未覆盖的新增代码行数 |
单元测试持续时间 | Unit tests duration | 单元测试所持续的时间 |
单元测试错误数 | Unit test errors | 单元测试执行错误数,即运行异常 |
单元测试失败数 | Unit test failures | 单元测试执行失败数,即运行正常但是得到非预期结果 |
单元测试成功(%) | Unit test success density (%) | (单元测试用例数-(单元测试错误数+单元测试失败数))/单元测试用例数*100 |
单元测试数 | Unit tests | 单元测试用例数 |
重复(Duplication)
指标(中文) | 指标(英文) | 描述 |
重复块 | Duplicated blocks | 重复行块数。如何定义一个块是否重复块: JAVA类项目: - 无论标记和行数多少,只要有至少10个连续重复的语句,则定义为重复块; 非JAVA类项目: - 至少有100个连续重复的标记; - 这些标记要至少分布在 1)30行代码中(如是COBOL);2)20行代码中(如是ABAP);3)10行代码中(如是其他语言) |
新代码中的重复块 | Duplicated blocks on new code | 同上,但只针对新代码 |
重复文件 | Duplicated files | 重复的文件数 |
重复行 | Duplicated lines | 重复的代码行数 |
重复行(%) | Duplicated lines (%) | 重复行数/总行数*100 |
新代码中的重复行 | Duplicated lines on new code | 同上,但只针对新代码 |
新代码中的重复行密度(%) | Duplicated lines(%)on new code | 同上,但只针对新代码 |
问题(Issues)
指标(中文) | 指标(英文) | 描述 |
阻断违规 | Blocker violations | 阻断违规数 |
确认问题 | Confirmed issues | 确认问题数 |
严重违规 | Critical violations | 严重违规数 |
误判问题 | false positive violations | 误判问题数 |
提示违规 | Info violationd | 提示违规数 |
违规 | violations | 违规数 |
主要违规 | major violations | 主要违规数 |
次要违规 | minor violations | 次要违规数 |
新阻断违规 | New blocker violations | 新阻断违规数 |
新严重违规 | New critical violations | 新严重违规数 |
新提示违规 | New info violations | 新提示违规数 |
新违规 | New violations | 新违规数 |
新主要违规 | New major violations | 新主要违规数 |
新次要违规 | New minor violations | 新次要违规数 |
开启问题 | Open issues | 状态为开启的问题数 |
重开问题 | Reopen issues | 状态为重开的问题数 |
不修复的问题 | Unfixed issues | 状态为不修复的问题数 |
可维护性(Maintainability )
指标(中文) | 指标(英文) | 描述 |
技术债务 | Technical Debt | 修复所有可维护性问题所需的工作量,单位为分钟。当该值以天为单位展示时默认为8小时/天。 |
新代码的技术债务 | Technical Debt on new code | 同上,但只针对新代码。 |
坏味道 | Code Smells | 坏味道数 |
SQALE评级(可维护率) | - | 根据项目技术债务比率而给与的项目评级。默认的可维护性等级为: A = 0 - 0.05,即在0到5%之间 B = 0.06 - 0.1,即在6%到10%之间 C = 0.11 - 0.2,即在11%到20%之间 D = 0.21 - 0.5,即在21%到50%之间 E = 0.51 - 1,即超过50% |
达到可维护性为A级所需的工作 | - | 能达到上述评级为A所需的工作量 |
新代码可维护率 | Maintainability Rating on new code | 同上,但只针对新代码。 |
新增坏味道 | New code smell | 新增坏味道数 |
技术债务比率 | Technical Debt Ratio | 开发成本与修复成本的比率。 该比率=修复成本/开发成本,也=修复成本/(代码行数*每行代码开发成本) 每行代码开发成本为0.06天 |
新技术债务比率 | Technical Debt Ratio on new code | 在泄漏期间修改代码的开发成本与由此修改引入的问题成本之比。 |
可靠性(Reliability)
指标(中文) | 指标(英文) | 描述 |
新增漏洞 | New Vulnerabilities | 新增安全漏洞数 |
安全比率 | Security Rating | A = 0 安全漏洞 B = 至少1个Minor漏洞 C = 至少1个Major漏洞 D = 至少1个Critical漏洞 E = 至少1个Blocker漏洞 |
新代码安全率 | Security Rating on new code | 同上,但只针对新代码。 |
安全修复工作 | Security remediation effort | 修复所有安全漏洞所需的工作量,单位为分钟。当该值以天为单位展示时默认为8小时/天。 |
新代码的安全修复工作 | Security remediation effort on new code | 同上,但只针对新代码。 |
漏洞 | Vulnerabilities | 安全漏洞数 |
大小(Documentation)
指标(中文) | 指标(英文) | 描述 |
类 | Classes | 类数目 |
注释行数 | Comment lines | 该指标包含注释或已注释代码的行数。不重要的注释行(即空注释行、只包含特殊字符的注释行等)不会增加注释行数量。
/** +0 => empty comment line |
注释(%) | Comments(%) | 注释行数/(注释行数+代码行数) |
目录 | Directories | 目录数 |
文件 | Files | 文件数 |
方法 | Functions | 方法数 |
行数 | Lines | 物理行数,包含回车。 |
代码行数 | Lines of code | 代码行数,包含至少一个非空格、非tab和非注释的字母的代码行数 |
新增代码行数 | Lines of new code | 新增代码行数,包含至少一个非空格、非tab和非注释的字母的代码行数 |
项目 | Projects | 项目数 |
语句 | Statements | 语句数 |
标签:comment,code,SonarQube,代码,单元测试,手册,违规,new,速查 来源: https://blog.csdn.net/zhangjunli/article/details/115240731