Mastering Software Quality Assurance: Best Practices, Tools and Techniques for Software Developers
Mastering Software Quality Assurance is a comprehensive reference on quality assurance as it pertains to software development that addresses all four dimensions of quality. It explores a process-driven approach to quality and provides the information and guidance needed for implementing a process quality model in your organization.
Review By: Stuart M. Miller
06/03/2011
This book is a good read for anyone interested in becoming a software tester or someone who already works in the industry and wants to increase his knowledge of more complex testing and verification concepts. It is broad enough to give a general understanding of the QA process, yet also includes details regarding test methods and strategies that can be incorporated by someone already familiar with the topic.
The book opens with an overview of what quality means, as well as how it became part of the software development process. The author differentiates between simple functional testing and “assurance of quality” by introducing the concept of “verification” and citing real-world scenarios that cover several aspects of verification and show when it is necessary. I have found that many people outside of a true QA environment have difficulty with this distinction.
There are several chapters in the book covering testing strategies (white box, black box) and approaches to test case creation (boundary testing, negative testing). The level of detail is, again, such that it is informative for a newcomer yet probably adds to the knowledge of an experienced tester, allowing him to incorporate some of the methodology into his current test efforts. I found that most of the concepts could be applied to traditional (waterfall) development or agile projects.
I liked the detail level that the author used. It covers general QA topics, and it introduces concepts such as CMM or ISO9000 but does not exhaustively explain them.
Adding to the book’s value, there is a huge appendix with examples of most every QA deliverable imaginable, including measurement (metrics) examples, testing guidelines, and QA plans. In addition, the publisher offers many of these templates as downloadable resources.
If I were to change anything in this book, I would omit the proposal for a new paradigm. It seemed to inject the author’s personal viewpoint, as opposed to meeting the perceived goal of the book, which is to educate the reader on software quality concepts.
Overall, I enjoyed reading this book and will use it as a reference.