iFixR: Bug Report driven Program Repair
arXiv:1907.05620 · doi:10.1145/3338906.3338935
Abstract
Issue tracking systems are commonly used in modern software development for collecting feedback from users and developers. An ultimate automation target of software maintenance is then the systematization of patch generation for user-reported bugs. Although this ambition is aligned with the momentum of automated program repair, the literature has, so far, mostly focused on generate-and-validate setups where fault localization and patch generation are driven by a well-defined test suite. On the one hand, however, the common (yet strong) assumption on the existence of relevant test cases does not hold in practice for most development settings: many bugs are reported without the available test suite being able to reveal them. On the other hand, for many projects, the number of bug reports generally outstrips the resources available to triage them. Towards increasing the adoption of patch generation tools by practitioners, we investigate a new repair pipeline, iFixR, driven by bug reports: (1) bug reports are fed to an IR-based fault localizer; (2) patches are generated from fix patterns and validated via regression testing; (3) a prioritized list of generated patches is proposed to developers. We evaluate iFixR on the Defects4J dataset, which we enriched (i.e., faults are linked to bug reports) and carefully-reorganized (i.e., the timeline of test-cases is naturally split). iFixR generates genuine/plausible patches for 21/44 Defects4J faults with its IR-based fault localizer. iFixR accurately places a genuine/plausible patch among its top-5 recommendation for 8/13 of these faults (without using future test cases in generation-and-validation).
arXiv commentAccepted by FSE 2019
References in corpus (10)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- TBar: Revisiting Template-based Automated Program Repair
- A Critical Review of "Automatic Patch Generation Learned from Human-Written Patches": Essay on the Problem Statement and the Evaluation of Automatic Software Repair
- Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities
- Identifying Patch Correctness in Test-Based Program Repair
- Dynamic Patch Generation for Null Pointer Exceptions using Metaprogramming
- Ultra-Large Repair Search Space with Automatically Mined Templates: the Cardumen Mode of Astor
- How to Design a Program Repair Bot? Insights from the Repairnator Project
- Alleviating Patch Overfitting with Automatic Test Generation: A Study of Feasibility and Effectiveness for the Nopol Repair System
- Impact of Tool Support in Patch Construction
Cited by in corpus (4)
- FixMiner: Mining Relevant Fix Patterns for Automated Program Repair
- Is this Change the Answer to that Problem? Correlating Descriptions of Bug and Code Changes for Evaluating Patch Correctness
- Validating Static Warnings via Testing Code Fragments
- Hierarchical Knowledge Injection for Improving LLM-based Program Repair