Integration Testing
Integration testing verifies that two or more separately developed modules or services work correctly together once combined — checking the interfaces and data flow between them, rather than the internal logic of any one piece in isolation. It sits between unit testing and full system testing.
Unit tests confirm each piece works correctly on its own; integration tests confirm the pieces actually talk to each other correctly — that a service call returns data in the shape the caller expects, that a database write is readable by the component reading it back, that two teams' independently-built modules actually agree on a shared contract.
Integration bugs are notoriously common precisely because unit tests, by design, can't catch them — each unit can pass its own tests perfectly while still failing when combined, if the assumptions on either side of the interface don't quite match.