This tests a group of related units together and their interface. This comes from interface specifications and tests module interactions.

Failures from integration testing well-tested modules could be caused by:

  • Bad use of interfaces
  • Wrong hypothesis on the behaviour/state of related modules
  • Use of poor drivers/stubs: a module may behave correctly with simple stubs but result in failures when integrated with actual modules