Software Integration Testing: Complex but
Essential
The integration testing is one of the important types of
software testing in the software development cycle. Integration
testing is also known as Integration and Testing (I&T).
This is the most difficult and expensive of all types of
software testing.
In integration testing, input modules that have been unit
tested are grouped into larger module. Tests like performance
testing can be done at any stage of the development. However,
integration testing has to follow a certain schedule in order
to be effective. It is carried out after unit testing but
before system testing. Tests as defined in an integration test
plan are applied to the integrated module and deliver an
integrated module for system testing.
Any large system consists of smaller sub-systems and the
subsystem consists of components. Initially the components are
tested independently and made bug free. Then this process is
repeated for a group of components or subsystem and then to the
integrated system.
The objective of Integration testing is to make sure that
the interaction of two or more components produces results that
satisfy functional requirement. The defects in the interface of
the components and also their interaction will be observed
during the integration testing. The integration testing plan
comes from the physical makeup of the system components and
these were identified and designed earlier in the development
stage.
The task of Integration testing is centered on the system
functions. These functions are individual program modules or
individual units that when assembled together make a final
integrated software. These units have been tested in the unit
testing stage and all bugs in individual unit software should
have been removed at that stage.
These units should perform satisfactorily as individual
entities. However, there is no guarantee that the integrated
software will function satisfactorily since it has passed
through the unit stage. Any conflict between various modules
has to be resolved at the integrated testing stage.
The purpose of integration testing is to verify functional,
performance and reliability requirements placed on major design
modules. These modules are integrated or assembled from a group
of units as a major module. Test cases are constructed to test
that all components within assemblages or major design modules
interact correctly. The whole concept is similar to a "building
block" approach, in which verified assemblages are added to a
verified base which is then used to support the integration
testing of further assemblages.
The types of Integration testing are big bang, bottom-up,
top-down and hybrid. Brief details on this are as given
below.
 |
Big bang - In this type of testing, all/ most of
the developed modules are integrated to form a
complete/ major software system as the case may be
and then used for integration testing. The Big Bang
method saves a lot of time in the integration
testing process and also cost effective. However,
this process warrants proper recording of test
cases and also their results in the absence of
which the process of integration becomes very
difficult. |
 |
Bottoms-up – In this the testing is carried out
starting from the lowest level software modules or
units of the system. Once these are tested and
debugged they are integrated together and tested as
an integrated unit. A number of such integrated
units after testing are integrated together to form
the higher level integrated module and again tested
for errors. This process is continued until the
whole application is tested and debugged. For this
approach to be effective all units at that level
have to be ready before testing. |
 |
Top-down – This is exactly opposite to bottoms-up
approach. Top down integration testing is an
incremental integration testing technique which
begins by testing the top level module and
progressively adds in lower level module one by
one. |
 |
Hybrid – Both Top-down and bottom-up approaches
have their own advantages and disadvantages. In
top-down integration testing it is very easy to
follow the top-down software development process
whereas in bottom-up testing the code used is
tested repetitively. The hybrid integration testing
takes advantage of the benefits of both top-down
and bottom-up testing. |
|