What is System Integration Testing In Software Testing: In integration testing separate units and combined together and tested as a group. here the main goal of doing integration testing is when different modules are integrated they are working as expected and also we confirm that the units are working fine individually also there are no issues when they are integrated.
Normally integration testing is carried out after performing unit testing. once we have tested each unit then we combine those tested units and start doing integration testing. we have to understand one thing that integration testing is not happening at the end of the cycle, it is happening parallel with the development. so one major challenge that comes doing integration testing is that some modules are not developed during the time of integration.
Read Also: Software Tester Principles
Advantages of integration testing
- Because of integration testing, we can sure that the integrated modules are working properly.
- It can be started once the unit module is tested and available. we need not wait until all modules are developed because in the place of undeveloped modules we can use stub and drivers.
- it helps in detecting defects related to the interface.
- Minimal the risk or failures
- verify the functional and non-functional behavior of the interface as expected in design and functional documents.
- to restrict defects from escaping to higher test levels.
Different Integration Testing Approaches
There are different approaches that are present in integration testing but out of the few are very popular like Big bang approach, top-down approach, bottom-up approach, incremental approach. out of all these approaches, the choice depends on various factors like cost, the complexity of the application. let us discuss in details of popular approaches for better understanding them:
Big Bang Approach: it is the simplest model of integration testing. in this approach once all modules are developed and tested then all modules are combined and tested together as a group. this approach is good when your project is small because in a larger project it will be very much difficult to find out the defect from a large number of unit modules. so reported error debugging in this approach is very much costly.
Advantages of Big bang approach
- when your testing for small project or product then it is good to use.
- In this approach, you have to wait until all modules are developed and tested then only you can go for integration, so here there are more chances of delay.
- You can’t test high-risk modules separately because all modules are tested at once.
Bottom-up Approach: as the name suggests, here the innermost module will test first after that it gradually moves up to the upper modules of the application. this integration will continue until you integrate all modules and tests as a single unit. if during the integration time being if the higher module is not developed then you can use drivers to simulate to the higher levels.
As the integration process started from the innermost module so if there is any defect in those modules then that can found in the early stage so we can take necessary action to fix those defects.
- if some higher module is not developed then in that time we are using simulators like driver and we proceed for further integration. so if there is any defect is present in the not developed modules which we called driver then during the final integration we may get those defects at the end.
- it is required to create the drivers for all the levels except the top module.
Top-down approach: In this approach, the integration process will start from the topmost module and after that gradually progress towards the lower modules. the topmost module is first tested in isolation and after that lower modules are integrated and this process will continue until all lower modules are integrated and tested.
During integration from top to down modules if any lower module is not developed then we can use simulators called “stubs”.
When we are Doing a top-down approach or bottom-up approach then we are using some simulators that are called stubs and drivers.
Entry and Exit Criteria of Integration Testing
- Before start integration, the unit test should be completed for modules.
- High priority and critical bugs must be fixed and closed.
- All modules should be completed and integrated successfully.
- The test environment for integration testing must be set up.
- Successfully testing the integrated application.
- all high priority bugs must be closed and fixed.
Please write comments if you find anything incorrect, or you want to share more information about this topic discussed above then you can write in the comment box.