While test automation helps expedite the regression testing or some or most functional tests, there is a need to have the same expedition a step earlier than this. A weak or delayed creation and maintenance of test cases will always pull the entire cycle down significantly. Model-based Testing (MBT) approach helps to resolve this and enables expedited generation of test cases and easier maintenance.
In this Post
What is Model-Based Testing
Model-based testing is a modern software testing approach where test cases are generated from the models of application functionality/flow. It helps to expedite the testing and enable developers and testers to create faster and better software. MBT helps to ensure that the system is behaving in the same flow or action as the actual user would perform. It helps to achieve increased automation coverage, as testers save time from designing and review of test cases and focus more on test automation. It also enables the increase and determine the test coverage. Maintenance of test cases becomes very easy, as you just need to change the model as per the new specification.
Benefits of Model-based Testing
- Model-based testing optimizes the testing time and costs significantly
- It helps generate test cases automatically from models
- Minimal number of test cases to validate functionality and flow ensuring full coverage
- Enables test coverage improvement
- Help make the overall testing strategy less error-prone and more efficient
- Faster and efficient testing in Agile development
Drawbacks of Model-based Testing
- Model creation is difficult and time taking process, one must have a deep understanding of the application
- Risk of generating new set f test cases with change in model
- The steep learning curve for one to understand the concept and the tools to carry out the approach effectively
Some of the Best Model-Based Testing Tools
Below are some of the best tools for MBT in both categories, open-source and commercial. Let’s start with an open-source first.
Open-source tools for MBT
GraphWalker offers an editor called the Studio in which models can be created and edited. But Studio can do more than just editing. In the tool, the models can be verified by running test path generations so the user can verify the correctness of the models.
- Supports the creation and editing of models
- Verifying the correctness and expected behaviours of the models
- A suite of command-line tools for running GraphWalker in different ways
- Offline path generation
- Online path generation as either REST or a WebSocket service
- GraphWalker can be used in your testing project as a Maven dependency
- Use various GraphWalker maven plugin to speed up your development
fMBT is a set of tools for fully automatic test generation and execution and a collection of utilities and libraries that support the high level of test automation. This includes Python libraries for multiplatform GUI testing, a tool for editing, debugging, running and recording GUI test scripts, and a tool for editing and visually analyzing test models and generated tests. It very quickly finds and tests paths that would never be tested by human test designers. This increases test coverage and cuts down test maintenance efforts when compared to traditional test automation.
Modbat is a model-based testing tool that is based on annotated (extended) finite-state machines. It is specialized into testing the application programming interface (API) of software. The model used by Modbat is compatible with Java bytecode. The user defines and compiles a model, which is then explored by Modbat and executed against the system under test. Failed test runs are reported as an error trace. It is based on Scala and compatible with any Java-based software. The model has the structure of a non-deterministic finite-state machine. From all possible transitions, one is chosen to be tested; annotations of the transition specify which code to execute.
Commercial tools for MBT
Tosca is a complex test automation framework, where test data can be generated using different criteria (risks, pairwise…). Structure of the test data objects can be automatically retrieved from the implementation.
CA Agile Requirements Designer is an end-to-end requirements gathering, test automation and test case design tool which drastically reduces manual testing effort and enables organizations to deliver quality software to market earlier and at less cost.
TransWare BPM-X creates test cases from business process models based on different criteria (statement, branch, path, condition). It can import models from several modeling tools, and can export test cases to Excel, HP Quality Center, etc.
MBTsuite can generate test cases from UML models based on various coverage criteria (path, edge…) or randomly. It can import model from several model editors and it is integrated with various test management and test execution tools.
SmartTesting Yest is a lightweight model-based testing tool for manual and automated functional testing targeting large-scale enterprise IT software in agile. Yest is based on graphical workflows with decision tables. Yest is integrated with major test management tools and test automation frameworks.
TestOptimal supports FSM and E-FSM modeling with several test case generation algorithms. It has various plugins for online testing web application, windows applications, database and web services, etc. It also supports data-driven testing and pair-wise algorithms right within the model and has the facility for performing load testing using the same models.
Test Modeller is a browser-based solution by Curiosity Software that enables you to: Model a system under test as BPMN-style flowcharts. Automatically generate test cases from the model, optimizing testing for time and risk. Define test data at the model level and generate data at the same time as test cases.
References – Respective tools website, http://mit.bme.hu/~micskeiz/pages/modelbased_testing.html
You Might Also Like: