paperbot · PL 论文追踪

全部论文 待读 收藏

P2 How many of all bugs do we find? a study of static bug detectors

我们能发现所有缺陷中的多少?静态缺陷检测器研究
ASE Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering2018匹配度 4/10 · 该论文是传统静态缺陷检测器的实证评估,关注工具能发现多少真实缺陷并扩展了 Defects4J 基准,属于静态分析背景与评测方法,但与用户核心方向(LLM/Agent 与静态分析交叉、浮点程序分析、贝叶斯程序分析)没有直接关联。引用 109 inbox
Andrew Habib, Michael Pradel
crossref: 2026-09-12

AI 速览

一句话:通过扩展 Defects4J 数据集的实证研究,量化了三种主流静态缺陷检测器能发现真实缺陷的比例。

该论文关注一个常被忽视的问题:静态缺陷检测器究竟能发现多少真实缺陷,而不仅是能否发现缺陷或误报多少。作者将三种广泛使用的静态缺陷检测器应用于扩展版 Defects4J 数据集,覆盖 15 个 Java 项目、594 个已知缺陷。为判定工具是否检测到某个缺陷,论文提出结合警告与缺陷的自动分析及对每个候选检测缺陷进行人工验证的新方法。结果显示:静态缺陷检测器能发现不可忽视的一部分缺陷;不同工具之间大体互补;但当前检测器仍漏掉了研究缺陷中的绝大多数。对漏检缺陷的详细分析表明,部分缺陷可由现有检测器的变体发现,另一些则是领域特定问题,无法匹配任何现有缺陷模式。这些发现有助于用户评估工具效用,并为未来静态缺陷检测研究及与其他缺陷发现技术的比较提供依据。

问题
论文研究静态缺陷检测器能发现全部真实缺陷中的多大比例,而非仅关注是否发现缺陷或误报数量。
方法
将三种广泛使用的静态缺陷检测器应用于包含 15 个 Java 项目、594 个已知缺陷的扩展版 Defects4J 数据集,并结合警告与缺陷的自动分析以及每个候选检测缺陷的人工验证。
评估
通过实证研究量化检测器发现的缺陷比例、工具之间的互补性以及漏检情况,并对漏检缺陷进行详细分析。
原文摘要(Abstract)

Static bug detectors are becoming increasingly popular and are widely used by professional software developers. While most work on bug detectors focuses on whether they find bugs at all, and on how many false positives they report in addition to legitimate warnings, the inverse question is often neglected: How many of all real-world bugs do static bug detectors find? This paper addresses this question by studying the results of applying three widely used static bug detectors to an extended version of the Defects4J dataset that consists of 15 Java projects with 594 known bugs. To decide which of these bugs the tools detect, we use a novel methodology that combines an automatic analysis of warnings and bugs with a manual validation of each candidate of a detected bug. The results of the study show that: (i) static bug detectors find a non-negligible amount of all bugs, (ii) different tools are mostly complementary to each other, and (iii) current bug detectors miss the large majority of the studied bugs. A detailed analysis of bugs missed by the static detectors shows that some bugs could have been found by variants of the existing detectors, while others are domain-specific problems that do not match any existing bug pattern. These findings help potential users of such tools to assess their utility, motivate and outline directions for future work on static bug detection, and provide a basis for future comparisons of static bug detection with other bug finding techniques, such as manual and automated testing.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4719,
  title = {How many of all bugs do we find? a study of static bug detectors},
  author = {Andrew Habib and Michael Pradel},
  booktitle = {ASE},
  year = {2018},
  doi = {10.1145/3238147.3238213}
}