ATGen: automatic test data generation using constraint logic programming and symbolic execution †

The verification and validation of software through dynamic testing is an area of software engineering where progress towards automation has been slow. In particular the automatic design and generation of test data remains, by and large, a manual activity. This is despite the high promises that the symbolic execution technique engendered when it was first proposed as a method for automatic test data generation. This paper presents an automatic test data generator based on constraint logic programming and symbolic execution. After reviewing the symbolic execution technique, approaches for the resolution of the technical difficulties that have so far prevented symbolic execution from reaching its full potential in the area of automatic test data generation are presented. ATGen, an automatic test data generator, based on symbolic execution and that uses constraint logic programming, is then discussed. Copyright © 2001 John Wiley & Sons, Ltd.

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

[2]  Martyn A. Ould,et al.  Testing-a challenge to method and tool developers , 1991, Softw. Eng. J..

[3]  C. V. Ramamoorthy,et al.  On the Automated Generation of Program Test Data , 1976, IEEE Transactions on Software Engineering.

[4]  Ivan Bratko,et al.  Prolog Programming for Artificial Intelligence , 1986 .

[5]  Lori A. Clarke,et al.  TEAM: a support environment for testing, evaluation, and analysis , 1988, SDE 3.

[6]  Allen Goldberg,et al.  Applications of feasible path analysis to program testing , 1994, ISSTA '94.

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

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

[9]  A. Jefferson Offutt,et al.  The dynamic domain reduction procedure for test data generation , 1999, Softw. Pract. Exp..

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

[11]  Lori A. Clarke,et al.  Applications of symbolic evaluation , 1985, J. Syst. Softw..

[12]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[13]  V. Lakshmi Narasimhan,et al.  ADTEST: A Test Data Generation Suite for Ada Software Systems , 1997, IEEE Trans. Software Eng..

[14]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[15]  Eugene C. Freuder The Many Paths to Satisfaction , 1995, Constraint Processing, Selected Papers.

[16]  George B. Dantzig,et al.  Linear programming and extensions , 1965 .

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

[18]  P. David Coward Symbolic execution systems-a review , 1988, Softw. Eng. J..

[19]  Jacques Cohen,et al.  Constraint logic programming languages , 1990, CACM.

[20]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[21]  Richard G. Hamlet,et al.  Implementing prototype testing tools , 1995, Softw. Pract. Exp..

[22]  Keith E. Williamson,et al.  Test data generation and feasible path analysis , 1994, ISSTA '94.