Idea:
The main idea is describe your software in a model, for that you can use, for example, UML or finite state machines.
Advantages:
- The tester will have a more global vision of product, which helps to identify non tested areas and problems with requirements
- The most of the tools for MBT generate the test from model. This is advantages because sometimes it was a small change in your model, like new step was introduced, but will affect several tests. Imagine a coffee machine that now you need to confirm that your order is correct, it is just one more stage but will affect several tests.
Disadvantages:
-
Complexity of model, sometimes is really difficult write your software as a model.