Automatic Software Structural Testing by Using Evolutionary Algorithms for Test Data Generations

Summary Software testing is an important activity of the software development process. It is a critical element of software quality assurance. Structural-oriented test methods which define test cases on the basis of internal program structure are widely used. Evolutionary testing is a promising approach for automation of structural test case design, which search test data that fulfill given structural test criteria by manner of evolutionary computation. In this article we investigate the performance of proposed GA with different parameters combinations used to automate the test data generation for path coverage. The investigation involves crossover strategies and methods of selecting of parents for reproduction and mutation rates. The results of the study showed that double crossover was more successful in path coverage. The study results Also that, selecting parent for reproduction according to their fitness is more efficient than random selection. And that mutation rate is better adjusted with program at hand. Also, we studied the generation to generation progress in the proposed GA while searching for good test data. The work is compared with random testing. And we concluded that the proposed GA improves the search from one generation to the next, and performs better than random testing, where the search was absolutely random and does not show improvement through the generations. Another observation is that random testing generates less successful test cases than the proposed GA.

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

[2]  E. Martins,et al.  Automatic test data generation for path testing using a new stochastic algorithm , 2022 .

[3]  Moheb R. Girgis,et al.  Automatic Test Data Generation for Data Flow Testing Using a Genetic Algorithm , 2005, J. Univers. Comput. Sci..

[4]  Goldberg,et al.  Genetic algorithms , 1993, Robust Control Systems with Genetic Algorithms.

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

[6]  James A. Whittaker,et al.  What is software testing? And why is it so hard? , 2000 .

[7]  Joachim Wegener,et al.  Automatic Test Data Generation For Structural Testing Of Embedded Software Systems By Evolutionary Testing , 2002, GECCO.

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

[9]  Roy P. Pargas,et al.  Test-Data Generation Using Genetic Algorithms , 1999, Softw. Test. Verification Reliab..

[10]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[11]  Donald J. Berndt,et al.  Breeding software test cases with genetic algorithms , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

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

[13]  Ajay Kumar Munugala Automatic Software Test Data Generation , 2002 .

[14]  Joachim Wegener,et al.  Evolutionary Testing of Embedded Systems , 2003 .

[15]  Gary McGraw,et al.  Genetic algorithms for dynamic test data generation , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[16]  Nashat Mansour,et al.  Data Generation for Path Testing , 2004, Software Quality Journal.

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

[18]  Sigrid Eldh Software Testing Techniques , 2007 .