Ancestry.com's top lessons learned from continuous software development
In an online service shop, most development teams use a shared environment for integration testing. It's important to ensure defective code isn't deployed into the testing environment where it can impact the development cycles of other teams. A full integration test with deployed dependent services should be done using an isolated testing machine. Once the build has been deemed healthy, it can be deployed to publicly accessible machines.
To test in isolation, the test subject should be removed from dependents and dependencies. This can be accomplished with fakes and mocks that simulate the actual behavior of these external components.