A Critical Review of "Automatic Patch Generation Learned from Human-Written Patches": Essay on the Problem Statement and the Evaluation of Automatic Software Repair
arXiv:1408.2103 · doi:10.1145/2568225.2568324
Abstract
At ICSE'2013, there was the first session ever dedicated to automatic program repair. In this session, Kim et al. presented PAR, a novel template-based approach for fixing Java bugs. We strongly disagree with key points of this paper. Our critical review has two goals. First, we aim at explaining why we disagree with Kim and colleagues and why the reasons behind this disagreement are important for research on automatic software repair in general. Second, we aim at contributing to the field with a clarification of the essential ideas behind automatic software repair. In particular we discuss the main evaluation criteria of automatic software repair: understandability, correctness and completeness. We show that depending on how one sets up the repair scenario, the evaluation goals may be contradictory. Eventually, we discuss the nature of fix acceptability and its relation to the notion of software correctness.
ICSE 2014, India (2014)
References in corpus (3)
Cited by in corpus (33)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- Automatic Software Repair: a Bibliography
- Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset
- Automatic Repair of Buggy If Conditions and Missing Preconditions with SMT
- On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs
- Test Case Purification for Improving Fault Localization
- iFixR: Bug Report driven Program Repair
- On the Impact of Programming Languages on Code Quality
- Principles of Antifragile Software
- An Empirical Analysis of the Influence of Fault Space on Search-Based Automated Program Repair
- Impact of Tool Support in Patch Construction
- Tailored Source Code Transformations to Synthesize Computationally Diverse Program Variants
- ARJA: Automated Repair of Java Programs via Multi-Objective Genetic Programming
- RESTORE: Retrospective Fault Localization Enhancing Automated Program Repair
- Automatic Repair of Infinite Loops
- Rebooting Research on Detecting Repackaged Android Apps: Literature Review and Benchmark
- Harvesting Fix Hints in the History of Bugs
- ASTOR: Evolutionary Automatic Software Repair for Java
- Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts
- Mining Fix Patterns for FindBugs Violations
- Automated Description Generation for Software Patches
- DevReplay: Automatic Repair with Editable Fix Pattern
- Precise Condition Synthesis for Program Repair
- Software that Learns from its Own Failures
- How Different Is It Between Machine-Generated and Developer-Provided Patches? An Empirical Study on The Correct Patches Generated by Automated Program Repair Techniques
- AVATAR : Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations
- You Cannot Fix What You Cannot Find! An Investigation of Fault Localization Bias in Benchmarking Automated Program Repair Systems
- Stryker: Scaling Specification-Based Program Repair by Pruning Infeasible Mutants with SAT
- Sound Patch Generation for Vulnerabilities
- An Analysis of the Search Spaces for Generate and Validate Patch Generation Systems
- On Reliability of Patch Correctness Assessment
- FlexiRepair: Transparent Program Repair with Generic Patches
- CrossFix: Collaborative bug fixing by recommending similar bugs