Using Genetic Algorithms to Aid Test-Data Generation for Data-Flow Coverage

This paper presents an automatic test-data generation technique that uses a genetic algorithm (GA) to generate test data that satisfy data-flow coverage criteria. The technique applies the concepts of dominance relations between nodes to define a new multi-objective fitness function to evaluate the generated test data. The paper also presents the results of a set of empirical studies conducted on a set of programs that evaluate the effectiveness of our technique compared to the random-testing technique. The studies show the effective of our technique in achieving coverage of the test requirements, and in reducing the size of test suites, the search time, and the number of iterations required to satisfy the data-flow criteria.

[1]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[2]  William E. Howden,et al.  Symbolic Testing and the DISSECT Symbolic Evaluation System , 1977, IEEE Transactions on Software Engineering.

[3]  Harlan D. Mills,et al.  Cleanroom Software Engineering , 1987, IEEE Software.

[4]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[5]  Mark Harman,et al.  Seminal software engineering using metaheuristic innovative algorithms , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[6]  Leonardo Bottaci,et al.  A Genetic Algorithm Fitness Function for Mutation Testing , 2001 .

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

[8]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1996, Springer Berlin Heidelberg.

[9]  Timothy E. Lindquist,et al.  Test-case generation with IOGen , 1988, IEEE Software.

[10]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

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

[12]  Martin R. Woodward,et al.  An integrated system for program testing using weak mutation and data flow analysis , 1985, ICSE '85.

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

[14]  Jeffrey M. Voas,et al.  Predicting where faults can hide from testing , 1991, IEEE Software.

[15]  Bogdan Korel,et al.  The chaining approach for software test data generation , 1996, TSEM.

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

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

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

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