paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Reducing the search space of bug inducing commits using failure coverage

利用失败覆盖率缩小 bug 引入提交的搜索空间
FSE Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2021匹配度 2/10 · 该论文研究缺陷引入提交(BIC)检索与测试覆盖率过滤,属于软件测试与调试领域,与用户关注的静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析均无直接交叉。虽然涉及程序分析与工程实践,但核心问题不在用户研究画像的主线上。引用 11 inbox
Gabin An, Shin Yoo
crossref: 2026-09-12

AI 速览

一句话:利用失败测试用例覆盖率过滤提交,大幅缩小 bug 引入提交的检索空间。

本文关注从版本历史中定位 bug 引入提交(BIC)的准确性与成本问题。现有自动二分法要求揭示 bug 的测试能在所有候选旧版本上执行,而 SZZ 类归因方法要求 bug 已被修复。作者提出用 bug 揭示测试用例的覆盖率来过滤提交,从而在二分和 SZZ 类归因之前削减候选集合。在实验中,该方法分别将二分与 SZZ 类模型的搜索空间缩小 87.6% 和 27.9%,显著降低 BIC 检索开销。将其应用于 Defects4J 的 bug 时,还发现文献中部分已知 BIC 存在不一致。

问题
现有 BIC 检索方法(自动二分、SZZ 归因)受限于测试可执行性和需先修复 bug,准确性与成本不理想。
方法
用 bug 揭示测试用例的覆盖率对提交进行过滤,缩小二分和 SZZ 类归因的候选搜索空间。
评估
在版本历史上度量搜索空间缩减比例,并在 Defects4J 上应用,显示显著缩减及已知 BIC 不一致。
原文摘要(Abstract)

Knowing how exactly a bug has been introduced into the code can help developers debug the bug efficiently. However, techniques currently used to retrieve Bug Inducing Commits (BICs) from the repository timeline are limited in their accuracy. Automated bisection of the version history depends on the bug revealing test case being executable against all candidate previous versions, whereas blaming the last commits that touched the same parts as the fixing commit (à la SZZ) requires that the bug has already been fixed. We show that filtering commits using the coverage of the bug revealing test cases can effectively reduce the search space for both bisection and SZZ-like blame models by 87.6% and 27.9%, respectively, significantly reducing the cost of BIC retrieval. The application of our approach to bugs in Defects4J also reveals inconsistencies in some of their BICs known in the literature.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6462,
  title = {Reducing the search space of bug inducing commits using failure coverage},
  author = {Gabin An and Shin Yoo},
  booktitle = {FSE},
  year = {2021},
  doi = {10.1145/3468264.3473129}
}