What is Model Based Testing?
Today’s real-time financial software systems are composed of complex components integrated together over a large number messaging buses and execution engines. Increasingly we are seeing the use of complex distributed and real-time processing, using GRID technologies, to provide business advantage from being able to respond to market events in real time.
The testing of today’s distributed real-time systems is a very demanding task.
Software testing refers the dynamic verification of a system’s behaviour based on the observation of a selected set of controlled executions, or test cases. [1] The single most important problem within software testing is how to select a suite of test cases that will effectively demonstrate either that the system behaves has intended, or, contains errors or defects.
Traditionally testers would use the system specification documents and software code to create the tests cases manually. This approach has lead to three keys issues associated with the resultant poor software quality of the tested system.
- The system specification often contains ambiguous functional requirements caused by missing or conflicting assumptions.
- Errors caused by manual design, creation and maintenance of the test case scripts.
- Poor test coverage. On average less than 50% of the application functionality is actually tested.
Model-based testing refers to the automatic test case derivation from a model representing the system/software behavior. This model is derived from a formal specification or may be designed by test modellers using diagrammatic tools. In the latest approaches to MBT the test model may be based on software design models such as UML sequence diagrams and UML state diagrams.
The MBT ROI is based on the assumption that using the system specification requirements and design artefacts to create a test model that will automatically generate the required test cases will significantly lower testing and development costs and improve software reliability.
Model based testing process is also designed to detect conflicts and problems within the requirements specifications. This leads to improved specifications, clarification and resolution of potential conflict in the specification.
The MBT Process makes the following claims, if the requirements specifications can be rigorously modelled and if this model can then be used to automatically create a suite of test cases using a formal process, then testers can be highly confident that the test cases will have the required test coverage.

The Model-Based Testing Process
There is a substantial initial investment that must be made in order to get the ROI from MBT.
A test-model expert must take the design specification, use case diagrams and any other design artefacts and translate these specifications into a graphical test model of the application processing logic, inputs and outputs.
One of the most effective approach is to use the UML State Chart diagrams to model application behaviour. The modelling of hierarchical and concurrent state machines enables the modelling of complex real-time distributed applications.
Model-Based Testing Benefits
- A rigorous examination of the system specifications and the removal of conflicts and problems will be a key result of the test model design phase.
- Elimination of Manual design of test cases and scripts since the test model will automatically create the required test cases. The removes one of the route causes of error during test script creation.
- Fully automated test coverage can be implemented. A huge number of test cases, often measured in millions, can be generated. Something that is not feasible with the manual approach to testing.
- Significant reduction in the time taken to refer errors back to developers for fixing. This will help shorten product delivery and testing time scales.
- Very easy to implement regression testing.
- The elimination of test scripts due to changes in functional specifications. The test modeller need only make those required changes to the test model behaviour to reflect the changes in functionality then a new suite of test cases (including a regression test suite) can then be automatically generated.
Vanguard Technologies Model-Based Testing Services
Vanguard Technologies offers its clients a Model Based Testing Service that covers all aspects of model based testing including:
- The design of test models
- Conversion of design models into test models
- Generation and execution of test services.
- Functional and Regression Testing
- Systems and Integration Testing
- Performance Testing
|