Show Me Why It's Correct: Saving 1/3 of Debugging Time in Program Repair with Interactive Runtime Comparison
arXiv:2503.00618 · doi:10.1145/3720510
Abstract
Automated Program Repair (APR) holds the promise of alleviating the burden of debugging and fixing software bugs. Despite this, developers still need to manually inspect each patch to confirm its correctness, which is tedious and time-consuming. This challenge is exacerbated in the presence of plausible patches, which accidentally pass test cases but may not correctly fix the bug. To address this challenge, we propose an interactive approach called iFix to facilitate patch understanding and comparison based on their runtime difference. iFix performs static analysis to identify runtime variables related to the buggy statement and captures their runtime values during execution for each patch. These values are then aligned across different patch candidates, allowing users to compare and contrast their runtime behavior. To evaluate iFix, we conducted a within-subjects user study with 28 participants. Compared with manual inspection and a state-of-the-art interactive patch filtering technique, iFix reduced participants' task completion time by 36% and 33% while also improving their confidence by 50% and 20%, respectively. Besides, quantitative experiments demonstrate that iFix improves the ranking of correct patches by at least 39% compared with other patch ranking methods and is generalizable to different APR tools.
27 pages, 8 figures, OOPSLA 2025
References in corpus (13)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair
- TBar: Revisiting Template-based Automated Program Repair
- CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
- Elixir: Effective object-oriented program repair
- Identifying Patch Correctness in Test-Based Program Repair
- Neural Program Repair with Execution-based Backpropagation
- Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each using ChatGPT
- Ultra-Large Repair Search Space with Automatically Mined Templates: the Cardumen Mode of Astor
- Automated Classification of Overfitting Patches with Statically Extracted Code Features
- Program Repair: Automated vs. Manual
- Test-based Patch Clustering for Automatically-Generated Patches Assessment
- Trust Enhancement Issues in Program Repair