This is the testing book I’ve been waiting for. It’s nice that the authors understand and include some testing theory, but what sets this book apart in my mind is that it is written by practitioners who also have real pragmatic testing experience and a deep understanding of important issues.
Also of critical importance in these days of ubiquitous embedded systems and the internet of things (IoT), is that the authors recognise and explicitly state issues related to hardware that also have to be considered. For example, in their running example of the ticket vending machine, they mention various types of testing that would have to be included, related to the physical machine. I’ve found that most students, and even many practitioners, just assume that the only possible problems that need to be considered are ones related to the code itself.
Other nice features are the device the authors use at the beginning of each chapter, a brief summary of what is to come (‘Why is this chapter worth reading?’) as well as a brief wrap-up that comes at the end of the chapter (‘Key takeaways’); and that each chapter has non-trivial examples and exercises.
Finally, it is really important that the authors have included issues related to testing systems developed using modern software development strategies such as Agile and DevOps.
This is a book that both students and practitioners can use to hone their software testing skills.