Role of Simulation in Testing

What is Simulation

Simulation is a technique of predicting a system's behaviour under different load conditions and real usage patterns. It enables one to analyse the system's performance by creating a replica of the real system, to see if it is delivering functionalities as intended.

To implement simulation a model needs to be developed first. In that, different types of scenarios are tested such as multi user activities, concurrent execution of one process along with some other etc.

Simulation testing is applicable in various contexts such as safety engineering, testing, training, education, gaming etc., and across different departments like automobile, in scientific analysis, Department of Defence and many more.

To implement simulation, one needs to prepare a model with the desired functional and technical specifications. A model is basically a simplified presentation of the actual system, which helps to describe the system, which in turn enables making predictions about it.

There are primarily three types of models for performing simulation:

  • Structure ModelsThese can be thought of as flow diagrams and function block diagrams. Structure models help in the qualitative assessment of a product or process. This model is a preliminary model which leads to other advanced models. Structure model is an outline of the project in question.
  • Iconic ModelsFew examples of iconic model are drawings, prototype, dummies etc.
  • Mathematical Models This model helps to assess the product or process quantitatively.

Components of Simulation Testing :

  • Model -This component is concerned with identifying unique facts about the system. Facts which have not been discovered earlier, are included in the model. For instance, purchase pattern of customers, different profiles of a single customer etc.
  • Generate -Generation of reports regarding activity patterns of users which are time-stamped and serialised. This helps to analyse the users movement within the system.
  • Execute -Using a driver program, the system is checked for conformance to the test cases. The driver program coordinates through the database, mapping the inputs to the processes.
  • Capture -At this stage, the issues/errors that a system is facing, are captured.
  • Validate -Usually the various components including the simulation test results are captured in database, validation can be done in the form of database queries.

Types of Simulation :

Based on various research, simulation can be classified as follows :

  • LiveThis simulation technique is conducting an operational test.
  • VirtualThis type of simulation intends to check the prototype of a complete system with events triggered either artificially or by computer.
  • ConstructiveIt is a computer only representation of a system.

Thus simulation deliberately provides various input patterns to the system, to validate its performance. Simulation is used at various levels of system integration varying from modelling system's individual components (eg. Software and hardware), to modelling a complete prototype, to modelling various system interactions.

Model Validation :

This technique is used to describe various activities involved in the project, classified into two broad categories : external validation and sensitivity analysis. External validation evaluates on the basis of model output based on the observations from the system being modelled. If external analysis is accompanied by uncertainty analysis, then it would be easy to keep a track of the variance arising due to different inputs which results in varied outputs.

Sensitivity analysis is the analysis of the output model based on the incremental changes in single inputs.

Conclusion :

Simulation begins with the process of acquiring of valid source information about the product's features upon which reliability testing is to be performed. Choice of appropriate model that reflects the real scenario of the system is an important task.