Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Simplifying and Isolating Failure-Inducing Input
IEEE Transactions on Software Engineering
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Practical Software Maintenance: Best Practices for Managing Your Software Investment
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Code Factoring And The Evolution Of Evolvability
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Bug isolation via remote program sampling
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A Sense of Self for Unix Processes
SP '96 Proceedings of the 1996 IEEE Symposium on Security and Privacy
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Modularity and the evolution of software evolvability
Modularity and the evolution of software evolvability
diffX: an algorithm to detect changes in multi-version XML documents
CASCON '05 Proceedings of the 2005 conference of the Centre for Advanced Studies on Collaborative research
TimeAware test suite prioritization
Proceedings of the 2006 international symposium on Software testing and analysis
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the 5th international conference on Generative programming and component engineering
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
Symbolic mining of temporal specifications
Proceedings of the 30th international conference on Software engineering
On the automation of fixing software bugs
Companion of the 30th international conference on Software engineering
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Automatic program repair with evolutionary computation
Communications of the ACM
Metaman: system-wide metadata management
Proceedings of the Workshop on Binary Instrumentation and Applications
Object-level recombination of commodity applications
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Designing better fitness functions for automated program repair
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Coevolutionary automated software correction
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Human-competitive results produced by genetic programming
Genetic Programming and Evolvable Machines
Automated program repair through the evolution of assembly code
Proceedings of the IEEE/ACM international conference on Automated software engineering
Proceedings of the FSE/SDP workshop on Future of software engineering research
The case for software evolution
Proceedings of the FSE/SDP workshop on Future of software engineering research
Automatically generating patch in binary programs using attribute-based taint analysis
ICICS'10 Proceedings of the 12th international conference on Information and communications security
Evolutionary repair of faulty software
Applied Soft Computing
Have your spaghetti and eat it too: evolutionary algorithmics and post-evolutionary analysis
Genetic Programming and Evolvable Machines
Selecting peers for execution comparison
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Evolving patches for software repair
Proceedings of the 13th annual conference on Genetic and evolutionary computation
Searching for invariants using genetic programming and mutation testing
Proceedings of the 13th annual conference on Genetic and evolutionary computation
Exploiting decomposability using recombination in genetic algorithms: an exploratory discussion
SSBSE'11 Proceedings of the Third international conference on Search based software engineering
Automated error localization and correction for imperative programs
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
Representations and operators for improving evolutionary software repair
Proceedings of the 14th annual conference on Genetic and evolutionary computation
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
A comparison of grammatical genetic programming grammars for controlling femtocell network coverage
Genetic Programming and Evolvable Machines
Automated repair of binary and assembly programs for cooperating embedded devices
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Automated feedback generation for introductory programming assignments
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
A behavior-based analysis of modal problems
Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
Current challenges in automatic software repair
Software Quality Control
Cloud engineering is Search Based Software Engineering too
Journal of Systems and Software
Repair with on-the-fly program analysis
HVC'12 Proceedings of the 8th international conference on Hardware and Software: verification and testing
Hi-index | 0.02 |
Genetic programming is combined with program analysis methods to repair bugs in off-the-shelf legacy C programs. Fitness is defined using negative test cases that exercise the bug to be repaired and positive test cases that encode program requirements. Once a successful repair is discovered, structural differencing algorithms and delta debugging methods are used to minimize its size. Several modifications to the GP technique contribute to its success: (1) genetic operations are localized to the nodes along the execution path of the negative test case; (2) high-level statements are represented as single nodes in the program tree; (3) genetic operators use existing code in other parts of the program, so new code does not need to be invented. The paper describes the method, reviews earlier experiments that repaired 11 bugs in over 60,000 lines of code, reports results on new bug repairs, and describes experiments that analyze the performance and efficacy of the evolutionary components of the algorithm.