Creating maintainable tests
One of the things that frequently gets forgotten in conversations about test automation is that they take time and work to maintain. The "sales pitch" for test automation is that we can run the same test over and over again "for free" but of course, that is not true. Leaving aside the hardware and software costs of running these tests, there are maintenance costs. Tests don't always pass. Sometimes, failures are due to finding a bug, but other times, it is just because the code has changed and the test needs to be updated, or because of some kind of flakiness in the system that we don't need to worry about too much. At the start of this chapter, I mentioned that one of the principles to keep in mind for well-written tests is that they should be easy to debug. They assume that there will be failures in the future that need to be debugged. So, how do you set yourself up to make sure that your tests are maintainable and easy to debug...