Are you a serious software tester? A software tester who wants to know not only how to select and design effective and efficient tests but who also wants to know why those tests work? A software tester who is ready to take a deep, intensive dive into the topic? A software tester who knows that you can only learn test design by practising test design, using realistic exercises? If so, this book is for you.
Forgács and Kovács deliver a masterful tour through the most important behavioural test design techniques. Each technique is explained thoroughly. Each technique is illustrated with examples, which is always necessary with complex topics. Further, they include code segments to illustrate exactly why these techniques work, showing specific defects the resulting tests will catch.
Because of their willingness to drill all the way from the technique through the tests to the specific defects in the code, this book will appeal beyond professional software testers. The field of testing, and who is interested in testing, has expanded quite a bit, thanks to the advance of concepts such as Agile and Lean methods, DevOps, continuous integration and continuous delivery, and continuous deployment. So, if you are a technical tester, a software development engineer in test, or a developer who cares about properly testing their code, this book is for you.
Just like writing good code, designing good tests requires hands-on practice to learn. This book provides an excellent, realistic example system to use as the basis for such exercises. Forgács and Kovács deliver a system that is universally understandable, that of a ticket vending machine. Better yet, their ticket vending machine successfully steers between the Scylla and Charybdis of such an exercise basis, avoiding being on the one hand so trivial as to be useless for learning or on the other hand being so complex as to distract from the techniques being taught. From my own experience writing books on test design and creating courses on test design, I know how hard it is to create a good basis for exercises, and how critical it is to do so.
So, if you have reached a point with your knowledge of software testing where you need to challenge yourself, to gain deeper understanding, to become ready to put sophisticated test design techniques into practice, then, I’ll say it again, this book is for you. Invest the time to read the explanations of the techniques, carefully study the examples, and work through the exercises. Your return on that investment will be a significant step forward in your software testing skills and abilities.