Integration testing is a type of testing where individual software modules are logically integrated and tested as a group. This testing is done to test that individual modules work as expected when they are combined.
Each individual module (units) is first tested in isolation. Once unit testing has been performed, these units are integrated. The integration testing is then performed to validate that the modules work as expected when combined.
Integration testing is not necessarily performed at the end of software development. Instead, it is performed throughout the development life cycle as the individual modules get developed.
There are four basic approaches to integration testing:
In Big Bang integration testing, all the components are integrated and tested together in one go.
Top Down integration testing involves testing top-level units first and then moving on to testing lower-level units.
Bottom up integration testing involves testing the lower level modules first. These tests are then used to test higher level modules until all the modules are tested.
Sandwich integration testing is a combination of the Top Down and Bottom Up approaches.