
Software Testing - Integration Testing
Software testing has multiple stages beginning with the unit testing, integration testing, system testing, and the acceptance testing. Big bang testing, bottom up integration testing, top down integration testing, and the mixed integration testing come under the integration testing. It is performed right after unit testing of individual components of the software.
What is Software Integration Testing?
The software integration testing is done to check if communication between the different components of the software is working fine. The primary objective of integration testing is to detect bugs while numerous components of the software are combined. It is conducted once the unit testing has been completed, and just before the software moves on to the system testing phase.
Thus the integration testing helps to identify errors in the early stages of the software development life cycle(SDLC), and minimizes the probability of finding integration issues at the later stages when it becomes costly to fix them. The integration testing is conducted by selecting the unit by unit of a software in a logical sequence.
Why is Software Integration Testing Done?
The software integration testing is done for the reasons listed below −
- The software integration testing is conducted to verify if all the components of the software are working together as a single unit.
- The software integration testing is used to check if all the components are compatible with each other, and there are no interface issues between them.
- The software integration testing helps to enhance the overall quality, performance, and reliability of the software.
Different Types of Software Integration Testing
The different types of the software integration testing are listed below −
Big Bang Integration Testing
It is the first type of integration testing and performed after the individual components of the software are ready and merged at a time. It is done to test whether all the units of the software are in conjunction with each other.
The big bang testing is taken up for projects where there is a strict deadline for delivery. Also, in circumstances where individual units cannot be combined incrementally, the big bang testing is used. It is an optional testing approach and generally not suitable for complex projects.
Let us take an example of software having the components X1, X2, X3, X4, and X5. Once all of them are ready, they can be blended together logically all at once. The complete software is then tested to check whether all the components X1, X2, X3, X4, and X5 are working correctly as a single unit. This is called the big bang testing.
Advantages of Big Bang Integration Testing
The advantages of the big bang testing are −
- It can be incorporated easily for small software having less dependencies among different modules.
- It is not difficult to use the big bang testing approach.
- It can be adopted very fast and does not require extensive planning.
Disadvantages of Big bang Integration Testing
The disadvantages of the big bang testing are −
- It delays the release of the software as all the components need to be prepared to begin the process.
- It is difficult to identify the root cause of bugs because all the components have already been merged.
- If the individual units are not verified, it degrades the quality of the software.
- It turns out to be ineffective if the big bang testing does not follow an incremental approach, thereby leading to errors lying undetected till the time all the units have been merged and tested.
- It is not a scalable approach for the complex software having dependencies on a large number of units.
- It does not give a proper visibility on the software quality until the time all the units have been integrated and verified.
- It is considered as a high risk approach.
Bottom Up Integration Testing
It is a second type of integration testing where each module is first verified and then they are incrementally amalgamated with other modules to form a complicated system until the complete software is tested. The lower level modules are validated first followed by the higher level ones.
It is a user-friendly testing methodology and helps to enhance the software quality. Let us take an example of a car which consists of numerous units like accelerator, brakes, engines, wheels, steering wheel, fuel control, clutch etc. At first each individual unit is tested separately, and then integrated with others. For example, the accelerator system is verified first then merged with the engines. Post the integration, the communication, flow, synchronization etc between the two units are checked. Both of them should be able to function together as a single unit. In this way, it helps to identify faults early, rather than verifying all the features of the car after it is completely manufactured.
Advantages of Bottom Up Integration Testing
The advantages of the bottom up integration testing are −
- It does not require the use of stubs.
- Numerous disjoint components can be tested at the same time.
- The test conditions can be implemented easily.
- The test results can be analyzed easily.
Disadvantages of Bottom Up Testing
The disadvantages of the bottom up integration testing are −
- It is mandatory to create the drivers.
- It is difficult to manage if the software comprises a large number of complex sub-systems.
Top Down Integration Testing
It is a third type of integration testing where the characteristics of the lower level components which are not yet combined are simulated. The testing is conducted from the top to the bottom levels components.
Advantages of Top Down Integration Testing
The advantages of the top down integration testing are −
- It contains independent debugged components.
- Very few drivers are required.
- It is easy to detect interface bugs.
- Errors can be found at the early stages of the SDLC.
Disadvantages of Top Down Integration Testing
The disadvantages of the top down integration testing are −
- It requires creation of multiple stubs.
- It does not cover much of the lower level components of the software.
- It is difficult to analyze the test results.
- Creation of stubs is not easy.
Mixed Integration Testing
It is the fourth type of integration testing which combines the characteristics of both the top down and bottom up integration testing approaches, and removes their individual shortcomings. It is also called as a sandwiched or hybrid integration testing methodology.
Advantages of Mixed Integration Testing
The advantages of the mixed integration testing are −
- It can be adopted for huge projects having a large number of components.
- It plugs in the shortcomings of both the top down integration and bottom up integration testing.
- The testing can be performed both from the top, and from the bottom simultaneously.
Disadvantages of Mixed Integration Testing
The disadvantages of the mixed integration testing are −
- It is costly to adopt mixed integration testing.
- It is not good to adopt this approach for small software.
Applications of Software Integration Testing
The applications of the software integration testing are listed below −
- It helps to identify each component of the software which needs to be integrated and tested.
- It creates a test plan consisting of all the integration scenarios and use cases which need to be tested.
- It assists in creating a test environment which is similar to the production environment where the integration tests can be executed.
- Run the integration tests as per the test plan and then analyze the test results.
- The integration test results are evaluated and the defects are reported.
- Retest the fixed defects and all the integration test cases need to be re-executed.
Different Tests for Software Integration Testing
The different tests for the software integration testing are listed below −
- Interface Test Cases
- Functional Test Cases
- Data Integration Test Cases
- Dependency Test Cases
- Performance Test Cases
- Security Test Cases
- Compatibility Test Cases
Differences Between Software Integration Testing and Unit Testing
The differences between the software integration testing and unit testing are listed below −
Sr.No. | Unit Testing | Integration Testing |
---|---|---|
1 | Individual components of the software are tested separately. | Individual components of the software are combined and are tested together. |
2 | Testers are aware of the internal code of the software. | Testers are unaware of the internal code of the software. |
3 | It is the first level of testing. | It comes after the unit testing has been completed. |
4 | It follows the white box testing technique. | It follows the black box testing technique. |
5 | Conducted by the developers. | Conducted by the testers. |
Conclusion
This concludes our comprehensive take on the tutorial on Software Integration Testing. Weve started with describing what is software integration testing, why is the software integration testing done, what are the different types of the software integration testing, what are the applications of the software integration testing, what are the different tests for software integration testing, and what are the differences between the software integration testing and unit testing. This equips you with in-depth knowledge of Software Integration Testing. It is wise to keep practicing what youve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.