admin管理员组

文章数量:1794759

代码静态扫描 Sonar, Checkstyle, PMD, Findbug 的对比与使用侧重

代码静态扫描 Sonar, Checkstyle, PMD, Findbug 的对比与使用侧重

首先 Sonar 为代码质量平台,做多维度统计及结果数据展示用,本身不具备代码扫描功能,可由 QA 或 Tester 直接运维及使用管理。题外话,除去可插入代码静态扫描结果展现外,还可以插入测试运行时动态覆盖率扫描(例如:Jacoco)结果

其次 Checkstyle 侧重对文法分析,即对编码风格、约定的语法扫描,不做代码缺陷模式(对Bad Practise的推断或预判式)的扫描(例如:发现空指针),可作为公司第一道强约束关卡,亦可供研发人员在提交代码库之前先行自查。

PMD 和 Findbug 侧重代码缺陷的扫描,公司可视项目情况予以裁剪和取舍。

前者多基于编码及设计实践(例如:变量未被使用,重复代码块,循环体内创建对象等),自定义能力强。公司可通过裁剪和不断丰富以形成本公司编码设计的 Best practise;后者基于对字节流的扫描分析(例如:I/O 打开后未关闭),有更强的编码缺陷发现能力。

以上可结合IDE工具(工程师本地检查),Jenkins 平台(项目集成扫描)或独立Sonar平台联合使用

附一篇较早的原理、概念及比对文章:/

 

其他关联性文章:


自动化体系平台建设 —— 全流程质量保证及改进措施 

本文标签: 代码静态扫描 SonarCheckStylePMDFindbug 的对比与使用侧重