Integration Testing

Integration testing builds upon unit testing by examining interactions between larger-scale software components, packages, and modules rather than individual functions and methods. Depending on the size of the system in question, the integration tests can be done in phases, focusing on the smaller (and/or mission critical) modules first. Subsequently, those modules are combined to examine larger subsystems until the software application is tested as a whole. This integration testing methodology is known as the bottom-up approach.

Integration testing can also be accomplished from a top-down approach where high-level components are tested first with stubs or mock objects in place of the subsystems. Again, the components are examined in iterative phases until the smallest modules are tested.
The third approach is big bang integration testing where the entire system is tested in a single phase rather than multiple iterative phases. This approach is usually reserved for small software applications.

The tools that are available for unit testing (e.g. JUnit) can also be harnessed for integration testing. Unit test suites can run a set of individual unit tests in a single execution achieving an integration test of sorts. Moreover, although they are not unit tests strictly speaking, there is no reason why testers cannot build integration tests with unit test tools, and frameworks. 

Additional considerations: