Eradicating Non-Determinism in Tests

Martin Fowler discusses the problem of non-deterministic tests – tests that sometimes pass and sometimes fail. Non-deterministic tests can completely destroy the value of an automated regression suite. This article outlines how to deal with them and presents treatments for the common causes for non-determinism: lack of isolation, asynchronous behavior, remote services, time, and resource leaks.