A Technique for Generating Test Data Using Genetic Algorithm

Automatic test data generation for path coverage is an undecidable problem and genetic algorithm (GA) has been used as one good solution. This paper presents a method for optimizing GA efficiency by identifying the most critical path clusters in a program under test. We do this by using the static program analysis to find all the paths having the path conditions with low probability in generating coverage data, then basing on these path conditions to adjust the procedure of generating new populations in GA. The proposed approach is also applied some program under tests. Experimental results show that improved GA which can generate suitable test data has higher path coverage than the traditional GA.

[1]  Brian W. Kernighan,et al.  Elements of Programming Style , 1974 .

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

[3]  James C. King A new approach to program testing , 1975 .

[4]  Bogdan Korel,et al.  Dynamic method for software test data generation , 1992, Softw. Test. Verification Reliab..

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

[6]  Bryan F. Jones,et al.  Automatic structural testing using genetic algorithms , 1996, Softw. Eng. J..

[7]  Irman Hermadi,et al.  GA-based multiple paths test data generator , 2008, Comput. Oper. Res..

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

[9]  Jin-Cherng Lin,et al.  Using genetic algorithms for test case generation in path testing , 2000, Proceedings of the Ninth Asian Test Symposium.

[10]  Yong Chen,et al.  Automatic Path-Oriented Test Data Generation Using a Multi-population Genetic Algorithm , 2008, 2008 Fourth International Conference on Natural Computation.

[11]  Irman Hermadi,et al.  Dynamic stopping criteria for search-based test data generation for path testing , 2014, Inf. Softw. Technol..

[12]  Marc Roper,et al.  Genetic Algorithms and the Automatic Generation of Test Data , 2007 .

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

[14]  Tai-hoon Kim,et al.  Application of Genetic Algorithm in Software Testing , 2009 .

[15]  James C. King,et al.  A new approach to program testing , 1974, Programming Methodology.

[16]  Elaine J. Weyuker,et al.  The applicability of program schema results to programs , 1979, International Journal of Computer & Information Sciences.

[17]  Bogdan Korel,et al.  Automated test data generation for programs with procedures , 1996, ISSTA '96.

[18]  Bogdan Korel,et al.  Automated Software Test Data Generation , 1990, IEEE Trans. Software Eng..

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

[20]  Antonia Bertolino,et al.  Software Testing Research: Achievements, Challenges, Dreams , 2007, Future of Software Engineering (FOSE '07).

[21]  Irman Hermadi,et al.  Genetic algorithm based test data generator , 2003, The 2003 Congress on Evolutionary Computation, 2003. CEC '03..

[22]  Joachim Wegener,et al.  Suitability of evolutionary algorithms for evolutionary testing , 2002, Proceedings 26th Annual International Computer Software and Applications.

[23]  Tsong Yueh Chen,et al.  Semi-proving: an integrated method based on global symbolic evaluation and metamorphic testing , 2002, ISSTA '02.

[24]  Mario Jino,et al.  Automatic Test Data Generation for Program Paths Using Genetic Algorithms , 2002, Int. J. Softw. Eng. Knowl. Eng..

[25]  Yves Deville,et al.  Consistency techniques for interprocedural test data generation , 2003, ESEC/FSE-11.

[26]  Amiram Yehudai,et al.  Evolutionary Testing: A Case Study , 2006, Haifa Verification Conference.