前言
安装指南请查看另外一篇:链接
一、总项目概览:
- 点击展示有权限的项目
- bm-mallorder-parent项目的名称,maven项目一般以主pom下的artifactId 属性值为名
- 扫描结论, “错误” 表示这一次与上一次的扫描对比有新增bug。 "正常情况"表示首次扫描或者与上一次扫描没有新增问题。
- "157k"代表扫描的代码行数
- 代表扫描的语言类型
- bugs:包括各个等级的bug数量
- 漏洞:安全相关问题
- 异味:可能存在的问题,比如长发发,超长标识,太多参数等。
- 覆盖率: 单元测试的覆盖率,需要额外的单元测试插件
- 重复率:表示代码重复的数据。
二、单项目总览
重点关注标注颜色的地方
- 质量阈:这是判断项目是否正常的结论显示,如果显示错误,则不符合质量阈的配置的规则,现在配置主要的规则有代码重复率(不能大于5%),有代码bug以及漏洞级别(不能高与C级别)。一般是要第二次扫描才能做出对比。质量阈详细配置请查看后面的质量阈章节。
- 可靠性,也就是bug,可靠性等级为ABCDE,bug一般指的是明显的错误
A表示代码无bug
B代码有一个次要bug
C包含一个重要bug
D有一个严重bug
E有一个最高等级的阻断级别的bug - 安全性,也就是安全漏洞,等级也分为ABCDE
A为没有漏洞时
B为只要包含一个次要漏洞
C为只要包含一个重要漏洞
D只要包含一个严重漏洞
E只要包含一个阻断漏洞 - 质量配置:
也就是质量扫描规则,这个配置很重要,决定着你的代码bug量会有多少,默认的官方规则非常多,建议项目自定义规则,这个可以参考后面质量配置章节。 - 可维护性,也就是异味,一般就是指代码写法上的规范问题,一般指的是隐藏的错误,等级也分为ABCDE
A:小于等于5%
B: 大于5%小于等于10%
C: 大于10%小于等于20%
D:大于20%小于等于50%
E:大于50%
债务:代码修完预计需要时间,时间越长说明项目问题越多。 - 代码覆盖率:
一般是指单元测试覆盖率,以maven项目来说,需要编写单元测试集成在代码里,然后执行mvn test,最后使用sonar 扫描即可上传。这里的代码覆盖率指的是行覆盖与条件覆盖。 - 代码重复率:
sonar的官方标准是不超过3%,但这个是个复杂的定义,因为sonar之类的工具,对于特殊的文件,并不能完全统计出真实的重复率。所以要根据实际情况判断。比如,将不必要的文件排除后,再统计重复率就会准一点
大体上也会给个标准:一般5% 以内为优秀,20%以内为及格。所以一般以20%作为判断标准
注意:sonar的严重程度的关键词有以下几个:
阻断:很严重错误,必须修复的
严重:可能会影响程序,需要审查
主要,次要 ,info :需要关注,也可以忽略。
三、问题查找与处理
最经常使用的问题筛选条件是:问题的类型,严重程度,以及规则。
最经常使用的问题处理方式:修改bug或者标记为误判或者标记不会处理。下次就会屏蔽。但不建议使用标记的方式,比较费时间。
问题批量处理:点击查看改规则,然后点击规则的序号
可以看到规则可以有以下的操作,拓展描述,或者直接修改规则的等级。某些情况下可以删除。删除该规则后,该问题就可以进行批量处理。
四、指标
-
总的项目指标概览,如右边的泡泡,点击泡泡可以看到一些信息。
-
复杂度,主要是以下关键词增加复杂性:if, for, while, case, catch, throw, return (不是方法的最后一个语句), &&, ||, ?,复杂度越高,越难以理解。
圈复杂度可以计算出达到全面覆盖需要的最少测试用例。认知复杂度对应这个应用是否很难被理解。
-
代码的重复率。官方标准是小于3%。
-
点击可以看到灰色竖条的重复代码,点击可以看到跟哪一行数据重复。
五、代码
1.可以看到你扫描的代码目录有哪些,有多少的代码行数,问题以及重复代码有多少。覆盖率是针对单元测试的,没有就为0
六、活动
- 可以看到各个时间段的扫描记录
- 可以选择不同的类型
- 可以看到不同时间段扫描后的bug,覆盖率等趋势图,也可点击自定义,显示其他的指标趋势。
七、代码规则
- 可以展示各种语言的规则显示,只能挂起激活,要删选需要选择质量配置。
- 如果没有定制自己的规则,这里是显示默认规则,可以自己定制规则(基于官方的规则做筛选,如果新增自己的规则,则需要自己去创建一个插件规则,再重新打包成jar包,这个步骤就比较麻烦。)
- 点击进去可以详细看规则的内容以及例子。
- p3c可以参考我另外一篇文章:链接
注意:如果是自己集成的规则,需要手动点击批量修改,修改成活动状态后才能用上,比如常用p3c规则。
八、质量配置
-
可以创建自己项目扫描的质量配置,包括规则定制(注意:如果你要自己筛选规则,父类不要选择继成sonar-way默认规则)
-
点击进去可以看到更多属性。点击进去后见下图
-
创建后可以修改属性
-
显示你使用的规则有多少,没有使用到的规则有多少。
-
点击更多激活规则,可以添加更多的规则。见下图
-
将这个质量配置赋予用户权限
-
设置某些项目使用这个质量配置
-
切换可以看到激活跟没激活的规则内容
-
点击活动就激活这条规则。
九、质量阈
-
默认是官方设定的条件准则,也可以自己设定指标准则,如下图
-
指标,显示的是各个指标数据在某个条件下就会判断为错误。默认的数据比较偏严格。
-
设定的项目。
-
创建自己的质量阈
-
可以添加自己想要的添加,一般需要重复率,可靠性,可维护性,安全率。覆盖率单元测试有才需要。
-
添加适用的项目。
十、配置
- 配置可以配置数据库的清理时间,一天内多次项目扫描默认保留最新的分析,并完全删除其他分析
- 可以配置邮件的通知。比如扫描失败提醒,bug指派。这个设置后续在补充。
- 项目设置排除某些文件的扫描设定:下次的时候生效
十一、帮助
- 点击文档可以查看官方的文档,点击插件可以查看每个版本sonar支持的插件版本。
- 查看sonar提供的各个接口,可以通过该接口获取扫描结果。
- api接口可以参考我另外一篇文章:链接