A novel co-evolutionary approach to automatic software bug fixing

Andrea ARCURI, Xin YAO

Research output: Book Chapters | Papers in Conference ProceedingsConference paper (refereed)Researchpeer-review

199 Citations (Scopus)


Many tasks in Software Engineering are very expensive, and that has led the investigation to how to automate them. In particular, Software Testing can take up to half of the resources of the development of new software. Although there has been a lot of work on automating the testing phase, fixing a bug after its presence has been discovered is still a duty of the programmers. In this paper we propose an evolutionary approach to automate the task of fixing bugs. This novel evolutionary approach is based on Co-evolution, in which programs and test cases co-evolve, influencing each other with the aim of fixing the bugs of the programs. This competitive co-evolution is similar to what happens in nature for predators and prey. The user needs only to provide a buggy program and a formal specification of it. No other information is required. Hence, the approach may work for any implementable software. We show some preliminary experiments in which bugs in an implementation of a sorting algorithm are automatically fixed. © 2008 IEEE.
Original languageEnglish
Title of host publication2008 IEEE Congress on Evolutionary Computation, CEC 2008
Number of pages7
Publication statusPublished - Jun 2008
Externally publishedYes


Dive into the research topics of 'A novel co-evolutionary approach to automatic software bug fixing'. Together they form a unique fingerprint.

Cite this