On-the-fly generation of k-path tests for C functions

We propose a novel method, called PathCrawler, for the automatic generation of structural tests satisfying the all-paths criterion or its k-path variant. The source code is instrumented so as to recover the symbolic execution path each time that the program under test is executed. This code is first executed using inputs arbitrarily selected from the input domain. The resulting symbolic path is transformed into a path predicate by projection of the conditions onto the input variables. The next test is obtained by using constraint logic programming to find new input values outside the domain of the path which is already covered. The instrumented code is then executed on this test and so on, until all feasible paths have been covered. Our method combines static and dynamic analysis in a way that avoids the disadvantages of both. It is currently being implemented for the C language.

[1]  Gary McGraw,et al.  Automated software test data generation for complex programs , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[2]  Alain Denise,et al.  A new way of automating statistical testing methods , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[3]  Yahia Lebbah,et al.  Solving Constraints over Floating-Point Numbers , 2001, CP.

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

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

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

[7]  J. Paul Myers,et al.  The Path Prefix Software Testing Strategy , 1987, IEEE Transactions on Software Engineering.

[8]  Bernard Botella,et al.  A CLP Framework for Computing Structural Test Data , 2000, Computational Logic.

[9]  Bruno Marre,et al.  Test sequences generation from LUSTRE descriptions: GATEL , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.