Statecharts: A visual formalism for complex systems
Science of Computer Programming
Testing of Concurrent Programs Based on Message Sequence Charts
PDSE '99 Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems
Generating test sequences from a set of MSCs
Computer Networks: The International Journal of Computer and Telecommunications Networking - ITU-T system design languages (SDL)
Deterministic UML Models for Interconnected Activities and State Machines
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
Integration testing of embedded software is difficult because such software tends to be large and complex; it is often structured as a set of tasks whose interaction patterns can be arbitrary and nondeterministic; it is subject to frequent changes while being tested; and testing period must be minimized since the product's life-time is short. In order to conduct integration testing in a cost-effective manner, it is essential that requirements are captured in precise notation and that test cases are automatically generated and executed whenever possible.In this paper, we demonstrate how to generate test cases from a set of Message Sequence Charts (MSCs) by constructing a semantically equivalent global finite state machine (GFSM). Test cases are expressed as a sequence of messages to be exchanged among various system entities. When transforming complex and hierarchical MSCs to a GFSM, state explosion problem is often encountered. When constructing a GFSM, we achieved significant reduction in the number of states and transitions by generating only the feasible sequences. Such reduction was possible because embedded software we used as the case study, digital TV application software, had known and well-defined initial state.We developed a graphical toolset to edit MSCs and automatically generate test cases. Users describe the required functionalities in scenarios, and test cases are automatically generated from the GFSM according to the state and transition coverage criteria. We applied the proposed approach to specify and test a substantial portion of embedded software running on a digital TV and were able to detect an error, previously unknown to the developers, that occurred due to a subtle race condition among tasks.