In unit testing, individual chunks of software are verified. Whereas, integration testing checks multiple components for correctness.
The goal of integration testing is to confirm software works in a group.
Integration testing makes common use of stubs and drives.
- A stub is a fake called program, it allows for the testing of the program calling the stub.
- A driver is a fake caller program, it allows for the testing of the program called by the driver.
There are four main approaches to integration testing.
- Big-bang: all the software modules are created and combined at once.
- Bottom-up: low-level components are tested by using drivers before high-level components.
- Top-down: first high-level modules are tested by using stubs before low-level components.
- Mix-integration (aka sandwich testing): a combination of the bottom-up and top-down approaches.
- Integration testing is an important way of verifying that larger chunks of code and services work together as intended.
- Integration testing often requires a significant amount of extra code in the form of stubs and drivers to be written.
Integration tests are just one kind of testing. My series on software testing and its methods covers many other testing variations.