Geeks With Blogs
The Library of Software Testing Pavankumar Pothuraju's weblog

Integration Testing is an important step in a project, validating that the boundaries of a system are functioning properly and will deliver the required results. Specifically, all components within the system should cooperate with each other properly. Integration Testing is performed by Integration Testers or Software Developers.

Integration testing is a logical extension of Unit Testing. In its simplest form, two units that have already been tested are combined into a Component and the interface between them is tested. A component, in this sense, refers to an integrated aggregate of more than one unit.

In a realistic scenario, many units are combined into components, which are in turn aggregated into even larger parts of the program. The idea is totest combinations of pieces and eventually expand the process to test your modules with those of other groups. Eventually all the modulesmaking up a process are tested together. Beyond that, if the program is composed of more than one process, they should be tested in pairs rather than all at once.

Integration testing identifies problems that occur when units are combined. By using a test plan that requires you to test each unit and ensure the viability of each before combining units, you can assume that any errors discovered when combining units are likely related to theinterface between units. This method reduces the number of places tolook for the problem.

You can do integration testing in a variety of ways but the following are three common strategies:

The top-down approach to integration testing requires the highest-level modules be test and integrated first. This allows high-level logic and data flow to be tested early in the process and it tends to minimize the need for drivers. However, the need for stubs complicates test management and low-level utilities are tested relatively late in the development cycle. Another disadvantage of top-down integration testing is its poor support for early release of limited functionality. STUB is must for this approach.

The bottom-up approach requires the lowest-level units be tested and integrated first. These units are frequently referred to as utility modules. By using this approach, utility modules are tested early in the development process and the need for stubs is minimized. The downside,however, is that the need for drivers complicates test management and high-level logic and data flow are tested late. Like the top-down approach, the bottom-up approach also provides poor support for early release of limited functionality. DRIVER is must for this approach.

The third approach, sometimes referred to as the umbrella approach, requires testing along functional data and control-flow paths. First, the inputs for functions are integrated in the bottom-up pattern discussed above. The outputs for each function are then integrated in the top-down manner. The primary advantage of this approach is the degree of support for early release of limited functionality. It also helps minimize the need for stubs and drivers. The potential weaknesses of this approach are significant, however, in that it can be less systematic than the other two approaches, leading to the need for more regression testing.

Thanks to 

Kumar Praneet Srivastav
Senior Software Engineer (QA)

Posted on Monday, August 30, 2004 1:40 PM Software Testing | Back to top

Comments on this post: Integration Testing

# re: Integration Testing
Requesting Gravatar...

Nice Article,Gives insight into the minute details.

Thanks and Regards

Deepa belur,
Software Tester,
cMango India
Left by Deepa on Sep 20, 2005 1:39 PM

Your comment:
 (will show your gravatar)

Copyright © Pavankumar Pothuraju | Powered by: