This document discusses model-based software testing. It defines a model as a depiction of software behavior. Model-based testing uses models to guide testing tasks like test selection and evaluation. Common models include finite state machines, statecharts, UML diagrams, and Markov chains. The document provides an overview of these models and discusses how they are applied to software testing. It also gives examples to illustrate finite state machines and model-based testing terminology.