In my last integration testing article we have seen the different types of integration testing, now in this article we will discuss the Top-Down and Bottom-up approaches of integration testing.
Approaches of integration testing is mainly divided into two basic types.
- Incremental Approach
- Non-Incremental Approach
First we will see Non-Incremental approach, Big bang approach is non-incremental approach. in this all components are combined at once to form a program and tested as a whole. this approach works really great for small and some medium kind of projects but not for big systems. there are some basic limitations of this approach is, if you are developer then its very hard to debug the code and find the exact cause of the problem or defect. if you are tester then you have wait until all component and being developed and integrated then only you can start the work with it.
I think this is quite good amount of information on Big Bang or Non-Incremental Approach of Integration testing.
lets discuss the Incremental approach of Integration testing. in this we will have Top-down Integration, Bottom-up Integration and Sandwich Integration.
Top down Integration Testing:
In this approach modules are integrated by moving down the control hierarchy starting from top with main control module first.
stubs are developed for substitution of lower level module. stub is nothing but the dummy component or module or feature which simulates the functionality which is not ready yet.
modules subordinate to the main control module are integrated in either
1. Depth first manner- in this manner we test the application from top to bottom, we take a longest path and test the application
2. Breadth first manner – in this manner we test the application on each level and test the application level wise.
Bottom-up Integration Testing:
Bottom-up integration is just opposite of Top-Down integration testing. In this type of testing modules are integrated starting from the lower level by moving up through the control hierarchy. Each component at lowest level of system is tested individually first and then next level components are tested. In this type of approach Drivers are used. Driver is a program designed as a dummy calling module for a lower level module.
I hope this will give you more idea about Integration testing.