The only downside to reading this book is that it is likely to increase your sense of frustration with the widespread low quality of software development process and the resulting defective products.
The authors have a deservedly high reputation in the field of software development. They are the principal consultant partners in Grove Consultants and both are well known on the conference circuit.
They not only know their subject extremely well but also write fluently. They further enhanced the quality of their work by bringing in a number of guest contributors who flesh out the theory by contributing to case studies and experiences. This book is very definitely a distillation of many years of experience.
Those of us with any experience of software development appreciate how essential testing is to the process. Unfortunately many stop testing when their code runs and appears to deliver expected results. Some go a little further by arranging that their test data and procedures can be re-run. Some even remember to provide for regression testing so that old errors do not re-emerge in subsequent releases.
One major problem with testing is that it all too often results in delays to product release. That is not popular with management as it detracts from competitiveness and adds to the costs. Worse still, just as properly designed software takes longer to write the first time, proper testing takes longer to develop. This means that there are no immediate benefits to either designing software or designing testing. All the benefits come later and your company has to survive long enough to reap its just rewards.
This book is aimed at those who understand delayed gratification and who are in a position to direct their company towards long term benefits. If you believe that your software will still be in use in ten years time, or that there will be more than a single release of it then you already understand that time spent getting it right is time well spent. This dictum applies just as much to the process of testing as to writing source code. (Perhaps one of the strengths of Extreme Programming is its insistence on testing having equal status with code cutting.) Similarly, just as you need to have good development tools (and understand how to use them) you also need to select good test tools and understand their use. There is much more to testing than just automating your manual tests. If you do not already understand this then it is time that you read a book such as this one.
If you program professionally you should read this book so that you understand what can be achieved and encourage your management to look in appropriate directions (OK, but we need a bit of idealism). If you manage professional software development you should read this book so that you can make well informed decisions about how you ensure that the products you are responsible for are of sufficient quality for use.
If you only have time to read one book on testing this would be a strong candidate. While it focuses on the automation of software testing, it inevitably gives broad coverage to the whole topic. If you have been used to manual test regimes you may reconsider after reading this book. The only downside to reading this book is that it is likely to increase your sense of frustration with the widespread low quality of software development process and the resulting defective products.