After module testing, the next step in the software testing
phase is integration testing. This activity involves combining components in
an orderly progression until the entire system has been built. The emphasis of
integration testing is on the interaction of the different components and the
interfaces between them.
Most often, the programming group performs software integration
testing. As with module testing, integration testing is very closely linked to
the programming activity since the tester needs to know details of the
function of each component to develop a good integration test plan.
Integration Test Techniques. An important decision when planning
for integration testing is determining the procedure to be used for combining
all the individual modules. There are two basic approaches for doing this:
non-incremental testing and incremental testing.
In non-incremental integration testing, all the software
components (assuming they have each been individually module tested) are
combined at once and then testing begins. Since all modules are combined at
once, a failure could be in any one of the numerous interfaces that have been
The recommended approach for the integration of system
components is planned incremental testing. With this method, one component is
completely module tested and debugged. Another component is then added to the
first and the combination is tested and debugged. This pattern of adding one
new component at a time is repeated until all components have been added to
the test and the system is completely integrated.
Incremental testing requires another decision about the order in
which the components will be added to the test. There are no clear-cut rules
for doing this. Testers must base a decision on their knowledge of what makes
the most sense for their system, considering logic and use of resources. There
are two basic strategies: top-down or bottom-up as shown in Figure