目录

前言

复杂度(Complexity)

覆盖率(Coverage)

重复(Duplication)

问题(Issues)

可维护性(Maintainability )

可靠性(Reliability)


前言

由于团队开始使用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

该指标包含注释或已注释代码的行数。不重要的注释行(即空注释行、只包含特殊字符的注释行等)不会增加注释行数量。
以下代码片段例子包含了9个注释行数:

/**                                                    +0 => empty comment line
 *                                                     +0 => empty comment line
 * This is my documentation            +1 => significant comment
 * although I don't                            +1 => significant comment
 * have much                                   +1 => significant comment
 * to say                                           +1 => significant comment
 *                                                      +0 => empty comment line
 ***************************                 +0 => non-significant comment
 *                                                      +0 => empty comment line
 * blabla...                                         +1 => significant comment
 */                                                     +0 => empty comment line
/**                                                     +0 => empty comment line
 * public String foo() {                       +1 => commented-out code
 *   System.out.println(message);     +1 => commented-out code
 *   return message;                         +1 => commented-out code
 * }                                                    +1 => commented-out code
 */                                                     +0 => empty comment line

注释(%) Comments(%) 注释行数/(注释行数+代码行数)
目录 Directories 目录数
文件 Files 文件数
方法 Functions 方法数
行数 Lines 物理行数,包含回车。
代码行数 Lines of code 代码行数,包含至少一个非空格、非tab和非注释的字母的代码行数
新增代码行数 Lines of new code 新增代码行数,包含至少一个非空格、非tab和非注释的字母的代码行数
项目 Projects 项目数
语句 Statements 语句数

SonarQube速查手册相关推荐

  1. [WebDev]Web 开发与设计师速查手册大全

    Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 ...

  2. 最全pandas函数用法速查手册(高清版)

    Pandas 是 Python 的核心数据分析支持库,拥有快速.灵活.明确的数据结构,旨在简单.直观.快速地处理关系型.标记型数据,是一款强大.灵活的开源数据分析工具. 但是pandas的知识点很多, ...

  3. Excel公式与函数案例速查手册/电脑技巧从入门到精通丛书

    出版社: 机械工业出版社; 第1版 (2013年12月1日) 丛书名: 电脑技巧从入门到精通丛书 平装: 770页 语种: 简体中文 开本: 32 条形码: 9787111448761 商品尺寸: 1 ...

  4. 【收藏】Linux系统常用命令速查手册(附赠PDF档)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,获取<Linux系统常用命令速查手册>.PDF版. 联系小姐姐,备注"liunx命令 ...

  5. 【收藏】Linux系统常用命令速查手册(附PDF下载链接)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,可以在+qq. 2 3 5 53 3 1 0 4 6 备注"liunx命令",即可获取 ...

  6. 135 页的《机器学习速查手册》,公式、图表都有,附下载!

    机器学习中的数学原理和公式推导还是非常重要的,但知识点较为繁杂,且不易整理!今天推荐一份开源的<机器学习速查手册>,并且制作成了电子版 PDF,方便大家查阅~ 这份手册最大的特点就是包含许 ...

  7. pandas速查手册(中文版)

    本文翻译自文章:Pandas Cheat Sheet - Python for Data Science 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包.它 ...

  8. 给运维工程师的Cheatsheets! 《Shell脚本速查手册》免费下!

    简介:Shell 作为 Linux 中的第一语言,几乎每一个使用 Linux 的人都用到或用过 Shell,但绝大多数人都并不能掌握 Shell 编程的基本能力和技巧. 2021 年,阿里云开发者学堂 ...

  9. HTML5 标签、事件句柄属性以及浏览器兼容情况速查手册

    随着主流浏览器对 HTML5 的不断支持和完善,越来越多的开发者开始使用 HTML5 来开发各种功能强大的 Web 应用程序,HTML5 正引领互联网新革命.为了方便大家更好的学习 HTML5,今天这 ...

  10. 叮,您有一份ML.NET 速查手册请查收!

    点击上方蓝字 关注我们 (本文阅读时间:7分钟) 本篇文章简要介绍 ML.NET 背景和面向 .NET 开发的特色功能,以及典型的机器学习编码示例,并分享自己整理的 ML.NET API 速查手册. ...

最新文章

  1. 大数据促健康产业高增长
  2. 一个很SB的方法,来开始调一个刚启动就SB的程序
  3. css float(脱离正常流:向左/右浮动直到父元素/另一float, 不占空间)
  4. linux 删除文件反选
  5. Python 3.5.2建立与DB2的连接
  6. 斯坦福大学机器学习——高斯判别分析
  7. ubuntu之find方法
  8. java 多个监听_​Java中使用for循环对多个Jbutton按钮监听
  9. mysql 建模教程 pdf,PowerDesigner 15 系统分析与建模实战 PDF扫描版[50MB]
  10. 超分辨率重建测试(DASR)
  11. 像程序员一样思考——解决问题
  12. android 设置闹钟,android 设置闹钟
  13. z-index诡异事件之背锅侠
  14. pandas 取excel 中的某一列_Pandas进阶修炼120题,给你深度和广度的船新体验
  15. 解决视频在钉钉播放出现转码或闪烁
  16. python 可视化界面学习简易教程
  17. 随e 听教师助手 随e听教师助手 英语课件试卷制作 英语学习软件
  18. MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列)
  19. python循环遍历word,Python遍历文件写入word
  20. CSS -- CSS设置鼠标样式(小手,移动,文本,禁止)

热门文章

  1. 计算机动漫游戏与制作,计算机动漫与游戏制作标准规范.doc
  2. 微信怎么关闭微信朋友圈及点赞提醒通知?
  3. linux桌面只运行浏览器,分享|4 个 Linux 桌面上的轻量级图像浏览器
  4. 取关几十个优质公众号,是否可惜?
  5. 数显之家快讯:【SHIO世硕心语】父亲的格局,母亲的情绪,是一个家最好的风水
  6. 2019小程序创业如何把握正确方向
  7. 写一个获取非行间样式的函数
  8. 在excel中批量插入分页符
  9. python条形图y轴_python 中条形图绘制
  10. android开发 节省流量,流量节省程序模式  |  Android 开源项目  |  Android Open Source Project...