Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing.
• In this phase of testing, individual modules are combined and tested as a group.
• Data transfer between the modules is tested thoroughly.
• Integration testing is carried out by tester.
Integration Testing scenario
Take the example of banking functionality of transfer funds and managing current balance.
like suppose current balance have Rs1000 in account after transfer fund Rs500 current balance should be 500.
This module will assign to 5 different developers to reduce coding time. i.e. Login, Current Balance, Deposit, Withdraw, and Transfer.
In integration testing we collecting all these modules together and do testing. For this we have two type
1. Big Bang Testing
2. Incremental Testing
Big Bang Testing
• Big Bang Testing: –In this testing tester will collect each and every module to do testing and after collecting all tester starts testing on full project. Big Bang testing has the advantage that everything is finished before integration testing starts.
In this type of testing we are face some limitations like Tester have to wait for all modules to be developed, it is very time consuming and it will very difficult to trace root cause of bugs.
• Incremental Testing: – For over the limitation of Big Bang Testing, Incremental Testing comes in picture. According to this type of testing modules are tested as and when they are available.
Basically, in this we are follow two approach
Top-to-Down Testing in which upper module is build first for the testing purpose tester required stub for testing test that module.
Bottom-to-Up Testing in which lower module is build first for testing purpose tester required driver for testing that module.
According to our example if developer made current balance module first then tester require stub for doing testing on that current balance module working. And if developer made transfer module first then tester require driver for doing testing on transfer module working.
Other Approach is, functional incremental and sandwich which is combination of Top-to-Down and Bottom-to-Up.
The choice of approach chosen is depends on the system architecture and location of high risk modules.