In loose terms, Model-Based Testing (MBT) is anything that is based on computer-readable models that describe some aspects of the system to be tested in a format and with an accuracy that enables the generation of test cases in a completely automatic or semi-automatic way.
MBT addresses the growing demands on functional test design, especially for agile projects. Testing is more than just test cases; it also involves integration with the (SDLC) process. The most advanced approach models the behavior of the system under test from requirements and then with user-selected test design heuristics it fully automatically generates the optimized number of test cases, documentation, and executable scripts.
The majority of test design automation tools leverage MBT to allow you to create or import a graphical representation (that is, a model) of the system under test.
There are three main approaches to model-based testing: 1) graphical test modeling, 2) environment model-driven test generation, and 3) system model-driven test generation, There are others but, these three are the main approaches.
Below you can find a table where the similarities and differences between the three main approaches of model-based testing are captured.
Source: Conformiq’s “Comparing-Automated-Test-Design-Methods” Whitepaper.
All model-based testing approaches listed above can produce the same end result – that is, they can all be used to generate executable test cases and test documentation. However, the key difference between them relies on what is needed from the users to do in order to get those tests out.
Of all the test design automation methods, the system model-driven method presents significant improvements in quality, SUT fault detections, traceability, maintenance, model reuse, improvement, and a reduced cost and time.
What’s next for Test Automation Design?
The impact of test design automation in powering testing at the speed of agile is increasingly evolving. Companies need to adopt new testing techniques like Test Design Automation, to keep up with customer demand by continuously delivering high-quality apps and experiences and getting ahead of the competition.