Temporal algebraic query of test sequences

Abstract Nowadays tools can generate test suites consisting of large number of test sequences. The used algorithms are typically random-based. Although more advanced variations may incorporate an advanced search algorithm to cover difficult scenarios, many decisions still have to be made randomly simply because no information is available to calculate the best decision. Because of this, many of the generated sequences may be redundant, while some others may be rare and hard to get. This paper presents a rich formalism that is based on a mix of algebraic relations and Linear Temporal Logic (LTL) to query test suites, and an efficient algorithm to execute such queries. Queries can be used as correctness specifications (oracles) to validate a test suite. They are however more general as they can be used to filter out test sequences with interesting properties, e.g. to archive them for future use. The proposed formalism is quite expressive: it can express algebraic equations with logical variables, Hoare triples, class invariants, as well as their temporal modalities. An evaluation of the query algorithm’s performance is included in this paper. The whole query framework has been implemented in a testing tool for Java called T3i.

[1]  Gordon Fraser,et al.  EvoSuite: automatic test suite generation for object-oriented software , 2011, ESEC/FSE '11.

[2]  Mika Cohen,et al.  Natural Language Specification and Violation Reporting of Business Rules over ER-modeled Databases , 2015, EDBT.

[3]  Myra B. Cohen,et al.  Covering array sampling of input event sequences for automated gui testing , 2007, ASE.

[4]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[5]  Hiroyuki Sato,et al.  GRT: An Automated Test Generator Using Orchestrated Program Analysis , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Yann-Gaël Guéhéneuc,et al.  Instance Generator and Problem Representation to Improve Object Oriented Code Coverage , 2015, IEEE Transactions on Software Engineering.

[7]  Mark Harman,et al.  The Oracle Problem in Software Testing: A Survey , 2015, IEEE Transactions on Software Engineering.

[8]  James J. Horning,et al.  The algebraic specification of abstract data types , 1978, Acta Informatica.

[9]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[10]  Tanja E. J. Vos,et al.  Unit Testing Tool Competition -- Round Three , 2015, 2015 IEEE/ACM 8th International Workshop on Search-Based Software Testing.

[11]  Grigore Rosu,et al.  Synthesizing Monitors for Safety Properties , 2002, TACAS.

[12]  Mark Ryan,et al.  Logic in Computer Science: Modelling and Reasoning about Systems , 2000 .

[13]  Laura M. Castro,et al.  A language-independent approach to black-box testing using Erlang as test specification language , 2013, J. Syst. Softw..

[14]  Adrian Francalanza,et al.  An LTL Proof System for Runtime Verification , 2015, TACAS.

[15]  Javier Montero,et al.  Formal Specification under Fuzziness , 2009, J. Multiple Valued Log. Soft Comput..

[16]  Stéphane Ducasse,et al.  Object-oriented legacy system trace-based logic testing , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[17]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[18]  Patrice Godefroid,et al.  Temporal logic query checking , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[19]  Jurriaan Hage,et al.  Guided Algebraic Specification Mining for Failure Simplification , 2013, ICTSS.

[20]  Gordon Fraser,et al.  Testing with model checkers: a survey , 2009 .

[21]  Tanja E. J. Vos,et al.  FITTEST: A new continuous and automated testing process for future Internet applications , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[22]  Christel Baier,et al.  Principles of model checking , 2008 .

[23]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2011, SIGP.

[24]  Insup Lee,et al.  Specification-based testing with linear temporal logic , 2004, Proceedings of the 2004 IEEE International Conference on Information Reuse and Integration, 2004. IRI 2004..

[25]  I. S. W. B. Prasetya T3, a Combinator-Based Random Testing Tool for Java: Benchmarking , 2013, FITTEST@ICTSS.

[26]  Dieter Hogrefe,et al.  An introduction to the testing and test control notation (TTCN-3) , 2003, Comput. Networks.

[27]  Ivo Van Horebeek,et al.  Algebraic Specifications in Software Engineering: An Introduction , 1989 .

[28]  Martin Leucker,et al.  Monitoring of Real-Time Properties , 2006, FSTTCS.

[29]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[30]  Martin Leucker,et al.  Comparing LTL Semantics for Runtime Verification , 2010, J. Log. Comput..

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

[32]  Martin S. Feather Rapid Application of Lightweight Formal Methods for Consistency Analysis , 1998, IEEE Trans. Software Eng..

[33]  I. S. W. B. Prasetya T3i: a tool for generating and querying test suites for Java , 2015, ESEC/SIGSOFT FSE.

[34]  Marc Geilen,et al.  On the Construction of Monitors for Temporal Logic Properties , 2001, RV@CAV.

[35]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .