I was excited to learn that well-known New Zealand tester, Katrina Clokie, had decided to write a book. Her popular blog, Katrina The Tester, already provided plenty of evidence of her ability to write clearly across a broad range of topics of interest to the testing community and so I had high expectations of her book, A Practical Guide to Testing in DevOps (released through Leanpub).
The book starts off with an overview of what DevOps is (and isn’t), along with some opening thoughts around where testing fits into a DevOps culture. The next couple of chapters compare and contrast testing in development with testing in production. While those of us who’ve been in software testing for a decade or more will have been schooled to think of testing in production as a huge “no no”, the move to DevOps (along with the new engineering around it that makes excellent alerting, monitoring and rollback possible) means we need to think differently. Katrina does a great job of balancing how testing can add value during development (highlighting the importance of automation but also the high value of human exploration) and what good testing in production also looks like. This was highly useful content for me and I liked the way she introduced the concepts of A/B testing, beta testing and monitoring in production as actually being “test practices” and the risk mitigation (“exposure control”) that can come from ideas such as staged rollouts and dark launching.
The next chapter focuses on test environments, looking at the way platforms have evolved and the use of infrastructure as code, configuration management, containers and cloud. Katrina offers advice on test practices around these environments and I liked the idea of testing the infrastructure as being a part of the overall test effort in a DevOps environment (and this was something I hadn’t read about anywhere else).
A highlight chapter for me comes next in the shape of seven industry examples. Real world examples are a good way to set context and there are a broad range of industries and project types reflected here. Each case study is short but focuses on just one aspect of their DevOps journey, e.g. A/B testing or using Docker.
Just when I thought this book had peaked in its content and usefulness, the final chapter – “Test Strategy in DevOps” – proved me wrong! There is some directly applicable material in here for anyone who is currently facing the challenge of defining test strategy in a DevOps environment. The section on rethinking the test pyramid is particularly noteworthy I think, presenting the idea of a “DevOps Bug Filter”, a simple graphical representation of the way in which bugs might find their way through our various levels of testing. This looks like a very simple but effective way to communicate around a test strategy in a DevOps environment and I certainly intend to make use of it!
In her preface, Katrina says:
This book is for testers who want to understand DevOps and what it means for their role. It’s also for people in other roles who want to know more about how testing fits into a DevOps model. I hope to encourage people to explore the opportunities for testing in DevOps, and to become curious about how they might approach quality in a different way.
She’s achieved this mission, but also so much more in my opinion. This book offers so much practical content, much of which I feel is applicable to a wide variety of software development projects and not just those “doing DevOps” – I actually see it as more of a manual for what software testing looks like in the modern world.
Katrina’s book is a steal at the suggested Leanpub price of $15 (and, to her credit, she is also making it available for free), a worthy new addition to the essential toolkit for anyone involved in software development and testing.
(A quick plug for the CASTx18 conference coming in Melbourne early in 2018 (for which I’m Program Chair), Katrina is both a keynote speaker and a tutorial presenter so this conference offers a great opportunity to hear more from her.)