平息静态之声:静态分析告警抑制研究
软件工程
2023-11-14 v1
摘要
静态分析工具常用于在代码发布前检测缺陷。先前的研究集中于它们的整体有效性和检测缺陷的能力。然而,关于告警抑制的使用模式——开发者为防止特定告警出现而进行的配置——知之甚少。我们通过分析告警抑制功能的使用频率、使用了哪些告警抑制功能及其目的,以及如何避免警告抑制注解的使用,来填补这一空白。为回答这些问题,我们考察了 1425 个基于 Java 的开源项目,这些项目利用 Findbugs 或 Spotbugs 进行告警抑制配置和源代码注解。我们发现,尽管大多数告警被抑制,但只有一小部分被频繁抑制。与预期相反,误报仅占抑制的很小比例。大量抑制引入了技术债务,表明可能对代码质量的忽视或工具缺乏适当指导。误导性建议和错误假设也导致了抑制。研究结果强调了需要更好地沟通和教育静态分析工具的使用、改进缺陷模式定义以及更好的代码注解。未来研究可将这些发现扩展到其他静态分析工具,并应用它们来提高静态分析的有效性。
引用
@article{arxiv.2311.07482,
title = {Quieting the Static: A Study of Static Analysis Alert Suppressions},
author = {Georgios Liargkovas and Evangelia Panourgia and Diomidis Spinellis},
journal= {arXiv preprint arXiv:2311.07482},
year = {2023}
}
备注
11 pages, 4 figures