Test Synthesis from UML Models of Distributed Software

Simon Pickin, Claude Jard, Thierry Jéron, Jean‐Marc Jezéquél, Yves Le Traon

IEEE Transactions on Software Engineering · 2007 · 39 citations · 16 references

Concepts

TL;DR

Object‑oriented development is increasingly used for complex distributed systems, where behavior models—both interaction‑based (e.g., UML sequence diagrams) and state‑based (e.g., UML statecharts)—serve as the foundation for systematic requirements capture, specification, design, simulation, code generation, testing, and verification. The article introduces a UML‑centric method and tool that automatically synthesizes test cases from scenarios and a state‑based design model, building on formal V&V techniques. The synthesis uses on‑the‑fly algorithms grounded in input/output labeled transition systems, and the process is demonstrated with an air traffic control software example. The method integrates seamlessly with traditional OO development, enabling automated synthesis of test cases from early‑stage scenarios that model global actor–component interactions, eliminating manual test derivation.

Abstract

The object-oriented software development process is increasingly used for the construction of complex distributed systems. In this context, behavior models have long been recognized as the basis for systematic approaches to requirements capture, specification, design, simulation, code generation, testing, and verification. Two complementary approaches for modeling behavior have proven useful in practice: interaction-based modeling (e.g., UML sequence diagrams) and state-based modeling (e.g., UML statecharts). Building on formal V&V techniques, in this article we present a method and a tool for automated synthesis of test cases from scenarios and a state-based design model of the application, remaining entirely within the UML framework. The underlying "on the fly" test synthesis algorithms are based on the input/output labeled transition system formalism, which is particularly appropriate for modeling applications involving asynchronous communication. The method is eminently compatible with classical OO development processes since it can be used to synthesize test cases from the scenarios used in early development stages to model global interactions between actors and components, instead of these test cases being derived manually. We illustrate the system test synthesis process using an air traffic control software example

References

16