SonarQube基本介绍
序
1. 代码品质检测
众所周知电器制造商等制造业对于自家产品都有品质管理的一套方法和理论,作为工业制造开发的一种,软件开发同样也需要品质管理.本篇文章是针对测试环节中,对于代码的质量分析的开源软件SonarQube的介绍的第一篇。
2. 动态代码分析和静态代码分析的区别
对于代码的测试有两种模式,动态代码分析以及静态代码分析,并使用不同方式进行测试。
-
动态代码测试:动态代码主要将代码进行运行测试,主要进行黑盒测试的时候进行使用。测试软件通过跑动软件,检测软件中的功能问题,是否存在运行BUG,或者是否能够按照功能需求正常跑动。
常见的使用工具:Selenium,Katalon,CasperJS等。
-
静态代码测试:静态代码主要将代码进行代码测试,根据事先团队中对于代码的要求,建立一种代码的标准需求,测试用工具对于代码进行整理遍历,检测是否存在无法达到标准的代码,进行代码评分还有针对有问题的代码提出修改建议。
常见的使用工具:SonarQube,Coverity,PyCharm等。
SonarQube是什么
1. SonarQube的介绍
-
是一种静态代码质量分析的开源软件,主要功能如下:
-
SonarQube本体是底层是Java编写的,对于Java代码分析和Maven,Gradle结合相对容易
-
拥有大量的插件,能够进行多种编程语言的静态代码分析
-
能够和CI/CD环境进行集成,能够持续进行代码质量检测。同时针对代码的检测同时,能够针对代码情况进行评分和反馈。现阶段支持的CI/CD有Gitlab,Github,Jenkins等
-
现在有4种版本:Community版本,Developer版本,Enterprise版本,Data Center版本.
- Communtiy版本属于免费版本,其他版本是收费的.Communtiy版存在一定服务的限制,想要使用更多的功能,就需要使用Developer以上的版本.(资本家嘴脸~)
- Community版本以外会有SonarQube运营的公司的客服服务
- 由于SonarQube属于开源产品,所以即使使用Comunity版本,使用合适的插件也能够让Community版使用Developer大部分的服务.下一篇文章将会介绍实现方法.
-
SonarQube相关的其他产品:
- SonarLint:IDE的开发插件,可以选择是否连接SonarQube的服务器,非连接状态下和普通的代码辅助插件的功能差不多,当连接SonarQube的服务器时,可以获取SonarQube服务器的代码评价,获取更为标准的代码评价
- SonarCloud:SonarQube的运营公司推出的SaaS云服务,基本功能和普通的SonarQube的服务器版本差不多,会有更多的针对SaaS级别的服务
2. SonarQube的各个功能:
-
代码可靠性
这一块功能主要是静态代码检测的基本功能,其他的代码检测软件也基本拥有同样的功能。
- BUG检测
- 设置需要的代码标准
- 代码异味
- 代码安全性
- 对于开发的各个路径进行检测
-
软件安全性
这一块的功能主要是介绍SonarQube对于软件安全性的测试,帮助开发人员完成更加安全的软件程序。
- Security Hotspots: 代码存在安全问题的部分
- Vulnerabilities: 代码是否存在漏洞
-
代码技术负债的检测
这一块功能主要体现SonarQube的核心理念, SonarQube核型理念如下:
-
Clean as You Code(编码即清洁)
在开发者完成一部分新的代码之后,可以将代码推给SonarQube,SonarQube会一直关注新开发的代码,并对这一部分的代码的品质进行分析和评价,以保证开发者的代码一直保持满足标准的状态.
-
Focus on New Code
针对新代码的品质检测,可以按照开发者或者团队的需要,调整为不同的标准,以适应不同的开发级别.在现阶段,有global(全局)级别,project(项目)级别,branch(分支)级别.在根据不同的级别,设置不同的标准,能够使开发更加的灵活,更好的保证代码品质.
-
Quality Gate
如同这个名字所表达的意思,这个就是SonarQube对于代码进行评价的标准.对于SonarQube会在每一个版本的SonarQube里面绑定一个一个叫做“Sonar way”的标准.这个是运营SonarQube的公司认定的业界里面的代码品质标准,可以满足大部分软件开发的代码品质检测.但是,如果开发团队希望自己规定品质标准的话,也可以自己进行品质标准的设置.所有的代码品质设置也很简单,在SonarQube的代码品质设置界面里面,根据不同情形将以下三项进行设置即可:
- measure
- comparison operator
- error value
如果没有特别的需要, SonarQube官方推荐使用“Sonar way”.
+α
(1)参考资料:
- https://docs.sonarqube.org/latest/ (SonarQube的官方文档)
- https://www.youtube.com/watch?v=31igoWxauEQ&ab_channel=Intellipaat (包括SonarQube配置在内,测试相关的知识进行介绍. 要翻墙,印式英语说明,很好理解,推荐~)
(2)接下来的博客内容将会对SonarQube实际使用进行说明,内容为:
- SonarQube的架构搭建以及CI/CD环境构建
- SonarQube的代码质量分析规定的说明和设置的介绍
-