Sorald:针对 SonarQube 静态分析违规的自动补丁建议
软件工程
2022-04-28 v2
摘要
先前的工作表明,尽早解决静态代码分析器检测到的问题可以避免后续的重大成本。然而,开发者常常忽略此类问题,主要有两个原因。首先,许多问题需要被解读以确定它们是否对应程序中的实际缺陷。其次,静态分析器往往不能以可操作的方式呈现这些问题。为解决这些问题,我们提出 Sorald:一种新颖的系统,它设计元编程模板来转换程序的抽象语法树并为静态分析警告建议修复方案。因此,开发者的负担从解读和修复静态问题降低为检查并批准完整的解决方案。Sorald 修复了 SonarJava(最广泛使用的 Java 静态分析器之一)中 10 条规则的违规。我们在 Github 上 161 个流行仓库的数据集上评估 Sorald。我们的分析显示了 Sorald 的有效性,因为它修复了满足修复前置条件的违规中的 65%(852/1,307)。总体而言,我们的实验表明,自动修复最先进静态分析器 SonarJava 产生的显著静态分析规则违规是可能的。
引用
@article{arxiv.2103.12033,
title = {Sorald: Automatic Patch Suggestions for SonarQube Static Analysis Violations},
author = {Khashayar Etemadi and Nicolas Harrand and Simon Larsen and Haris Adzemovic and Henry Luong Phu and Ashutosh Verma and Fernanda Madeiral and Douglas Wikstrom and Martin Monperrus},
journal= {arXiv preprint arXiv:2103.12033},
year = {2022}
}