Book of the Week: How Google Tests Software

25 Nov 2016

how-google-tests-software

The first piece of advice I give people when they ask for the keys to our success: Don’t hire too many testers.

This week I read How Google Tests Software, because you need to test software in order to be productive. I assume Google (GOOG) has good processes in place, because if I suspect the internet not working, I check the Google home page. If that doesn’t load, then I assume the whole internet is down. If you want to get into testing, I’d probably start with books that talk about test-driven development instead of this book. This book is very Google-centric. The book talks about why they have a single code repository and how that helps them be productive. I feel it is more like justifying why they have a single repo rather than we have a single repo, because of these benefits. The interviews with Googlers were nice, since it is rare to see the historical process and people behind how things are now. It was a process to get from point A to point B. To get people to adopt testing, they tried to gamify it by creating different certification levels. What’s helpful in testing? Tests should be classified by size and function. Small tests should run fast and be very contained. Larger test can run slower, but should test end-to-end functionality. To avoid unnecessary duplication of effort, you need a dependence graph, so you only need to test changes that affect specific nodes of the graph. Is this book a must read? Nope. But if you’re curious about how Google does it, you get to find out about details that are rarely public.