Units that work together will need to communicate, and they will communicate by passing data between them. This means that integration testing is about checking that the data transfer and data representation aspects work.
Imagine that we are working on a project that is divided into several modules. To speed up development time, we let several programmers work on the separate modules. This might look something like this:
These four developers will now start to write their modules, and they will make sure that their modules meet the requirements by running unit tests on them. But the only thing these tests will show is that this module works in isolation.
But in the final application, these modules...