Towards a Benchmark Set for Program Repair Based on Partial Fixes
This work provides a foundational benchmark set for the automated program repair community, addressing a preliminary but incremental step in understanding partial fixes.
The authors investigated the prevalence of partial fixes in software development to assess their relevance for automated program repair, finding 2204 benchmark tasks from 1500 open-source C repositories on GitHub.
Software bugs significantly contribute to software cost and increase the risk of system malfunctioning. In recent years, many automated program-repair approaches have been proposed to automatically fix undesired program behavior. Despite of their great success, specific problems such as fixing bugs with partial fixes still remain unresolved. A partial fix to a known software issue is a programmer's failed attempt to fix the issue the first time. Even though it fails, this fix attempt still conveys important information such as the suspicious software region and the bug type. In this work we do not propose an approach for program repair with partial fixes, but instead answer a preliminary question: Do partial fixes occur often enough, in general, to be relevant for the research area of automated program repair? We crawled 1500 open-source C repositories on GitHub for partial fixes. The result is a benchmark set of 2204 benchmark tasks for automated program repair based on partial fixes. The benchmark set is available open source and open to further contributions and improvement.