Test Harnesses
Learn about integration testing, out-of-spec failures, system isolation, test harnesses, and mock objects.
We'll cover the following...
Integration testing
As we’ve seen in previous chapters, distributed systems have failure modes that are difficult to provoke in development or QA environments. To be more thorough about testing various components together, we often resort to an “integration testing” environment. In this environment, our system is fully integrated to all the other systems it interacts with.
Integration testing presents problems of its own, however. What version should we test against? For greatest assurance, we’d like to test against the versions of our dependencies that will be current when we release our system. We could prove by induction that this approach constrains the entire company to testing only one new piece of software at a time. Naturally, the proof itself is left as an exercise for the reader. Furthermore, the interdependencies of today’s systems create such an interlocking web of systems that an integration ...