Handbook of Software Quality Assurance
This book is a revised edition of collected articles spanning the Software Quality Assurance field. For those who already have the first edition there are four new chapters and some updating to a few of the existing chapters. The authors have done a good job tying the diverse chapters together and overcoming the multi-author problem inherent in a collection like this. The book remains a definite must for those working under DoD standards. It offers a lot of interesting information for others as well.
Review By: Cathy Bell
08/26/2002
If you purchase this book with the intent of learning Software Quality Assurance, it would meet your needs and in many cases exceed your expectations. The authors leave no facet of quality untouched as it applies to software.
Do you currently work in the software quality assurance field and want to discover the best ways to staff, organize, and improve your current QA team? Have you been challenged to show that your quality assurance department is providing a value-added service to the company, or is your challenge an assessment to determine your organization’s effectiveness in supporting the quality improvement processes of the SEI Capability Maturity Model? The authors present material that will give you the basics needed to accomplish these tasks, and often provide guidance on how to obtain further information.
The theme of this book is that there are best practices for all phases of SQA, but the practice that works best within your organization may not be a carbon copy of the practices of any other organization. SQA best practices are a framework for quality and each organization has the flexibility to apply these practices within that framework. Standards, often a requirement when dealing with government agencies, seem to contradict this philosophy, but as they are explored (chapter 4) we are reminded that standards are worthwhile only if they are implemented as part of your total quality improvement process. Meeting standards does not always mean a quality product will be produced and not all standards fit all situations.
The book begins with an overview of the components of quality, exploring its many definitions, attributes, and generally accepted means of attaining software quality. However, this is not a dry book of facts and figures. Experts in the field of software quality and real life examples are used for insight and guidance on how we can continue to mature the entire process.
We learn about the accepted experts of quality: Ishikawa, Juran, Deming, and Crosby. How do they apply quality principles to the production of software? Chapter 3 introduces us to these experts, and their influence on software quality, particularly within the United States.
Chapters 5 and 6 detail how to set up and implement a software quality program and how to identify and retain the best people for your SQA team. Do the members of your quality assurance team have a career path, or will they be forced to move elsewhere within the organization to continue career growth? There is a very beneficial appendix for chapter 6, “Typical Software Quality Related Job Descriptions.”
Is certification in your future? Chapter 7 outlines the requirements for the American Society for Quality (ASQ) Software Quality Engineer Certification. The material in this chapter contains the “hows” and “whys” of the certification process as well as an outline of the Body of Knowledge for the Software Quality Engineer (pages 182-188).
Chapter 8 deals with a subject that all quality assurance teams have to deal with at one time or another--the cost of quality. How do we show that the cost of quality is less than the cost of not performing quality tasks? We are given an abundance of charts, tables, and forms to help us calculate the true cost of quality and show the benefit of our quality practices.
Want to tackle inspections, configuration management, apply the Pareto Principle, begin the process of attaining Level 5 in Software Engineering Institute's Capability Maturity Model (CMM) for Software, apply further statistical analysis to QA practices, or look at the role of SQA in mission critical software? Maybe you are investigating Computer Aided Software Engineering (CASE) tools, software reliability engineering and its associated statistics, or have been assigned the task of determining what metrics would be useful to show the impact that software quality has had on your organization. These topics are covered in chapters 9 through 19.
We’ve learned a lot to this point, but how do we bring it all together? Chapter 17 covers the practical application of SQA practices. There are many examples of how SQA practices can be applied to commercial software and a case study that ties it all together in one application. “The experiences, solutions, and results are real (only the names have been changed to protect the innocent!). (page 526)
Chapter 21 deals with the subject of software safety and its relation to software quality assurance. This is an issue that often jumps to the attention of the public when a software problem brings catastrophe and in the worst case, costs human lives. We are introduced to the concept of the Hazard Risk Index and the best practices to date to make software safety an integrated, proactive process.
How often do we explain our testing efforts to a developer, manager, or project team, only to have them ask, “Why would anyone do that?” If they read this book, they would understand not only what we do, but why we do the things we do. I added the category “anyone about to marry or currently married to a QA professional” to the recommended readers of this book to emphasize this point. We all take our work home with us, and explaining what we do to a spouse can be more grueling than getting a developer to reproduce a bug that we can reproduce at will.
It covers what we do as quality assurance professionals and gives insight into why we do things.
This book is written to teach. The language is clear and concise. The topics are covered in a logical order where you build on what you have learned as you work your way through the book.
There are plenty of real life examples, charts, forms, and a list of references for each chapter that should make this book a “must have” for every quality assurance team. This would make an excellent course book for a college course on quality assurance (now if we could only convince a few more colleges of the benefit of training future quality assurance professionals and making quality assurance a required course for those who choose software development as their vocation).
I actually read the book cover to cover and have many pages “tagged” for future reference.