Search‐based software test data generation for string data using program‐specific search operators

This paper presents a novel approach to automatic software test data generation, where the test data is intended to cover program branches which depend on string predicates such as string equality, string ordering and regular expression matching. A search‐based approach is assumed and some potential search operators and corresponding evaluation functions are assembled. Their performance is assessed empirically by using them to generate test data for a number of test programs. A novel approach of using search operators based on programming language string operators and parameterized by string literals from the program under test is introduced. These operators are also assessed empirically in generating test data for the test programs and are shown to provide a significant increase in performance. Copyright © 2006 John Wiley & Sons, Ltd.

[1]  L. Darrell Whitley,et al.  The GENITOR Algorithm and Selection Pressure: Why Rank-Based Allocation of Reproductive Trials is Best , 1989, ICGA.

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

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

[4]  Leonardo Bottaci,et al.  Predicate Expression Cost Functions to Guide Evolutionary Search for Test Data , 2003, GECCO.

[5]  David Stutz,et al.  Shared source CLI essentials , 2003 .

[6]  Hans-Paul Schwefel,et al.  Evolution and optimum seeking , 1995, Sixth-generation computer technology series.

[7]  E. Myers,et al.  Approximate matching of regular expressions , 1989 .

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

[9]  Gonzalo Navarro,et al.  A guided tour to approximate string matching , 2001, CSUR.

[10]  P. D. Coward,et al.  Symbolic execution and testing , 1990 .

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

[12]  Phil McMinn,et al.  Search‐based software test data generation: a survey , 2004, Softw. Test. Verification Reliab..

[13]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

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

[15]  Mark Harman,et al.  Improving Evolutionary Testing By Flag Removal , 2002, GECCO.

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

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

[18]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[19]  Michael R. Lyu,et al.  Character string predicate based automatic software test data generation , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[20]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.

[21]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[22]  Lawrence. Davis,et al.  Handbook Of Genetic Algorithms , 1990 .