Representations and operators for improving evolutionary software repair
Proceedings of the 14th annual conference on Genetic and evolutionary computation
A human study of patch maintainability
Proceedings of the 2012 International Symposium on Software Testing and Analysis
A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Dynamic adaptive search based software engineering
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
SBSE meets software maintenance: achievements and open problems
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Software engineering: an ideal set of challenges for evolutionary computation
Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
Search methodologies in real-world software engineering
Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
Using automated program repair for evaluating the effectiveness of fault localization techniques
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Current challenges in automatic software repair
Software Quality Control
Cloud engineering is Search Based Software Engineering too
Journal of Systems and Software
Is this a bug or an obsolete test?
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Repair with on-the-fly program analysis
HVC'12 Proceedings of the 8th international conference on Hardware and Software: verification and testing
Post-compiler software optimization for reducing energy
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
This paper describes GenProg, an automated method for repairing defects in off-the-shelf, legacy programs without formal specifications, program annotations, or special coding practices. GenProg uses an extended form of genetic programming to evolve a program variant that retains required functionality but is not susceptible to a given defect, using existing test suites to encode both the defect and required functionality. Structural differencing algorithms and delta debugging reduce the difference between this variant and the original program to a minimal repair. We describe the algorithm and report experimental results of its success on 16 programs totaling 1.25 M lines of C code and 120K lines of module code, spanning eight classes of defects, in 357 seconds, on average. We analyze the generated repairs qualitatively and quantitatively to demonstrate that the process efficiently produces evolved programs that repair the defect, are not fragile input memorizations, and do not lead to serious degradation in functionality.