Integration testing, sometimes known as Integration and Testing (I&T), is a software testing methodology implemented to test combined program units of code or individual software components, verify interaction between different software components, and detect the defects in the interface, if any. Components are either organized iteratively or as a single group in this type of software testing. The process of integration testing is usually performed to make the components readily available for system testing.
Simply put, the process of combining two tested units into a component and testing the interface between these two tested units is known as Integration Testing. ‘Component’ in this method of software testing is an integrated aggregate of more than a single unit. The main idea of the integration testing method is not only to test the combinations of units, but to expand the process and test the modules with that of other groups.
Integration testing is a component of ‘Extreme Programming’ which is a practical approach to build a product through continual testing and revision. This method of software testing should only be done when all units are operating in accordance with the unit specifications.
Why Integration Testing is Needed
Integration Testing is indispensable in the software testing process because it verifies the performance, reliability, and functional requirements of key design items (or assemblages). These are tested through their own interfaces using the black box testing method, with the success and error cases getting simulated via data inputs and appropriate parameters. Depending on the definitions of the ‘units’, one can use black box, white box, or even the gray box testing method to perform integration testing.
Process of Integration Testing
Big Bang Testing:
In this approach, all or most units are combined and tested in one go. The big bang testing approach is taken when the testing team has received the software in one bundle. The major difference between this approach and system testing is that the former is used to test only the interactions while the latter is used to test the complete system.
Where the top level units are tested first, followed by the lower level units is referred to as the top-down integration testing approach.
The exact opposite of the top-down testing approach is the bottom-up testing approach. This approach is the most beneficial when all or most of the modules of the same level of development are ready. Bottom-up testing also makes it easy to report the testing progress in terms of percentages.
Sandwich / Hybrid Testing:
This approach is a combination of both the top-down testing and bottom-up testing approaches.
Out of the above-mentioned approaches, only top-down and bottom-up approaches are used generally.
Steps to Create Test Cases in Integration Testing
Test cases in the integration testing method are created to ensure that all components within the design items are interacting correctly. To design the test cases efficiently, one will have to follow these below-mentioned steps.
Step 1: Identifying Unit Interfaces:
In this step, each program unit’s developer identifies and documents the unit’s interfaces to:
— Respond to terminal queries for information — Manage transaction data which was entered to process — Obtain, update, and create transaction on computer files — Pass or receive vital information from different logical processing units — Send message to terminals — Provide the results of processing to some unit or output device
Step 2: Reconciling Interfaces for comprehensiveness:
This step involves collection of information that is needed for the integration test template for all program units in the software which is being tested. Whenever a unit interfaces with another, the interfaces are reconciled. Those which do not reconcile are examined before execution of the integration tests.
Step 3: Creating Test Conditions:
Preparation of one or more test conditions for integrating program units is done in this step. Once the condition is created, the test condition’s number is documented in the test template.
Step 4: Evaluating the Comprehensiveness of the Test Conditions:
Lastly, the comprehensiveness of the test conditions which were recorded on the testing template is evaluated to ensure that the process of I & T has been successful.
If the process of integration testing is done properly, it can not only reduce the risk of interface defects, but it can also reduce the chances of the defects being caught by the client during the UAT phase.