Agile 2009: Herding Cats - Managing Large Test Suites
Herding Cats - Managing Large Tests Suites piqued my interest, as we've struggled with some aspects of automated testing recently.
- The presenter, David Kessler, has been running tens of thousands of tests on hundreds of builds of their product;
- There's a pull between fixing up tests and doing new work; keeping the build green is like herding cats;
- Many of the test failures are at their root caused by basic Java or design issues;
- They have a classic build monitor on a large screen; one refrain heard from the dev team is "it's not my build that broke!";
- Lessons they've learned include decoupling tests from one another; mocking out external services (they particularly referenced a third-party payment gateway); tracking percentages of tests which have been temporarily "turned off"; and simplifying test data;
- Complex hierarchies of tests cause problems; there's a maintenance cost here which can in part be addressed by simplifying their setup;
- Third party services need to be mocked out. A payment gateway they were working with said they were fine for automated testing, but when it got to them being hit per-build by a CI machine, they were less keen;
- Working with 3P services opens up issues of availability, network and firewall problems;
- They replaced this with a mocked out service, which also let them test edge cases easily, and backed this up with a single test of the remote service to check they could connect to it;
- Turning tests off breaks trust - "yeah we were testing for this thing, then we stopped doing it";