Ankit Mehta, a Senior Test Engineering Manager, recently shared his decade-long test engineering experience at Google by publishing the slides of his GTAC (Google Test Automation Conference) Kirkland 2014 ‘Move Fast & Don’t Break Things‘ presentation in public. It’s an awesome read. Here are a few takeaways:
- For every couple of bugs fixed, one usually gets introduced. Because of this, it is more important to not have many bugs to fix right from the very beginning. Ankit Mehta’s motto is ‘Prevent bugs and not catch them,’ which is definitely better than let’s keep finding bugs after each new software version is deployed.
- There should be a system wherein if a programmer writes code that breaks an existing test, the system will complain. If they check in code without a test, the system should also complain. This is all to prevent crappy code from finding its way into the codebase.
- A set of test cases that are manually being run over and over again should be automated, unless in circumstances where the return of investment to automate is not there. Remember, however, that test should be independent of each other in order of which they run as well as other details, and to break huge test suites into smaller units.
- Use hermetic tests, a test suite that can start up and run as expected on a single machine that has no network connection.
- Have zero tolerance for test flakiness because even one flaky test out of so many could slow down everything. Flaky automated tests are often worse than not using automated tests at all.
- Release to Production everyday.