Software unit test coverage and adequacy
ACM Computing Surveys (CSUR)
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
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Software Error Classification using Purify
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
CCured: type-safe retrofitting of legacy software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Empirical evaluation of the tarantula automatic fault-localization technique
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Countering Network Worms Through Automatic Patch Generation
IEEE Security and Privacy
StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks
SSYM'98 Proceedings of the 7th conference on USENIX Security Symposium - Volume 7
Using FindBugs on production software
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
On the automation of fixing software bugs
Companion of the 30th international conference on Software engineering
Exterminator: Automatically correcting memory errors with high probability
Communications of the ACM - Surviving the data deluge
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A genetic programming approach to automated software repair
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
CTL model update for system modifications
Journal of Artificial Intelligence Research
A few billion lines of code later: using static analysis to find bugs in the real world
Communications of the ACM
Insights on fault interference for programs with multiple bugs
ISSRE'09 Proceedings of the 20th IEEE international conference on software reliability engineering
Practical fault localization for dynamic web applications
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Coevolutionary automated software correction
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Introduction to genetic programming tutorial: from the basics to human-competitive results
Proceedings of the 12th annual conference companion on Genetic and evolutionary computation
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
IEEE Transactions on Evolutionary Computation
Representations and operators for improving evolutionary software repair
Proceedings of the 14th annual conference on Genetic and evolutionary computation
Multi-objective coevolutionary automated software correction
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
Current challenges in automatic software repair
Software Quality Control
Hi-index | 0.01 |
Defects are a major concern in software systems. Unsurprisingly, there are many tools and techniques to facilitate the removal of defects through their detection and localisation. However, there are few tools that attempt to repair defects. To date, evolutionary tools for software repair have evolved changes directly in the program code being repaired. In this work we describe an implementation: pyEDB, that encodes changes as a series of code modifications or patches. These modifications are evolved as individuals. We show pyEDB to be effective in repairing some small errors, including variable naming errors in Python programs. We also demonstrate that evolving patches rather than whole programs simplifies the removal of spurious errors.