Search⌘ K

Test Harnesses

Explore how test harnesses help verify distributed system behavior under failure conditions by emulating remote system faults beyond standard integration tests. Understand their role in creating resilient software that handles out-of-spec scenarios and enhances system isolation.

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 ...