A level of the software testing process where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.
Why Integration Test
We feel that Integration testing is complex and requires some development and logical skill. That’s true! Then what is the purpose of integrating this testing into our testing strategy?
Here are some reasons:
- In the real world, when applications are developed, it is broken down into smaller modules and individual developers are assigned 1 module. The logic implemented by one developer is quite different from another developer, so it becomes important to check whether the logic implemented by a developer is as per the expectations and rendering the correct value in accordance with the prescribed standards.
- Many times the face or the structure of data changes when it travels from one module to another. Some values are appended or removed, which causes issues in the later modules.
- Modules also interact with some third party tools or APIs which also need to be tested that the data accepted by that API/tool is correct and that the response generated is also as expected.
- A very common problem in testing: Frequent requirement change! Many times developers deploy the changes without unit testing it. Integration testing becomes important at that time.
Advantages
There are several advantages of this testing and few of them are listed below:
- This testing makes sure that the integrated modules/components work properly.
- Integration testing can be started once the modules to be tested are available. It does not require the other module to be completed for testing to be done, as Stubs and Drivers can be used for the same.
- It detects the errors related to the interface.
Challenges
Listed below are a few challenges that are involved in the Integration Test.
- Integration testing means testing two or more integrated systems in order to ensure that the system works properly. Not only the integration links should be tested but an exhaustive testing considering the environment should be done to ensure that the integrated system works properly. There might be different paths and permutations which can be applied to test the integrated system.
- Managing Integration testing becomes complex because of a few factors involved in it like the database, Platform, environment etc.
- While integrating any new system with the legacy system, it requires a lot of changes and testing efforts. Same applies while integrating any two legacy systems.
- Integrating two different systems developed by two different companies is a big challenge as for how one of the systems will impact the other system if any changes are done in any one of the systems is not sure.
In order to minimize the impact while developing a system, few things should be taken into consideration such as possible integration with other systems, etc.
Integration Testing Steps
- Prepare Integration Test Plan.
- Prepare integration test scenarios & test cases
- Prepare test automation scripts.
- Execute test cases.
- Report the defects.
- Track and re-test the defects.
- Re-testing & testing goes on until integration testing is complete.
Types of Integration Testing
- Hybrid Approach
- Big Bang Approach