A real leap in the development of information systems is the in advance simulating of systems and processes. Simulation in other industries, like the Aviation and Process Industries, are common. Simulation of the process or system helps to identify early structural deficiencies before operating system components are delivered.
As we see more models coming into the SDLC, these models can not only automatically generated test cases. But more is possible! Model-Based Design (MBD) helps solve the challenges of (embedded) systems development. Using models gives developers insight into the dynamics of the development and algorithmic aspects of the system through simulation. Furthermore, the models to be used:
- Simulation Testing – As executable and testable specifications;
- Model Based Reviewing – To communicate the (system) requirements and interface definitions;
- Virtual Prototypes – As a model of the complete system to discuss with Business Users, and
- Model Driven Development – For automatic code generation of software development.
Simulation Testing is already a proven practice in embedded software and industries like the Aviation Industry. Now the question arises whether this is also useful for normal software applications, like administrative systems? The answer is “Yes”. However, for now focused on development testing.
By making models and using simulation testing it’s possible to visualize and debug (functional) designs. As a result it’s also possible to test the models by means of simulation testing. These tests may all relate to both the initial input for the test as the expected results of the tests. Within the embedded world this is called model-in-the-loop testing (MIL).
The figure shown here is an example of a model of an embedded system. This is also possible in the area of different Object Oriented languages (OO). Within the embedded world, the various hardware components are processed in a model. Within OO this may also be possible by the different functions as a component to be seen. These (default) features can be incorporated into a model and are coupled together. This creates a model that simulates the functioning of the component.
A full exploration of (functional) designs by means of simulation is a way to test requirements. Within the tests diverse subjects can be included such as input and parameters. By covering all possible input and parameters of a component or unit results in an increased coverage of development testing.
The best results are achieved when the testing of the models are carried out parallel with the designs. When models are developed, the tests focuses on the aspects of design using simulation testing of the model. The result at the end of the design phase is a model, at unit level, that enjoys the confidence and support of information analysts, designers, developers, and testers.
By using Simulation Testing (modeling and executing these models), it is possible to visualize and debug designs without any (newly) written code. Design errors can be removed quickly from the documentation. Moreover, a large part of the (development) testing can be performed based on simulations. By using simulations for checking the development process, models offer a different technique to find defects in the design at the earliest possible moment.