Testing, including designation, execution and bug analysis has been broadly adopted in various industries. Test cases must be designed to confirm the entire behavior of the object system. In practice, a test case normally includes a series of operations that cold conduct the system status eventually to fulfill the precondition of the targeted test case. However, the applications to trigger the function calls of the software system would often be manually composed in traditional test activities, which is difficult especially for complex concurrent systems. Insufficient testing might result in hidden system defects, which increases the likelihood of economic loss or human injury. Model checking is a formal technique that can check the properties of a system automatically with strictness, completeness, and traceability. In this paper, a novel formal approach is proposed to systematically generate test scenarios automatically with traceability by the model checking technique. Meanwhile, the scenarios are reliable and precise, and debugging also becomes easier. Moreover, despite the reduction in demand of an experienced test engineer to design the target test cases, the coverage could be improved as the tedious and complicated processes of test scenario generation are accomplished by the model checker. This method has been applied in two practical case studies, and the results show the effectiveness of the proposed approach in terms of high coverage, automation, traceability and reusability.
Submitted on March 17, 2018; Revised on April 14, 2018; Accepted on May 21, 2018