Model-based testing is application of Model based design for designing and optionally also executing artifacts to perform software testing. The MBT process begins with requirements.  A model for user behavior is built from requirements for the system.  Those building the model need to develop an understanding of the system under test and of the characteristics of the users, the inputs and output of each user, the conditions under which an input can be applied, etc.

In Model Based Testing, input and state combination can be enumerated systematically. In order to understand the model, it is important to understand the concept behind model first. A model describing an SUT is usually an abstract, partial presentation of the SUT’s desired behavior. Test cases derived from such a model are functional tests on the same level of abstraction as the model.

Model based reviewing follows a three step approach:

  • Testers create a model from the (text based) design artifacts.
  • The models are discussed and completed in collaboration with designers and analysts.
  • The models are finalized and are suited to be used as an unambiguous base for test design.

Testing traditionally consists of much manual, repeated work. Automation of testing is known to fail, especially when employed without a good approach. Perhaps failures are even greater in number than successes? Model based testing has often been looked upon as ‘one step beyond’, modeling followed by automated test execution. This is even less likely to succeed, as these models often contain the same inconsistencies as the text based designs used to create them.

A model must be based on the frame of reference and principle that can guide identification of relevant issues and information. Software testing models typically express required behavior and focus aspects of system suspected to be buggy. Models from the software testing point of view, must establish the information necessary to produce and evaluate test case.

Representation A modelling technique must have a means of expressing a particular model. This may be a wire frame, cad model or anything else.

Technique Models can be developed by using any technique using UML notion for the formal ones or even simpler artefact for general use.

Model Validation & Consistency checking Models can be validated against the rules defined in OCL, Object constraint language and meta-model.

It is concluded that MBT is a process that implements a testing philosophy, and it is closely tied to the overall development methods in place on a project.  MBT is not always a good choice for all software intensive projects.  Determining the best way to test the product is not trivial. Since MBT is often automated, it can be used to actually perform functional tests (demonstrate the system functionality) as part of the review process.  This is in contrast to manual testing, which is labor intensive and requires a lengthy time period to capture and report on test results.