Incremental Testing

It is a sub-testing technique, which comes under the umbrella of integration testing. This testing may be seen as an approach or strategy, rather as an activity, to perform the integration testing on the software product.

Integration testing is done after the execution of the unit tests, over each individual component of the software, so as to ensure the proper interface and interaction between the components of the system. Incremental testing may be considered as the subset or the partial phase of the integration testing, which first executes the integration test on the standalone components, and then subsequently, integrates components and performs integration testing over them, in parallel.

How to do it?

The basic working of the incremental testing may be described, through the following points.

  • Components, passed through the unit testing, are kept in isolation.
  • Each unit is being tested, independently, but with the help of stubs and drivers, to compensate the mandatory requirements of the other components of the system.
  • Thereafter, units are assembled with each other, one by one, and subsequently, integration testing is performed, after each integration of the component.
It takes up similar approach, as considered, for integration testing, i.e. bottom-up and top-down approach, along with the functional incremental approach.

Bottom-up approach

In this approach, the flow of the process is from bottom to top. One by one integration of the components, from the bottom level and up to top level, until all the components are combined. After each addition of the component, to the integrated structure, testing is performed, to evaluate the integration issues. This phase, involves the usage of the drivers, to substitute the needs of the necessary components.

Top-down approach

The flow of the process, in this phase, is from top to bottom. Generally, stubs are used to replace the need of the essential components.

Functional Incremental approach

Apart from these two vertical approaches, this testing may also be carried out in the horizontal way, namely, functional increment. In this approach, integration of the components is done on the functional or functionality basis.

Key Points

  • Also known by the name of incremental integration testing and progressive testing, it involves the execution of the integration tests over each of the components, independently, followed by one-by-one fusion of the components, along with the integration testing, in parallel, after each fusion.
  • Drivers and Stubs are used as substitutes, to fulfil the requirements of the other necessary units or components.
  • Easy to detect defects in the small subsystems as compared to large and complex system.
  • Time consuming process, as this approach demands the usage of various stubs and drives, which needs to be developed.
  • Stubs, may raise the level of the complexity in the software application.
  • Incremental approach provides advantage of earlier exposure of the defects, over non-incremental approach.