Title :
A novel co-evolutionary approach to automatic software bug fixing
Author :
Arcuri, Andrea ; Yao, Xin
Author_Institution :
Centre of Excellence for Res. in Comput. Intell. & Applic., Univ. of Birmingham, Birmingham
Abstract :
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.
Keywords :
formal specification; program debugging; program testing; sorting; automatic software bug fixing; buggy program; coevolutionary approach; formal specification; software engineering; software testing; sorting algorithm; Automatic programming; Automation; Computer bugs; Costs; Formal specifications; Genetic programming; Programming profession; Software debugging; Software performance; Software testing;
Conference_Titel :
Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence). IEEE Congress on
Conference_Location :
Hong Kong
Print_ISBN :
978-1-4244-1822-0
Electronic_ISBN :
978-1-4244-1823-7
DOI :
10.1109/CEC.2008.4630793