Where academic tradition
meets the exciting future

Automatic Software Testing by Genetic Algorithms

Timo Mantere, Automatic Software Testing by Genetic Algorithms. 2003.

Abstract:

This study examines automatic software testing by using genetic algorithm optimization for test data generation. The tested software set consists of some small subroutines, toy problems, image processing filters, measurement software, and a large time-critical embedded software. The goal was to verify software quality by finding extreme situations, bottlenecks or faulty behavior. Genetic algorithms are an optimization method that adapts to the given problem, thus they are also able to adapt to the software to be tested, and after finding some slightly suspicious input parameter combinations, start to evolve more dangerous parameter combinations.

Testing is both technically and economically an important part of high quality software production. It has been estimated that testing accounts for half of the expenses in software production. Much of the testing is done manually or using other labor-intensive methods. It is thus vital for the software industry to develop efficient, cost effective, and automatic means and tools for software testing. Searching for software errors with genetic algorithms might be one of the many steps needed towards this goal.

This study proposes that genetic algorithms can be used in automatic software testing to generate test data for system and module testing. In this study the genetic algorithms based test data generation was applied to different kinds of software systems in order to verify the proposed approach. Based on these experiments, the genetic algorithm finds suspicious parameter combinations more efficiently, compared to the random testing, and further more it reveals more serious error situations containing these parameters. In system verification genetic algorithms can be used to reveal input data characteristics that are problematic for the object software. The method can also be applied to search for more real software error tolerances than the classic error limit estimation. Co-evolutionary genetic algorithms can be applied to develop software parameters simultaneously with the testing.

BibTeX entry:

@PHDTHESIS{phdMantere03a,
  title = {Automatic Software Testing by Genetic Algorithms},
  author = {Mantere, Timo},
  year = {2003},
  keywords = {Genetic algorithms, optimization, reliability, software testing, test data generation},
  ISBN = {952-476-003-7},
}

Belongs to TUCS Research Unit(s): Algorithmics and Computational Intelligence Group (ACI), Turku BioNLP Group, Software Construction Laboratorium

Edit publication