Utilizing Model Checking for Automatic Test Case Generation from Conjunctions of Predicates

Automatic test case generation from a pre-post style formal specification must deal with the issue of how to generate test cases from a conjunction of atomic predicate expressions, but unfortunately this problem has not been effectively solved due to its intrinsic difficulty. In this paper, we describe a practical approach to tackling this problem by utilizing the model checking technique. An algorithm that converts test case generation from a conjunction of atomic predicate expressions into model checking is proposed. We discuss how the algorithm deals with atomic predicate expressions involving only variables of numeric types, and then extend the discussion to variables of compound types such as set, sequence, and composite types. Finally, case studies are presented to assess the feasibility and effectiveness of our approach.

[1]  Sarfraz Khurshid,et al.  TestEra: Specification-Based Testing of Java Programs Using SAT , 2004, Automated Software Engineering.

[2]  Shaoying Liu,et al.  A Decompositional Approach to Automatic Test Case Generation Based on Formal Specifications , 2010, 2010 Fourth International Conference on Secure Software Integration and Reliability Improvement.

[3]  Li Zhang,et al.  A decision procedure for propositional projection temporal logic with infinite models , 2008, Acta Informatica.

[4]  Shaoying Liu,et al.  A "Vibration" Method for Automatically Generating Test Cases Based on Formal Specifications , 2011, 2011 18th Asia-Pacific Software Engineering Conference.

[5]  Jeremy Dick,et al.  Automating the Generation and Sequencing of Test Cases from Model-Based Specifications , 1993, FME.

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

[7]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[8]  Leonardo de Moura,et al.  Automated Test Generation with SAL , 2005 .

[9]  Jonathan P. Bowen,et al.  Industrial-Strength Formal Methods in Practice , 1999, Formal Approaches to Computing and Information Technology (FACIT).

[10]  Maciej Koutny,et al.  Framed temporal logic programming , 2008, Sci. Comput. Program..

[11]  Michael R. Donat Automating Formal Specification-Based Testing , 1997, TAPSOFT.

[12]  Bernhard Steffen,et al.  Model-Checking: A Tutorial Introduction , 1999, SAS.

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

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

[15]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.