文档介绍:Applied puting 5 (2005) 315–331
ate/asoc
Evolutionary software engineering, a review
Timo Manterea,*, Jarmo T. Alanderb,1
aDepartment of Information Technology, Lappeenranta University of Technology, . Box 20, FIN-53851 Lappeenranta, Finland
bDepartment of Electrical Engineering and Industrial Management, University of Vaasa, . Box 700, FIN-65101 Vaasa, Finland
Accepted 11 March 2004
Abstract
In this paper, we review the work putational evolutionary methods in software engineering, especially in
software testing. Testing is both technically and economically vital for high quality software production. About half of the
expenses in software production has been estimated to be due to testing. Much of the testing is done manually or using other
labor-intensive methods. To develop efficient, cost effective, and automatic means and tools for software testing is thus highly
tempting for software industry. Searching software errors by using evolution based methods like ic algorithms is one
attempt towards these goals.
Software testing is a field, where the gap between the means and needs is exceptionally wide. Despite the great advances in
computing during the last 30 years the software development and the testing process in panies is still very immature,
meanwhile plexity and criticality of the software has increased tremendously.
When testing software, by using any optimization method as a test data generator, we are optimizing the given input
according to a selected software metric encoded as a fitness function. The ess of ic algorithms in optimization is based
on the so called building block hypothesis. Basically, the ic algorithms do not find any solitary bug at any higher probability
than pure random search. However, evolutionary algorithms adapt to the given problem, in practice this means that a ic
algorithm-based tester generates several binations that reveal minor bugs and based on this information constructs
sequences that will re