In software testing, it is often desirable to find test inputs that exercise specific program features. To find these inputs by hand is extremely time-consuming, especially when the software is complex. Therefore, many attempts have been made to automate the process. Random test data generation consists of generating test inputs at random, in the hope that they will exercise the desired software features. Often, the desired inputs must satisfy complex constraints, and this makes a random approach seem unlikely to succeed. In contrast,combinatorial optimization techniques, such as those using genetic algorithms, are meant to solve difficult problems involving the simultaneous satisfaction of many constraints. In this paper,we discuss experiments with test generation problems that are harder than the ones discussed in earlier literature — we use larger programs and more complex test adequacy criteria. We find a widening gap between a technique based on genetic algorithms and thos...
Christoph C. Michael, Gary McGraw, Michael Schatz,