Integration testing is a systematic testing for constructing the software architecture and conducting test to uncover error associated with interface. the objective is to take unit tested components and build a program structure that has been dictated by design. in case of non incremental integration, all component are combined in it . and The complete program is tested as a whole. This result as a set of a error is encountered and correction is difficult because isolation of cause is complicated by vast expense of a entire program. In case of incremental integration the program is constructed and tested in small increments, error are easier to isolate and correct interface are to be tested completely systematic test approach may be applied this is known all about the integration testing.
Top down integration testing is an incremental approach to construction of the software architecture. Top-down Modules are integrated by moving downward through the control hierarchy beginning with main control module are incorporated into structure in either a depth first or breadth first manner. In the depth first search integration integrate the entire component on a major control path of a program structure. Select the entire component for integrated first then select remaining element for top down integration. Breath first integration approaches all components directly sub ordinate at each of the level with moving across the structure horizontally. This is all about the top down integration.
Drawbacks of Top-down integration:-
1) Top down sounds relatively uncomplicated but in the practice logistical problem can be occure.
2) When processing at a low level in the hierarchy is required to adequately test the upper level approach.
3) Stubs replace low level modules at the beginning of the top down testing therefore no significant data can flow on the upward in program structure. These are 3 drawbacks of the top-down integration.
Bottom up Integration testing:-
Bottom up integration testing begins with the construction and a testing with atomic modules as the components are integrated from the bottom up. The processing is a required for components subordinate to give level is always available for it and a need for stub is a eliminated. Now there are few steps for implementing a bottom-up integration these are as follow:
Steps to implement bottom-up integration:
1) Low level components are combined into cluster (build).
2) A driver (control program) is written to co-ordinate test cases input and a output.
3) The cluster is tested.
4) Removed the drivers and clusters are combined into moving upward in the program structure. These are the step which follows to implement it.
Suppose there are many components are available then these Components are combined to form cluster 1, 2, 3 and each cluster tested using a driver. Cluster 1 and 2 are subordinate to with respective ma and suppose consider a driver d1, d2, d3 then driver d1 and driver d2 are removed and cluster interface directly to ma. Similarly driver d3 for a cluster 3 is removed prior to integrate with module mb then at the last both ma and mb will be a integrated with another one component. These is all about the bottom-up integration.