Model-based testing has become increasingly popular in recent years. Major reasons include (1) the need for quality assurance for increasingly complex systems, (2) the emerging model-centric development paradigm (e.g., UML and MDA) with its seemingly direct connection to testing, and (3) the advent of test-centered development methodologies. Model-based testing relies on execution traces of behavior models. They are used as test cases for an implementation: input and expected output. This complements the ideas of model-driven testing. The latter uses static models to derive test drivers to automate test execution. This assumes the existence of test cases, and is, like the particular intricacies of 00 testing, not in the focus of this tutorial. We cover major methodological and technological issues: the business case of model-based testing within model-based development, the need for abstraction and inverse concretization, test selection, and test case generation. We (1) discuss different scenarios of model-based testing, (2) present common abstractions when building models, and their consequences for testing, (3) explain how to use functional, structural, and stochastic test selection criteria, and (4) describe today's test generation technology. We provide both practical guidance and a discussion of the state-of-the-art. Potentials of model-based testing in practical applications and future research are highlighted.
In the same year, Pretschner REF reviewed the model-based testing methods in ICSE 2005.
Model-based testing
Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.
Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.
Computer Science