Evaluating the Impact of Experimental Assumptions in Automated Fault Localization
Ezekiel O. Soremekun, Lukas Kirschner, Marcel Böhme, Mike Papadakis
摘要
Much research on automated program debugging often assumes that bug fix location(s) indicate the faults' root causes and that root causes of faults lie within single code elements (statements). It is also often assumed that the number of statements a developer would need to inspect before finding the first faulty statement reflects debugging effort. Although intuitive, these three assumptions are typically used (55% of experiments in surveyed publications make at least one of these three assumptions) without any consideration of their effects on the debugger's effectiveness and potential impact on developers in practice. To deal with this issue, we perform controlled experimentation, split testing in particular, using 352 bugs from 46 open-source C programs, 19 Automated Fault Localization (AFL) techniques (18 statistical debugging formulas and dynamic slicing), two (2) stateof-the-art automated program repair (APR) techniques (GenProg and Angelix) and 76 professional developers. Our results show that these assumptions conceal the difficulty of debugging. They make AFL techniques appear to be (up to 38%) more effective, and make APR tools appear to be (2X) less effective. We also find that most developers (83%) consider these assumptions to be unsuitable for debuggers and, perhaps worse, that they may inhibit development productivity. The majority (66%) of developers prefer debugging diagnoses without these assumptions twice as much as with the assumptions. Our findings motivate the need to assess debuggers conservatively, i.e., without these assumptions. Table I EXAMPLES OF REAL-WORLD BUGGY PROGRAMS SHOWCASING EACH ASSUMPTION, INCLUDING SAMPLE DIAGNOSES AND QUOTES FROM LITERATURE ILLUSTRATING EACH ASSUMPTION AND THEIR USE IN DEBUGGING LITERATURE AND BUG DATASETS Perfect Bug Understanding (PBU) Using Fixes as Fault Location Single Faulty Location Example Program 1 void add(int * i, char * c) 2 * i = * i + * c; 3 if ( * i >= 256) 4 * i = 0; 5 6 7 int main() 8 ... 9 while (c != '') 10 add(&i, &c); 11 scan_data(&c); 12 13 i = (i % 64) + 32; 14 printf("Check sum is %c", i); 15 ...
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper4
- PAFL: Enhancing Fault Localizers by Leveraging Project-Specific Fault PatternsDonguk Kim, Minseok Jeon, Doha Hwang, Hakjoo OhOOPSLA 2025 · 被引用 1 次
- UniDebugger: Hierarchical Multi-Agent Framework for Unified Software DebuggingCheryl Lee, Chunqiu Steven Xia, Longji Yang, Jen-tse Huang 等EMNLP 2025
- CoReX: Context-Aware Refinement-Based Slicing for Debugging Regression FailuresSahar Badihi, Julia RubinICSE 2026
- RePurr: Automated Repair of Block-Based Learners' ProgramsSebastian Schweikl, Gordon FraserFSE 2025
它引用的顶会 Paper3
- Fault Localization with Code Coverage Representation LearningYi Li, Shaohua Wang, Tien N. NguyenICSE 2021 · 被引用 120 次
- Trust Enhancement Issues in Program RepairYannic Noller, Ridwan Shariffdeen, Xiang Gao, Abhik RoychoudhuryICSE 2022 · 被引用 51 次
- Improving Fault Localization by Integrating Value and Predicate Based Causal Inference TechniquesYigit Küçük, Tim A. D. Henderson, Andy PodgurskiICSE 2021 · 被引用 6 次
相关 Paper
- A Bayesian Framework for Automated DebuggingSungmin Kang, Wonkeun Choi, Shin YooISSTA 2023 · 被引用 1 次
- On the Effectiveness of Unified Debugging: An Extensive Study on 16 Program Repair SystemsSamuel Benton, Xia Li, Yiling Lou, Lingming ZhangASE 2020 · 被引用 35 次
- Can automated program repair refine fault localization? a unified debugging approachYiling Lou, Ali Ghanbari, Xia Li, Lingming Zhang 等ISSTA 2020 · 被引用 99 次
- Towards Boosting Patch Execution On-the-FlySamuel Benton, Yuntong Xie, Lan Lu, Mengshi Zhang 等ICSE 2022 · 被引用 10 次
- Automated Program Repair, What Is It Good For? Not Absolutely Nothing!Hadeel Eladawy, Claire Le Goues, Yuriy BrunICSE 2024 · 被引用 15 次
