This screenshot shows a typical scenario of environment simulation.

The system under development is represented by the BlockUnderDevelopment. The system’s environment that one needs to simulate is represented by RandomSignalSender. The possible states of the system under development are modeled using a state machine. The system can also receive and process several signals. The RandomSignalSender simulates the environment and sends signals to the BlockUnderDevelopment. The basic idea behind that type of tests: stressing the system implementation by sending signals in random order. By adding new test classes, you can simulate different environments (e.g. by reading signals from a data base) for the system under development.