Reliable end-to-end (e2e) tests are important for assuring code quality and encouraging refactoring, but unreliable e2e tests are harmful. To write reliable e2e tests, focus on the happy path, test only code you own, navigate directly to the screen under test, and make sure the system is in a known initial state. Avoid using Thread.Sleep and test recorders, and test only one scenario at a time.