Abstract
We present the PathCrawler prototype tool for the automatic generation of test-cases satisfying the rigorous all-paths criterion, with a user-defined limit on the number of loop iterations in the covered paths. The prototype treats C code and we illustrate the test-case generation process on a representative example of a C function containing data-structures of variable dimensions, loops with variable numbers of iterations and many infeasible paths. PathCrawler is based on a novel combination of code instrumentation and constraint solving which makes it both efficient and open to extension. It suffers neither from the approximations and complexity of static analysis, nor from the number of executions demanded by the use of heuristic algorithms in function minimisation and the possibility that they fail to find a solution. We believe that it demonstrates the feasibility of rigorous and systematic testing of sequential programs coded in imperative languages.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Gallagher, M.J., Narasimhan, V.L.: ADTEST: A Test Data Generation Suite for Ada Software Systems. IEEE Transactions on Software Engineering 23(8) (August 1997)
Gotlieb, A., Botella, B., Reuher, M.: A CLP Framework for Computing Structural Test Data. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 399–413. Springer, Heidelberg (2000)
Gouraud, S.-D., Denise, A., Gaudel, M.-C., Marre, B.: A New Way of Automating Statistical Testing Methods. In: ASE 2001, Coronado Island, California (November 2001)
Jeng, B., Weyuker, E.J.: A Simplified Domain-Testing Strategy. ACM Transactions on Software Engineering and Methodology 3(3), 254–270 (1994)
Korel, B.: Automated Software Test Data Generation. IEEE Transactions on Software Engineering 16(8) (August 1990)
Leavens, G.T., Cheon, Y., Clifton, C., Ruby, C., Cok, D.R.: How the Design of JML Accommodates Both Runtime Assertion Checking and Formal Verification. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2002. LNCS, vol. 2852, pp. 262–284. Springer, Heidelberg (2003)
Marre, B., Arnould, A.: Test sequences generation from Lustre descriptions: GATeL. In: ASE 2000, Grenoble, pp. 229–237 (September 2000)
Marre, B., Mouy, P., Williams, N.: On-the-Fly Generation of K-Path Tests for C Functions. In: 19th IEEE Intnl. Conf. on Automated Software Engineering (ASE 2004), Linz, Austria (September 2004)
Michael, C., McGraw, G.: Automated Software Test Data Generation for Complex Programs. In: ASE, Honolulu (October 1998)
Michel, C., Rueher, M., Lebbah, Y.: Solving Constraints over Floating-Point Numbers. In: Walsh, T. (ed.) CP 2001. LNCS, vol. 2239, pp. 524–538. Springer, Heidelberg (2001)
Mouy, P.: Vers une méthode de génération de tests boîte grise “à la volée”. In: Approches Formelles dans l’Assistance au Développement de Logiciels (AFADL 2004), Besançon, France (June 2004)
Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: Proc. Conference on Compiler Construction (2002)
Obayashi, M., Kubota, H., McCarron, S.P., Mallet, L.: The Assertion Based Testing Tool for OOP: ADL2. In: Proc. ICSE 1998, Kyoto, Japan (1998)
Prather, R.E., Myers, J.P.: The Path Prefix Testing Strategy. IEEE Transactions on Software Engineering 13(7) (July 1987)
Sy, N.T., Deville, Y.: Consistency Techniques for Interprocedural Test Data Generation. In: ESEC/FSE 2003, Helsinki, Finland, September 1-5 (2003)
Thevenod-Fosse, P., Waeselynck, H.: Software statistical testing based on structural and functional criteria. In: 11th International Software Quality Week, San Francisco (USA), May 26-29 (1998)
Wallace, M., Novello, S., Schimpf, J.: ECLiPSe: A Platform for Constraint Logic Programming. IC-Parc, Imperial College, London (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Williams, N., Marre, B., Mouy, P., Roger, M. (2005). PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis. In: Dal Cin, M., Kaâniche, M., Pataricza, A. (eds) Dependable Computing - EDCC 5. EDCC 2005. Lecture Notes in Computer Science, vol 3463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11408901_21
Download citation
DOI: https://doi.org/10.1007/11408901_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25723-3
Online ISBN: 978-3-540-32019-7
eBook Packages: Computer ScienceComputer Science (R0)