Sonar简介
最近的测试工作接触到了一款平台,名为“Sonar”,用于源代码管理,可以方便的检测到我们程序中可能存在的一些问题,会对我们有问题的代码给出错误级别,以及改正方法,十分简单易用。
是什么?
Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。它不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobl、PL/SQL、Flex、JavaScrip等二十多种语言。
它几乎支持了你所能想到的一切代码质量问题:从静态分析到动态分析(单元测试) 、从系统分析到人工评审、从历史分析到现在的版本分析、从Web客户端到Eclipse插件、从本地分析到远程分析、从集成其他代码分析插件(FindBugs、PMD等)到作为插件被CI持续集成、从邮件通信到任务平台交换(如JIRA) 、从Web接口到插件开发。
为什么用?
伴随计算机水平和技术的迅猛发展,我们对产品提出了更高的要求。众所周知,项目规模越大,产品需求越多,可能产生的问题也就多。这时,对我们的代码提出了更高的要求,不论是开发,还是运维,我们都需要更高效的方法去避免、解决一些代码质量问题。因此,Sonar应运而生。
Sonar的主要特征如下:
(1)写干净的代码
SonarQube提供了对源代码整体运行状况的概述,突出了新代码中发现的问题。
(2)检测错误
Sonar的代码分析器配备了强大的路径敏感数据流引擎来检测棘手的错误,如空指针解引用、逻辑错误、资源泄露等。
(3)多语言
(4)DevOps集成
DevOps集成SonarQube已经建立起来,它是DevOps生态系统的一部分,因此将集成到CI引擎,促销管道。
(5)集中品质
为开发人员,技术负责人,管理人员提供数千个项目的代码质量共同愿景。
用它干什么?
Sonar可以从以下几个维度检测代码质量,作为开发人员至少需要处理前五种代码质量问题。当然,这也是我们在学习以及实践中需要注意和学习的地方。
(1)不遵循代码标准
(2)潜在的缺陷
(3)糟糕的复杂度分布(类、方法等,复杂度太高会使开发人员难以理解;如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。)
(4)重复(代码中有大量重复的内容,只需复制粘贴即可完成,质量低下。)
(5)注释不足或者过多(注释不足,会使代码可读性下降;注释过多,会使开发人员花费太多的精力在阅读注释上。)
(6)缺乏单元测试
(7)糟糕的设计(通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则。)
功能简要展示
当然,以上内容对于sonar这个平台来说,只能算是凤毛麟角,更多的内容还需要大家去探索、学习,用过了才知道有多好!
(本文主要通过网络内容整理)