Programmers use slices when debugging
Communications of the ACM
Finding bugs with a constraint solver
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Modular verification of code with SAT
Proceedings of the 2006 international symposium on Software testing and analysis
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Proceedings of the 5th international conference on Generative programming and component engineering
Juzi: a tool for repairing complex data structures
Proceedings of the 30th international conference on Software engineering
Semi-automatic fault localization
Semi-automatic fault localization
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
The Sketching Approach to Program Synthesis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A Case for Automated Debugging Using Data Structure Repair
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Kodkod: a relational model finder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Automated fixing of programs with contracts
Proceedings of the 19th international symposium on Software testing and analysis
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Understanding myths and realities of test-suite evolution
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
SemFix: program repair via semantic analysis
Proceedings of the 2013 International Conference on Software Engineering
Current challenges in automatic software repair
Software Quality Control
Hi-index | 0.00 |
Removing bugs in programs - even when location of faulty statements is known - is tedious and error-prone, particularly because of the increased likelihood of introducing new bugs as a result of fixing known bugs. We present an automated approach for generating likely bug fixes using behavioral specifications. Our key insight is to replace a faulty statement that has deterministic behavior with one that has nondeterministic behavior, and to use the specification constraints to prune the ensuing nondeterminism and repair the faulty statement. As an enabling technology, we use the SAT-based Alloy tool-set to describe specification constraints as well as for solving them. Initial experiments show the effectiveness of our approach in repairing programs that manipulate structurally complex data. We believe specification-based automated debugging using SAT holds much promise.