Model Learning and Model-Based Testing
Lecture Notes in Computer Science
We present a survey of the recent research efforts in integrating model learning with model-based testing. We distinguished two strands of work in this domain, namely test-based learning (also called test-based modeling) and learning-based testing. We classify the results in terms of their underlying models, their test purpose and techniques, and their target domains. 2. learning-based testing: models are cornerstones of model-based testing; however, complete and up-to-date models hardly ever
... ist. Learning can hence be used to create and complement models for model-based testing. We refer to this category of work as learning-based testing [MS11]. To structure our survey of the field we focus on the following classification criteria: 1. Types of models: different types of models have been learned and have been used for model-based testing. We distinguish the following categories of models: predicates and functions, and logical structures (such as Kripke structures, cf. the chapter on logic-based learning in this volume), finite state machines (including their variants and extensions, cf. the chapters on FSM and Extended FSM learning, as well as learning-based testing in this volume), and labeled transition systems. The distinction between variants of these models is not always well-defined and there are several propertypreserving translations among them. However, this classification gives us a general overview and a measure of matching between different learning and testing techniques. 2. Types of testing: requirement-based and conformance testing are the most prominent uses of model-based testing. However, other types of model-based testing have also been considered in combination with learning; these include: integration testing, performance testing, and security testing. 3. Domain: test-based learning and model-based testing have been applied to various domains, such as embedded systems, network protocols, and web services. If a research result considers a particular application domain, we classify the result in terms of the domain, as well.