Breeding software test cases with genetic algorithms

Faulty software is usually costly and possibly life threatening as software becomes an increasingly critical component in a wide variety of systems. Thorough software testing by both developers and dedicated quality assurance staff is one way to uncover flaws. Automated test generation techniques can be used to augment the process, free of the cognitive biases that have been found in human testers. This paper focuses on breeding software test cases using genetic algorithms as part of a software testing cycle. An evolving fitness function that relies on a fossil record of organisms results in interesting search behaviours, based on the concepts of novelty, proximity, and severity. A case study that uses a simple, but widely studied program is used to illustrate the approach. Several visualization techniques are also introduced to analyze particular fossil records, as well as the overall search process.

[1]  W. Daniel Hillis,et al.  Co-evolving parasites improve simulated evolution as an optimization procedure , 1990 .

[2]  Jin-Cherng Lin,et al.  Automatic test data generation for path testing using GAs , 2001, Inf. Sci..

[3]  Henk Sol,et al.  Proceedings of the 54th Hawaii International Conference on System Sciences , 1997, HICSS 2015.

[4]  Ken Borgelt Software Test Data Generation from a Genetic Algorithm , 1999 .

[5]  Dr. David W. Pearson,et al.  Artificial Neural Nets and Genetic Algorithms , 1995, Springer Vienna.

[6]  Webb Stacy,et al.  Cognitive bias in software engineering , 1995, CACM.

[7]  James Miller,et al.  Genetic Algorithms and the Automatic Generation ofTest , 1995 .

[8]  Yoichi Hayashi,et al.  Neural expert system using fuzzy teaching input and its application to medical diagnosis , 1994 .

[9]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[10]  Joachim Wegener,et al.  Evolutionary test environment for automatic structural testing , 2001, Inf. Softw. Technol..

[11]  Rudolf F. Albrecht,et al.  Artificial Neural Nets and Genetic Algorithms , 1995, Springer Vienna.

[12]  Roy P. Pargas,et al.  Test‐data generation using genetic algorithms , 1999, Softw. Test. Verification Reliab..

[13]  Timo Mantere,et al.  Genetic Algorithm Based Software Testing , 1997, ICANNGA.

[14]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[15]  Harmen-Hinrich Sthamer,et al.  The automatic generation of software test data using genetic algorithms , 1995 .

[16]  Gary McGraw,et al.  Generating Software Test Data by Evolution , 2001, IEEE Trans. Software Eng..

[17]  D. J. Berndt,et al.  High Volume Software Testing using Genetic Algorithms , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[18]  D. E. Goldberg,et al.  Genetic Algorithms in Search , 1989 .

[19]  Dorothea Heiss-Czedik,et al.  An Introduction to Genetic Algorithms. , 1997, Artificial Life.

[20]  John A. Clark,et al.  Automated program flaw finding using simulated annealing , 1998, ISSTA '98.

[21]  John E. Hunt,et al.  Testing control software using a genetic algorithm , 1995 .