How are units integrated? What are the implications of this order?
- Top-down => need stubs; top-level tested repeatedly.
- Bottom-up => need drivers; bottom-levels tested repeatedly.
- Critical units first => stubs & drivers needed; critical units tested repeatedly.
The Integration testing activity can be performed in 4 ways:-
- Big bang approach
- Top-down approach
- Bottom-up approach
- Mixed approach
Big bang approach:-
It is the simplest integration testing approach where all the modules making up a system are integrated into a single step and then tested. However, this technique is practicable only for very small systems.
The main problem with big bang integration testing approach is that once an error is found, it is very difficult to localize the error as the error may be to any of the module being integrated. Therefore debugging error reported during big bang are very expensive to fix.
Top-down approach:-
The top-down integration testing starts with the main routine and one or two subroutine module in the system. After the top-level skeleton has been tested, the immediate subroutines of the system are combined with it and tested.
Top-down integration testing approach requires the use of the program. Stubs to stimulate the effect of lower level routine that is called by the routines under test. A pure top-down approach doesn’t require any driver routine.
A disadvantage of the top-down integration testing approach is that in the absence of lower level testing routines many times it may become difficult to exercise the top-level routines in the desired manner.
Bottom-up approach:-
The bottom level testing each subsystem is tested separately and the full system is tested. A subsystem might consist of many modules. The primary purpose of testing each subsystem is to test the interface among various modules making up the system. Large software system normally requires several levels of subsystem testing lower levels subsystem are successively integrated to form a higher level subsystem.
The principle advantage is several disjoint subsystems can be tested simultaneously. In a pure bottom-up testing, no stubs are required only the test drivers are required.
Mixed approach:-
A mixed integration testing takes after a mix of top-down and bottom-up approach. In a top-down approach, the testing can begin simply after the best level modules have been coded and unit testing. Correspondingly, the bottom up testing can begin simply after the base level modules are prepared.
The mixed approach overcomes this shortcoming of the top-down and bottom-up approach. In mixed testing approach, the testing can start as and when modules become available. Therefore, this is one of the most commonly used integration testing approaches.
Potential Problems:
- Inadequate unit testing.
- Inadequate planning & organization for integration testing.
- Inadequate documentation and testing of externally-supplied components.