Symbolic execution and program testing
Communications of the ACM
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Combinatorial sketching for finite programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
A System to Generate Test Data and Symbolically Execute Programs
IEEE Transactions on Software Engineering
Fixing Design Errors with Counterexamples and Resynthesis
ASP-DAC '07 Proceedings of the 2007 Asia and South Pacific Design Automation Conference
On the automation of fixing software bugs
Companion of the 30th international conference on Software engineering
A genetic programming approach to automated software repair
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Heuristics for Scalable Dynamic Test Generation
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
The Sketching Approach to Program Synthesis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Generating Fixes from Object Behavior Anomalies
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Using Mutation to Automatically Suggest Fixes for Faulty Programs
ICST '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation
Automated fixing of programs with contracts
Proceedings of the 19th international symposium on Software testing and analysis
Journal of Computer and System Sciences
GenProg: A Generic Method for Automatic Software Repair
IEEE Transactions on Software Engineering
Repair of boolean programs with an application to c
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Automated error localization and correction for imperative programs
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
Hi-index | 0.00 |
This paper presents a novel automatic repair approach for incorrect programs. It applies formal methods and analyzes program behavior only on demand. We argue that this is beneficial, especially if exhaustive program analysis is infeasible. Our approach computes repair candidates and refines them based on counterexamples. It can be used with various verification techniques and specification formats to check a candidate's correctness. This includes test suites, model checkers verifying assertions, or even the user checking candidates manually, in which case no explicit specification is needed at all. We use concolic execution to analyze programs and SMT-solving to compute repair candidates. We implemented our approach in the open-source debugging environment FoREnSiC and present first experimental results.