model-based testing

Model-based testing (MBT) is an approach tosoftware testing that requires developers to create a second, lightweight implementation of a software build called a model. Typically, a model consists of business logic and is just a few lines of code. Another program, called the driver, sends the same information to the software under test (SUT) and the model and then compares the input results to make sure they are the same. Any result that is different is a failure that needs to be examined.

Download this free guide

A developer's guide to continuous testing

The pace of application development has been increasing rapidly. Continuous testing is the only way to avoid bottlenecks. Download this PDF to introduce continuous testing in your organization.

I agree to TechTarget’s Terms of Use, Privacy Policy, and the transfer of my information to the United States for processing to provide me with relevant information as described in our Privacy Policy.

Please check the box if you want to proceed.

I agree to my information being processed by TechTarget and its Partners to contact me via phone, email, or other means regarding information relevant to my professional interests. I may unsubscribe at any time.

Please check the box if you want to proceed.

By submitting my Email address I confirm that I have read and accepted the Terms of Use and Declaration of Consent.

Any component of an application that can be simulated (by the model), driven (by the driver program) and compared (by the results) is a candidate for model-based testing. The simplest model is an algorithm that takes inputs and creates a single output. If the application does one thing well, perhaps interacting with a database, a model, drivers, and some sample input could be all that is required to test the application. In other cases, a model is part of the solution.

Model-based testing requires a higher order of thinking than traditional, linear, "click-click type-inspect" GUI-based test automation. Testers who write MBT tend to be either strong enough technically to be production programmers, or to partner in some way with production programmers to get the test creates.

Model-based testing can be particularly good at finding memory leaks and potential conflicts that will cause the software to crash because automated tests can submit random input and run for extended periods of time. In practice, batch applications that take a single input (like a file) and produce a single output (like populating a database) are the easiest to get started with MBT. Other use cases include applications that are transaction-oriented, lack a clear user interface, or make it is possible to get "below" the UI at the API level. Some models may also include a state transition diagram, a finite state machine, a dependency graph or decision table -- typically captured and expressed in code.

Advantages and disadvantages of model-based testing

Advantages to MBT:

Once the model is created, model-based tests can cover an incredibly large variety of scenarios with relatively little effort.

Random execution of the model can uncover problems that would not be revealed up front.

The MBT process can find design and specification errors quickly.

Changes to the model will increase coverage and some MBT tools can automatically update test suites.

Disadvantages to MBT:

MBT has a steep learning curve -- for developers integrating testing knowledge, and for testers learning how modeling relates to testing.

If there is a large random test, MBT requires a great deal of infrastructure (many machines), a great deal of time (measured in hours to days for high coverage) or both.

MBT tools can be time-consuming and difficult to implement, but actual test creation and execution can be faster, which leads to faster test processes.

Join the conversation

1 comment

Register

I agree to TechTarget’s Terms of Use, Privacy Policy, and the transfer of my information to the United States for processing to provide me with relevant information as described in our Privacy Policy.

Please check the box if you want to proceed.

I agree to my information being processed by TechTarget and its Partners to contact me via phone, email, or other means regarding information relevant to my professional interests. I may unsubscribe at any time.