SonarQube8.6 使用说明

前文写了SonarQube8.6的安装和使用,这篇文章简要说明SonarQube的基本使用和一些指标说明

菜单和首页说明

在这里插入图片描述

  1. 项目:被扫描的项目 问题:被扫描的项目的问题
  2. 代码规则:代码检测规则
  3. 质量配置:质量配置是在分析时使用的规则集合。可以启用或者禁用某些规则。
  4. 质量阈:正常/错误。可以指定一些指标条件时为错误,比如bug数大于某个值时为错误。
  5. 配置:权限,用户等配置
  6. +号:新增项目

项目概况和统计说明

1、指标说明:一般将鼠标放在图标上就会显示这个指标的说明
2、bugs:bug的数量
3、漏洞:漏洞的数量
4、异味:不规范代码的数量
5、覆盖率:单元测试的对代码的覆盖率
6、重复:重复代码的行数占总代码行数的比例
7、大小:代码行数
8、编程语言:项目检测的编程语言
9、等级说明:由ABCDE5个等级,从A的绿色到E的红色表示严重等级

项目总览

在这里插入图片描述

说明:
1、支持分支检测
2、显示主要指标情况
3、显示项目的检测配置信息

问题总览

在这里插入图片描述
说明:

1、类型:一条规则定义的类型,有4种:bug,漏洞,异味,安全热点时单独的
2、严重程度:有5种:阻断,严重,重要,次要,提示
3、状态:5种:打开,解决,重开,关闭,确认
4、负责人:分配给谁
5、修复预估时间:系统给的预计修复时间
6、评论:可以评论

指标

在这里插入图片描述
指标有:

1、Reliability可靠性

可靠性比率的计算方法)

A = 0 Bug 最高等级A,表示代码无bug
B = at least 1 Minor Bug 代码只要有一个次要bug,等级就为B
C = at least 1 Major Bug 只要包含一个重要bug,等级将为C
D = at least 1 Critical Bug 只要有一个严重bug,等级评估为D
E = at least 1 Blocker Bug 只要有一个最高等级的阻断级别的bug,可靠性评估为E,最低级别。
图中气泡大小根据bug数变化,bug数越大气泡越大。视觉更加直观。

扫描二维码关注公众号,回复: 12230053 查看本文章

2、Security安全性

安全度指标计算方法

A = 0 Vulnerability 没有漏洞时,项目评估为最高级别A
B = at least 1 Minor Vulnerability 只要包含一个次要漏洞,项目评估为级别B
C = at least 1 Major Vulnerability 只要包含一个重要漏洞,项目评估为级别C
D = at least 1 Critical Vulnerability 只要包含一个严重漏洞,评估为D
E = at least 1 Blocker Vulnerability 只要包含一个阻断漏洞,项目评估为最低级别E
图中气泡大小根据漏洞数变化,漏洞数越大气泡越大。视觉上直观显示。

3、Maintainability

技术债务:Technical Debt,当前不规范的代码,会对以后产品修改的成本造成影响。

开发成本:开发一行代码(LOC)的成本。 示例:如果开发1 LOC的成本估计为30分钟,则此属性的值为30。目前我们采用的是系统默认值30。注意此处成本是指从零开始重写代码所需的成本。

可维护性:可维护性等级范围从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覆盖率

Coverage
行覆盖和条件覆盖的混合。单元测试覆盖多少源代码。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 ‘false’ at least once 至少一次被判断为false的条件数
LC = covered lines = lines_to_cover uncovered_lines 已覆盖的行数
B = total number of conditions 条件总数
EL = total number of executable lines (lines_to_cover) 所有可执行的代码总行数
Line coverage

5、单元测试覆盖行数密度
Line coverage = LC / EL

LC = covered lines (lines_to_cover - uncovered_lines) 已覆盖的行数
EL = total number of executable lines (lines_to_cover) 所有可执行的代码总行数
Condition coverage

Condition Coverage=(CT+CF)/(2*B)

CT = 至少一次使用 ‘true’的条件数
CF = 至少一次使用 ‘false’ 的条件数
B = 条件总数
Unit test success density (%)

测试成功密度=(单元测试总数-(单元测试错误数+单元测试失败数))/单元测试数*100

6、Duplications重复

Duplication

SonarQube使用自己的复制/粘贴检测引擎,可以检测重复:

在源文件中
跨项目中的多个文件
项目的各个模块
跨多个项目
Duplicated Lines(%)

重复率=重复行数/总行数*100

Duplicated blocks:重复代码块行数
Duplicated files:重复文件数
Duplicated lines:重复行数
Size大小

7、Complexity复杂度

以下关键词增加复杂性:if, for, while, case, catch, throw, return (不是方法的最后一个语句), &&, ||, ?

else, default, finally不增加复杂度

代码复杂度过高将难以理解、难以维护。

8、Issues问题

新违
违规
开启问题
重开问题
确认问题
误判问题
不修复的问题

配置

权限应用权限模板,授予和收回项目级别的权限。权限可以授予群组或单独用户
在这里插入图片描述

问题查找

问题排查因项目团队而异,根据不同的规则,不同的修改。
例子:
在这里插入图片描述
很明显的bug问题。。

到此,大概的分析已结束,欢迎指导。。

猜你喜欢

转载自blog.csdn.net/fclwd/article/details/111996458