Ideas

Kinds of MBT

Most model based testing frameworks can be divided into two categories, Extended Finite State Machine based or Pre/Post Model based.

Extended Finite State Machine

Finite State Machine that maintains additional state data in any given state. Each model is defined, either through code or a gui, as a finite state machine which the software then walks through to generate the test cases.

Examples:

Pre/Post Models

There are a variety of styles of pre/post models. What they all have in common is that they operate through defining a set of rules that get triggered under specified conditions.

Tools

Event-B

MISTA

Osmo

PyModel

SpecExplorer

TestOptimal

Uses

Automated Functional Test Generation

This is the most common use for MBT systems, where a model is created describing the system, and tests are generated in some target test language.

Performance Test Generation

Something I haven't seen a lot of, but should be possible. This could either work in a similar way to functional test generation, perhaps creating files used by a program like JMeter, or could use on-the-fly testing to generate multiple streams.

Log Based Testing

I think this is one of the more interesting potential uses for on-the-fly testing. Rather than test the system directly, rig the system to generate detailed logs, then run it as normal. Develop a model of the system with an eye to the data generated by the logs, then run the model on the log files to verify that they are correct. This has the advantage of being able to test complex systems that are dependent on reaction time, like games. It could also be applied to embedded systems where it would be difficult to directly hook an automation system in.