This book is truly a "how-to" guide for software quality assurance professionals. It addresses new concepts such as process assurance and the use of filters. The book also includes clearly defined and well-rounded discussions of software quality standards, software quality assurance reviews, basic concepts of measurements, and a process-improvement road map.
Perhaps one of the most useful elements is the Appendix that contains many checklists and templates. As an added bonus, the authors have included a disc in the back of the book with files containing ready-to-use filters and templates.
Review By: Kenneth Athon 07/09/2010
The authors of this how-to guide and toolkit explore a wide range of quality-related topics. Included are
techniques for Process Assurance and causes of failure in Process Assurance;
techniques and activities to ensure product quality;
software-quality standards in the product-delivery process;
building an effective Software Quality Assurance organization;
contents of an SQA Plan and guidelines for SQA reviews;
test cycles and developing a successful test plan;
basic concepts of metrics including tips and seven commonly tracked measures;
the misuse of statistics in software development; and,
risk management as it relates to quality.
Also included is an Appendix of twenty checklists and templates, which are also reproduced on an accompanying diskette.
A specific area that gets a lot of attention is Dependency Analysis. The negative impact that dependencies and spaghetti code have on software maintenance is well stated, and the theory that eliminating them will eliminate unit and regression testing earns dependency-free structured programming a place of honor in this text.
For those contemplating formalizing their quality standards, the authors present a Process Improvement roadmap. A seven-step game plan is offered to start one on a path of changing the corporate culture and the “never-ending journey” toward continual process improvement. The text includes an in-depth comparison of the Software Engineering Institute’s Capability Maturity Model (CMM) and the International Organization for Standardization’s (ISO) 9000 and 9000-3 Standards.
The authors’ main premise, presented as a brand new paradigm, is that a great deal of traditional "at-the-end-of-the-lifecycle" testing turns out to be unnecessary when the development process itself is super-rich in quality controls. The authors call these quality controls “filters.” Bugs that get past the filters are process failures. Thus, "at whatever point in the product-delivery process an error has been encountered, the filters and audits help us instantly fix and improve the process and the product it creates. This is our concept of quality," according to Jarvis and Crandall. Their focus is to concentrate on preventing quality problems rather than “inspecting them out” after they have occurred.
The authors have included checklists as filters for every phase of the software-development lifecycle. For those readers who already incorporate robust quality efforts in their processes, these checklists will be "second opinions" to compare with their present procedures. However, for those readers who have unstructured, undocumented, or lackluster procedures, the authors’ checklists can be foundations for better quality. This is an example of how almost everyone concerned with software quality will find something useful among the many topics presented here.
A shotgun approach such as this means that many areas are touched upon, but not always in-depth. At times the narrative is elementary while at other times the text is esoteric. Likewise, some of the checklists and templates are extremely simple and sparse, while others are quite in-depth. So, depending upon the reader’s level of expertise, experience, involvement, or authority, the reader can at different times be bored, intrigued, engaged or enlightened by this text. For those readers who find that their main interests are skimmed over, the book includes more than 175 references for additional reading.