Seed: An Easy-to-Use Random Generator of Recursive Data Structures for Testing

Random testing represents a simple and tractable way for software assessment. This paper presents the Seed tool that can be used for the uniform random generation of recursive data structures such as labelled trees and logical formulas. We show how Seed can be used in several testing contexts, from model based testing to performance testing. Generated data structures are defined by grammar-like rules, given in an XML format, multiplying Seed possible applications. Seed is based on combinatorial techniques, and can generate uniformly at random k structures of size n with an efficient time complexity. Finally, Seed is available as a free Java application and a great effort has been made to make it easy-to-use.

[1]  Haiming Chen,et al.  A Toolkit for Generating Sentences from Context-Free Grammars , 2010, 2010 8th IEEE International Conference on Software Engineering and Formal Methods.

[2]  Thierry Jéron,et al.  TGV : theory , principles and algorithms A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems , 2004 .

[3]  Ralf Lämmel,et al.  Controllable Combinatorial Coverage in Grammar-Based Testing , 2006, TestCom.

[4]  Philippe Flajolet,et al.  Analytic Combinatorics , 2009 .

[5]  Lixiao Zheng,et al.  A Sentence Generation Algorithm for Testing Grammars , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

[6]  Lydie du Bousquet,et al.  Filtering TOBIAS Combinatorial Test Suites , 2004, FASE.

[7]  Mikolaj Bojanczyk,et al.  Tree Languages Defined in First-Order Logic with One Quantifier Alternation , 2008, ICALP.

[8]  Koushik Sen DART: Directed Automated Random Testing , 2009, Haifa Verification Conference.

[9]  P. Purdom A sentence generator for testing parsers , 1972 .

[10]  Ralf Lämmel,et al.  Grammar Testing , 2001, FASE.

[11]  Koushik Sen,et al.  Effective random testing of concurrent programs , 2007, ASE.

[12]  Darko Marinov,et al.  Automated testing of refactoring engines , 2007, ESEC-FSE '07.

[13]  Bruce McKenzie Generating Strings at Random from a Context Free Grammar , 1997 .

[14]  Pascale Le Gall,et al.  Testing Data Types Implementations from Algebraic Specifications , 2008, Formal Methods and Testing.

[15]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.

[16]  Marc Aiguier,et al.  Test selection criteria for quantifier-free first-order specifications , 2007, FSEN'07.

[17]  Joost Visser,et al.  A Case Study in Grammar Engineering , 2008, SLE.

[18]  Jacques Cohen,et al.  Uniform Random Generation of Strings in a Context-Free Language , 1983, SIAM J. Comput..

[19]  Yann Ponty,et al.  GenRGenS: software for generating random genomic sequences and structures , 2006, Bioinform..

[20]  A. Nijenhuis Combinatorial algorithms , 1975 .

[21]  Fabio Somenzi,et al.  Efficient Büchi Automata from LTL Formulae , 2000, CAV.

[22]  Adam Kiezun,et al.  Grammar-based whitebox fuzzing , 2008, PLDI '08.

[23]  Marie-Claude Gaudel,et al.  Preface to the proceedings of the Second International Workshop on Random Testing (RT 2007), co-located with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007) , 2007, ASE 2007.

[24]  Philippe Flajolet,et al.  A Calculus for the Random Generation of Labelled Combinatorial Structures , 1994, Theor. Comput. Sci..

[25]  Guy Louchard,et al.  Boltzmann Samplers for the Random Generation of Combinatorial Structures , 2004, Combinatorics, Probability and Computing.

[26]  Michael D. Ernst,et al.  Feedback-Directed Random Test Generation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[27]  David Coppit,et al.  yagg: an easy-to-use generator for structured test inputs , 2005, ASE.

[28]  Peter M. Maurer,et al.  The design and implementation of a grammar‐based data generator , 1992, Softw. Pract. Exp..

[29]  J. Propp,et al.  Exact sampling with coupled Markov chains and applications to statistical mechanics , 1996 .

[30]  Alain Denise,et al.  Coverage-biased Random Exploration of Models , 2008, Electron. Notes Theor. Comput. Sci..

[31]  Frédéric Dadeau,et al.  Combining Scenario- and Model-Based Testing to Ensure POSIX Compliance , 2008, ABZ.

[32]  Rupak Majumdar,et al.  Directed test generation using symbolic grammars , 2007, ESEC-FSE companion '07.

[33]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[34]  Laure Petrucci,et al.  FAST: acceleration from theory to practice , 2008, International Journal on Software Tools for Technology Transfer.

[35]  Moshe Y. Vardi,et al.  Experimental Evaluation of Classical Automata Constructions , 2005, LPAR.

[36]  Alain Denise,et al.  CS: a MuPAD package for counting and randomly generating combinatorial structures , 1998 .

[37]  Marc Aiguier,et al.  Testing from Algebraic Specifications: Test Data Set Selection by Unfolding Axioms , 2005, FATES.

[38]  Paul Gastin,et al.  Fast LTL to Büchi Automata Translation , 2001, CAV.

[39]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[40]  Jan Tretmans,et al.  Testing Concurrent Systems: A Formal Approach , 1999, CONCUR.

[41]  Heikki Tauriainen,et al.  AUTOMATED TESTING OF BUCHI AUTOMATA TRANSLATORS FOR LINEAR TEMPORAL LOGIC , 2000 .