Distributed systems present two challenges: they can run on multiple machines in different physical locations and the introduction of network traffic and multithreading leads to non-determinism. Software testers have tried to identify failed executions with resource-intensive