Arunkumar Khannur's Software Testing Knowledge Center

4.4. Integration Testing

Integration testing involves integrating independent software units or components to form a sizeable build and then testing the assembly. The purpose of Integration test is to prove that all areas of software units or components interface with each other correctly and also to verify functionality that there are no gaps in the data flow. Thus functionality testing starts at integration level where in functionality of implemented feature is being tested. Integration Testing commences on updated version of code obtained after completion of unit and functional testing and also, after fixing critical errors reported thereby.
Integration Testing takes place either in development environment or in test environment using real data (data which was processed on the legacy system and is now being re-used for testing), if possible; else simulated data created to model real data.

4.4.1. Integration Test Expectations
Integration testing tries to fulfill following expectations:
  • The primary emphasis is verification of each module and inter-modular interfaces.
  • It tries to test all testable requirements (ideally) at least once by the end of integration testing.
  • Hardware specifications and COTS software units or components/major modules/subsystems should be verified for correctness and compliance with specifications (e.g., report generation tool, mailing system, etc.).
  • In case modules require data from other external applications, then we may need to verify external interfaces. This may require coordination with other departments, agencies or companies.
  • Some rudimentary performance tests may be conducted and used to get a feeling about the entire system that would be built down the line.
  • Documents shall be verified in order to verify whether they are updated to reflect fixes and changes, including in-line code comments and unit/module/function headers, design documents, user manuals, user training materials, help desk procedures or bulletins, and help files. This may be delayed until System Test, depending on change stability and resources.

4.4.2. Integration Test Considerations
Integration testing involves:
  • Integrating independent software units or components to form a sizeable build and then testing the assembly.
  • To find any issues in interfaces among units or components
  • To find any gaps in the data flow.

4.4.3. Tasks in Integration Testing
Following are the tasks to be carried out to complete the Integration testing
  • Integrate software units or modules
  • Perform Integration testing
  • Prepare Integration Test Report
Each of these tasks is explained in detail below

Integrate Software Units or Modules
Integrate the Unit tested Software components or Functional Tested modules. Integration can be accomplished in the following two ways:
  • Top Down Integration: Top Down Integration is an incremental approach to construction of program structure. Modules are integrated by moving downward through the control or unit hierarchy, beginning with the main control module (main program). Modules subordinate to the mail control module are incorporated into the structure in either a depth – first or breadth - first manner.
  • Bottom Up Integration: Bottom Up integration testing begins construction and testing with atomic modules (i.e. modules at the lowest levels in the program structure).

Perform Integration Testing
  • Integrate software units to create modules
  • Perform integration testing by executing all the identified test cases or test scripts.
  • Log issues arising during the testing

Prepare Integration Test Report
Test Report captures the result of the integration test activity. After testing, a detailed test report shall be generated to analyze the test results and take corrective actions. The Test report contains results of the testing, indicating the compliance or non-compliance of the specific requirement.
Khannur's Book
Arunkumar Khannur, Software Testing - Techniques and Applications, Published by Pearson Publications, 2011 (ISBN:978-81-317-5836-6; Pages:341 + xxii)
Follow Khannur
Khannur's Company
ISQT Process & Consulting Services Pvt. Ltd., Bangalore, INDIA
Khannur's Software Testing Forum
 Contact Khannur
ISQT Process & Consulting Services Pvt. Ltd.
#732, 1st Floor, 12th Main,
3rd Block, Rajajinagar,
Bangalore - 560010, INDIA
Phone: +91 80 23012511
Skype: arun.isqt