Abstract
Developing efficient and automatic testing techniques is one of the major challenges facing the software validation community. Recent work by Denise and al. (in MBT’08 proceedings) shows how to draw traces uniformly at random in large systems modeled by finite automata for testing purposes. Since finite automata are strong abstractions of systems, many generated test cases following this approach may be un-concretizable, i.e., do not correspond to any concrete execution of the system under test. In this paper, we propose to tackle this problem by extending the approach to pushdown systems that can encode either a stack data structure or the call stack. The method is based on context-free grammar algorithms, and relies on combinatorial techniques to guarantee the uniformity of generated traces.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Beizer, B.: Black-Box Testing: Techniques for Functional Testing of Software and Systems. John Wiley & Sons, New York (1995)
Offutt, A., Xiong, Y., Liu, S.: Criteria for Generating Specification-Based Tests. In: 5th International Conference on Engineering of Complex Computer Systems (ICECCS 1999), p. 119. IEEE Computer Society, Las Vegas (1999)
Groce, A., Joshi, R.: Random testing and model checking: building a common framework for nondeterministic exploration. In: WODA 2008, pp. 22–28. ACM, New York (2008)
Lee, D., Yannakakis, M.: Principles and methods of testing finite state machines - a survey. Proceedings of the IEEE, 1090–1123 (1996)
Campbell, C., Grieskamp, W., Nachmanson, L., Schulte, W., Tillmann, N., Veanes, M.: Testing concurrent object-oriented systems with spec explorer. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 542–547. Springer, Heidelberg (2005)
Jard, C., Jéron, T.: TGV: theory, principles and algorithms, a tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems. Software Tools for Technology Transfer (STTT) 6 (2004)
Gotlieb, A., Botella, B., Rueher, M.: Automatic test data generation using constraint solving techniques. In: ISSTA, pp. 53–62 (1998)
Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, Cambridge (2008)
Purdom, P.: A sentence generator for testing parsers. BIT 12, 366–375 (1972)
Daniel, B., Dig, D., Garcia, K., Marinov, D.: Automated testing of refactoring engines. In: ESEC/FSE 2007: Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM Press, New York (2007)
Coppit, D., Lian, J.: Yagg: an easy-to-use generator for structured test inputs. In: Redmiles, D.F., Ellman, T., Zisman, A. (eds.) ASE, pp. 356–359. ACM, New York (2005)
Lämmel, R., Schulte, W.: Controllable combinatorial coverage in grammar-based testing. In: Uyar, M., Duale, A., Fecko, M. (eds.) TestCom 2006. LNCS, vol. 3964, pp. 19–38. Springer, Heidelberg (2006)
Majumdar, R., Xu, R.G.: Directed test generation using symbolic grammars. In: Stirewalt, R.E.K., Egyed, A. (eds.) ASE, pp. 134–143. ACM, New York (2007)
Godefroid, P., Kiezun, A., Levin, M.: Grammar-based whitebox fuzzing. In: Gupta, R., Amarasinghe, S.P. (eds.) PLDI, pp. 206–215. ACM, New York (2008)
Xu, Z., Zheng, L., Chen, H.: A toolkit for generating sentences from context-free grammars. In: Software Engineering and Formal Methods, pp. 118–122. IEEE, Los Alamitos (2010)
Lämmel, R.: Grammar testing. In: Hußmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 201–216. Springer, Heidelberg (2001)
Zheng, L., Wu, D.: A sentence generation algorithm for testing grammars. In: Ahamed, S., Bertino, E., Chang, C., Getov, V., Liu, L., Ming, H., Subramanyan, R. (eds.) COMPSAC, vol. (1), pp. 130–135. IEEE Computer Society, Los Alamitos (2009)
Alves, T., Visser, J.: A case study in grammar engineering. In: Gašević, D., Lämmel, R., Van Wyk, E. (eds.) SLE 2008. LNCS, vol. 5452, pp. 285–304. Springer, Heidelberg (2009)
Duran, J., Ntafos, S.: A report on random testing. In: ICSE 1981: Proceedings of the 5th International Conference on Software Engineering, pp. 179–183. IEEE Press, Piscataway (1981)
Hamlet, R.: Random testing. In: Encyclopedia of Software Engineering, pp. 970–978. Wiley, Chichester (1994)
Godefroid, P., Klarlund, N., Sen, K.: DART: directed automated random testing. In: PLDI 2005: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 213–223. ACM, New York (2005)
Oriat, C.: Jartege: A tool for random generation of unit tests for java classes. In: Reussner, R., Mayer, J., Stafford, J.A., Overhage, S., Becker, S., Schroeder, P.J. (eds.) QoSA 2005 and SOQUA 2005. LNCS, vol. 3712, pp. 242–256. Springer, Heidelberg (2005)
McKenzie, B.: Generating string at random from a context-free grammar. Technical Report TR-COSC 10/97, Univ ersity of Canterbury (1997)
Hickey, T.J., Cohen, J.: Uniform random generation of strings in a context-free language. SIAM J. Comput. 12, 645–655 (1983)
Maurer, P.: The design and implementation of a grammar-based data generator. Softw. Pract. Exper. 22, 223–244 (1992)
Heam, P.C., Nicaud, C.: Seed: an easy to use random generator of recursive data structures for testing. In: ICST 2011. IEEE, Los Alamitos (to appear, 2011)
Dadeau, F., Levrey, J., Héam, P.C.: On the use of uniform random generation of automata for testing. Electr. Notes Theor. Comput. Sci. 253, 37–51 (2009)
Sipser, M.: 2. In: Introduction to the Theory of Computation. PWS (1996)
Flajolet, P., Sedgewick, R.: Analytic Combinatorics. Cambridge University Press, Cambridge (2008)
Ponty, Y., Termier, M., Denise, A.: Genrgens: Software for generating random genomic sequences and structures. Bioinformatics 22, 1534–1535 (2006)
Denise, A., Zimmermann, P.: Uniform random generation of decomposable structures using floating-point arithmetic. Theor. Comput. Sci. 218, 233–248 (1999)
Goldwurm, M.: Random generation of words in an algebraic language in linear binary space. Inf. Process. Lett. 54, 229–233 (1995)
Belli, F., Beyazit, M., Takagi, T., Furukawa, Z.: Testing of ”go-back” functions based on pushdown automata. In: ICST 2011. IEEE, Los Alamitos (to appear, 2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Héam, PC., Masson, C. (2011). A Random Testing Approach Using Pushdown Automata. In: Gogolla, M., Wolff, B. (eds) Tests and Proofs. TAP 2011. Lecture Notes in Computer Science, vol 6706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21768-5_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-21768-5_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21767-8
Online ISBN: 978-3-642-21768-5
eBook Packages: Computer ScienceComputer Science (R0)