Test Reactive Systems with Büchi-Automaton-Based Temporal Requirements

A reactive system is expected to interact with its environment constantly, and its executions may be modeled as infinite words. To capture temporal requirements for a reactive system, Buchi automaton has been used as a formalism to model and specify temporal patterns of infinite executions of the system. A key feature of a Buchi automaton is its ability of accepting infinite words through its acceptance condition. In this paper, we propose a specification-based technique that tests a reactive system with respect to its requirements in Buchi automaton. Our technique selects test suites based on their relevancy to the acceptance condition of a Buchi automaton. By focusing the testing efforts on this key element of a Buchi automaton that is responsible for accepting infinite words, we are able to build a testing process driven by the Buchi automaton specified temporal properties of a reactive system. At the core of our approach are new coverage metrics for measuring how well a test suite covers the acceptance condition of a Buchi automaton. We propose both weak and strong variants of coverage metrics for applications that need tests of different strengths. Each variant incorporates a model-checking-assisted algorithm that automates test case generation. Furthermore our testing technique is capable of revealing not only bugs in a system, but also problems in its requirements. By collecting and analyzing the information produced by a model-checking-assisted test case generation algorithm, our approach may identify inadequate requirements. We also propose an algorithm that refines a requirement in Buchi automaton. Finally, we conduct a thorough computational study to evaluate the performance of our proposed criteria using cross-coverage comparison and fault sensitivity analysis. The results validate the strength of our approach on improving the effectiveness and efficiency of testing, with test cases generated specifically for temporal requirements.

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

[2]  Paul C. Jorgensen,et al.  Software Testing: A Craftsman's Approach , 1995 .

[3]  Ferhat Khendek,et al.  Test Selection Based on Finite State Models , 1991, IEEE Trans. Software Eng..

[4]  Marie-Claude Gaudel Software Testing Based on Formal Specification , 2007, PSSE.

[5]  Li Tan,et al.  Testing with Büchi Automata: Transition Coverage Metrics, Performance Analysis, and Property Refinement , 2014, Formalisms for Reuse and Systems Integration.

[6]  James M. Bieman,et al.  Using fault injection to increase software test coverage , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[7]  André Platzer,et al.  European Train Control System: A Case Study in Formal Verification , 2009, ICFEM.

[8]  Insup Lee,et al.  A Temporal Logic Based Theory of Test Coverage and Generation , 2002, TACAS.

[9]  Li Tan,et al.  Specification-based testing with buchi automata: Transition coverage criteria and property refinement , 2014, Proceedings of the 2014 IEEE 15th International Conference on Information Reuse and Integration (IEEE IRI 2014).

[10]  Marie-Claude Gaudel,et al.  Checking Models, Proving Programs, and Testing Systems , 2011, TAP@TOOLS.

[11]  Angelo Gargantini,et al.  An Evaluation of Model Checkers for Specification Based Test Case Generation , 2009, 2009 International Conference on Software Testing Verification and Validation.

[12]  Li Tan,et al.  A unified framework for evaluating test criteria in model-checking-assisted test case generation , 2014, Inf. Syst. Frontiers.

[13]  Pierre Wolper,et al.  Simple on-the-fly automatic verification of linear temporal logic , 1995, PSTV.

[14]  Jan Tretmans,et al.  Model Based Testing with Labelled Transition Systems , 2008, Formal Methods and Testing.

[15]  Felix Naumann,et al.  Data fusion , 2009, CSUR.

[16]  Li Tan,et al.  State Coverage Metrics for Specification-Based Testing with Büchi Automata , 2011, TAP@TOOLS.

[17]  John C. Knight,et al.  Safety critical systems: challenges and directions , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[18]  Stefan Leue,et al.  Formalization and validation of the General Inter-ORB Protocol (GIOP) using PROMELA and SPIN , 2000, International Journal on Software Tools for Technology Transfer.

[19]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[20]  Karl Meinke,et al.  Incremental Learning-Based Testing for Reactive Systems , 2011, TAP@TOOLS.

[21]  Li Tan,et al.  Test Reactive Systems with Buchi Automata: Acceptance Condition Coverage Criteria and Performance Evaluation , 2015, 2015 IEEE International Conference on Information Reuse and Integration.

[22]  Mauro Pezzè,et al.  Software testing and analysis - process, principles and techniques , 2007 .

[23]  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..

[24]  Li Tan,et al.  Test criteria for model-checking-assisted test case generation: A computational study , 2012, 2012 IEEE 13th International Conference on Information Reuse & Integration (IRI).

[25]  Rance Cleaveland,et al.  Using formal specifications to support testing , 2009, CSUR.

[26]  Alan Hartman,et al.  The AGEDIS tools for model based testing , 2004, ISSTA '04.

[27]  Junbeom Yoo,et al.  Formal Modeling and Verification of Safety-Critical Software , 2009, IEEE Software.

[28]  Yih-Kuen Tsay,et al.  GOAL: A Graphical Tool for Manipulating Büchi Automata and Temporal Formulae , 2007, TACAS.