ABSTRACT
Automated program repair is a very active research field, with promising results so far. Several program repair techniques follow a Generate-and-Validate work-scheme: programs are iteratively sampled from within a predefined repair search space, and then checked for correctness to see if they constitute a repair.
In this poster, we propose an enhanced work-scheme, called Generate-Validate-AnalyzeErr, in which whenever a program is found to be incorrect, the error trace that is the evidence of the bug is further analyzed to obtain a search hint. This hint improves the sampling process of programs in the future. The effectiveness of this work-scheme is illustrated in a novel technique for program repair, where search hints are generated in a process we call error generalization. The goal of error generalization is to remove from the search space all programs that exhibit the same erroneous behavior.
The aim of this poster is to present our vision of the future of program repair, and trigger research in directions that have not been explored so far. We believe that many existing techniques can benefit from our new work-scheme, by focusing attention on what can be learned from failed repair attempts. We hope this poster inspires others and gives rise to further work on this subject.
- Evren Ermis, Martin Schaf, and Thomas Wies. 2012. Error invariants. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) 7436 LNCS (2012), 187--201.Google Scholar
- Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer. 2012. GenProg: A generic method for automatic software repair. Software Engineering, IEEE Transactions on 38, 1 (2012), 54--72. Google ScholarDigital Library
- Fan Long and Martin Rinard. 2015. Prophet: Automatic patch generation via learning from successful patches. (2015).Google Scholar
- Urmas Repinski, Hanno Hantson, Maksim Jenihhin, Jaan Raik, Raimund Ubar, Giuseppe Di Guglielmo, Graziano Pravadelli, and Franco Fummi. 2012. Combining dynamic slicing and mutation operators for ESL correction. In Test Symposium (ETS), 2012 17th IEEE European. IEEE, 1--6.Google ScholarCross Ref
- Bat-Chen Rothenberg and Orna Grumberg. 2016. Sound and Complete Mutation-Based Program Repair. In FM 2016: Formal Methods: 21st International Symposium, Limassol, Cyprus, November 9--11, 2016, Proceedings 21, Vol. 9995.Google Scholar
Recommendations
Model and Program Repair via SAT Solving
Special Issue on MEMCODE 2015 and Regular Papers (Diamonds)We consider the subtractive model repair problem: given a finite Kripke structure M and a CTL formula η, determine if M contains a substructure M′ that satisfies η. Thus, M can be “repaired” to satisfy eta by deleting some transitions and states. We map ...
Anti-patterns in search-based program repair
FSE 2016: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software EngineeringSearch-based program repair automatically searches for a program fix within a given repair space. This may be accomplished by retrofitting a generic search algorithm for program repair as evidenced by the GenProg tool, or by building a customized ...
ELIXIR: effective object oriented program repair
ASE '17: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software EngineeringThis work is motivated by the pervasive use of method invocations in object-oriented (OO) programs, and indeed their prevalence in patches of OO-program bugs. We propose a generate-and-validate repair technique, called ELIXIR designed to be able to ...
Comments