自动化静态分析工具值得用吗?关于相对警告密度与外部软件质量的调查研究
软件工程
2021-11-19 v2
摘要
自动化静态分析工具(ASATs)是软件开发最佳实践的一部分。ASATs 能够就代码中潜在的问题向开发者发出警告。一方面,ASATs 基于最佳实践,因此理应对软件质量产生显著影响;另一方面,ASATs 存在误报警告,开发者必须对其进行检查,然后忽略或将之标记为无效。在本文中,我们以 Java 的 PMD 为例,探讨 ASATs 是否对外部软件质量具有可度量的影响。我们研究了 PMD 发出的 ASAT 警告与每次变更及每个文件缺陷数之间的关系。我们的案例研究包含了每个文件的历史数据,以及被更改文件与其所属项目之间的差异。我们考察了引发缺陷的文件是否比项目其余部分含有更多的静态分析警告。此外,我们还考察了两组不同 ASAT 规则的影响。我们发现,在引发缺陷的文件在该时间点上所含的静态分析警告少于项目中其他文件。然而,这可由整体下降的警告密度来解释。与所有其他变更相比,我们发现对于所有规则在一个指标上、以及对于规则子集在两个指标上存在统计显著差异。但在所有情况下效应量均可忽略不计,表明引发缺陷的变更与其他变更之间警告密度的实际差异至多很小。
引用
@article{arxiv.2111.09188,
title = {Are automated static analysis tools worth it? An investigation into relative warning density and external software quality},
author = {Alexander Trautsch and Steffen Herbold and Jens Grabowski},
journal= {arXiv preprint arXiv:2111.09188},
year = {2021}
}