Test Reactive Systems with Buchi-Automaton-Based Temporal Requirements

Bolong and Li Tan. To appear in Advances in Intelligent and Software Computing. Springer, 2016.

Download (pdf)

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.