前言
现如今大家越来越认识到质量前移的重要性。如果一开始就写出优质的、经过测试的代码,那么后面的测试阶段将会减少很多不必要的时间。如果开发人员迫于业务压力,一味追求项目开发进度,往往会容易形成大量的“烂代码”。一般的烂代码体现在逻辑混乱、复杂度高、易读性差、没有单元测试和缺乏必要的注释。如果把这样的“烂代码”编译交付测试团队,那么测试人员势必会发现很多低级缺陷,甚至连冒烟测试都无法通过,这样势必会浪费很多时间,延误测试进度。所以,回到开始,为何不一开始就是写出优质代码呢?
我们都知道很多公司都在推行 DevOps
、推行测试前移,就是让测试人员尽早参与研发过程中来,有很多团队推行了测试人员参与代码评审流程,但是往往效果不是很理想,原因通常是由于测试人员代码能力有限,不熟悉业务代码逻辑,当然也就无法发现正确问题,这样也就而导致测试团队的代码评审变成了摆设。那么问题来了,有什么办法解决这种状况吗?如果测试人员在执行代码评审的时候可以借助一些代码扫描工具,然后针对这些扫描出的问题再进一步分析,这样轻易地可以发现一些真正代码问题。
在实际的项目中,我们一般使用的多种编程语言,那么我们需要针对多种编程语言的一种扫描工具。目前主流的是使用 SonarQube 代码质量分析平台。
SonarQube是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 Java、Python、Groovy、C#、C、C++等几十种编程语言的检测。 它主要的核心价值体现在如下几个方面:
SonarQube平台由4个组件组成:
SonarQube主要工作流程:
SonarScanners
扫描该代码检查质量,将分析结果推送到 SonarQube 平台,进而持久化数据库存储;SonarQube 除了搭配 Jenlins 持续扫描代码质量外,我们还可以在IDE中使用 SonarLint ,让开发在开发阶段就及早发现可能存在的代码问题。
VisualStudio
中 【工具】 - > 【扩展和更新】
选择 【联机】 - > 输入【SonarLint】- > 选择【SonarLint for Visual studio】下载
重启 IDE
先打开我们本地的项目 打开【分析】 - > 【管理 SonarQube 连接】
按【Connect...】连接 SonarQube Server
输入 SonarQube Server 地址以及大家的用户名密码
连接上 SonarQube Server后,会出现目前 server 所有的项目,选择当前本地项目需要绑定的项目。
绑定后会从 server 上下载 该项目分析结果和规则到本机。
SonarLint 可以自动在 IDE 上检查出目前 server 上分析出的问题。
点击左侧的小灯泡,SonarLint 会解释该规则检查的理由。
SonarLint 可手动检查整个本地项目和当前的类
点击【分析】- > 【针对解决方案】or 【当前类】 SonarLint 会将所有的检查到的问题显示在IDE下方。