深入分析 PMD 和 SonarQube 生成的警告:规则与与既定编码标准的合规性
软件工程
2026-03-03 v1
摘要
背景:静态代码分析(SCA)工具在软件开发中发挥着关键作用,减少代码审查的成本和时间。然而,最佳工具仍报告高的误报和漏报率。因此,研究往往旨在开发用于学习SCA警告模式的数据集,以减少错误结果。这些数据集旨在覆盖导致典型误警的完整规则范围,并符合既定编码标准。然而,现有研究未利用此类数据集,也未识别出易产生误报的规则范围及其与编码标准的合规性。目标:我们分析来自Stack Overflow和Apache Tomcat的代码,以捕捉代码长度和风格的差异,识别由最佳工具 PMD 和 SonarQube 生成的误报警告。方法:在导出误报警告时,我们使用既定编码标准对工具输出进行标记。随后进行深入分析,以识别易产生误报的规则、原因以及SCA规则与既定标准之间的一致性/差距。结果:我们的主要结果显示,仅有少数SCA规则产生误报,其比例在四个数据集中从4.64%到18.45%不等。此外,消除与既定标准相矛盾的规则显著降低了误报率。此外,我们的发现揭示了工具与既定标准之间的差异。结论:基于本研究的证据,我们建议进一步调查工具与既定标准之间的差距,包括使用机器学习方法对更大的数据集进行标记。
引用
@article{arxiv.2603.00821,
title = {Taking a Closer Look at Warnings Generated by PMD and SonarQube, their Rules and Compliance to Established Coding Standards},
author = {Lakmal Deshapriya and Sherlock A. Licorish and Brendon J. Woodford},
journal= {arXiv preprint arXiv:2603.00821},
year = {2026}
}