Concepts For Software QA Engineer
American Society for Quality -- Quality Press, 2002
Cover price: US$50.00
Hardcover, 288 Pages
Fundamental Concepts for the Software Quality Engineer is a collection of twenty excellent articles, reprinted from Software Quality Professional magazine and the proceedings of recent conferences. The range of topics is wide, so readers with a variety of interests will find relevant and useful articles. Overall, the book is a good way for someone with a basic knowledge of software quality engineering methods to gain a deeper understanding of various techniques and processes, and to learn practical lessons from case studies. Many of the articles will be as interesting to software project managers and test managers as they are to quality engineers.
The structure of the book reflects that of the American Society for Quality's Software Quality Engineering Body of Knowledge, a list of topics that engineers must master in order to pass the ASQ Certified Software Quality Engineer (CSQE) test. However, this is not intended as an exam preparation textbook. Rather, it is a selection of the best two or three recent articles on each topic, so that the book as a whole presents a broad picture of current developments in the field. The eight sections of the book are:
- Standards, Principles, and Ethics
- Quality Management
- Software Processes
- Project Management
- Inspection and Testing
- Configuration Management
I'll briefly describe each of the chapters in each section so that readers can pick and choose those that align with their interests.
Standards, principles, and ethics
In this section, Watts Humphrey's article "The Software Quality Profile" describes how deploying the Personal Software Process and the Team Software Process can improve software quality and team productivity. "Choice and Application of a Software Quality Model" by Dave Miller summarizes several well-known methods of measuring software quality -- Boehm's model, Cavano and McCall's model, FURPS+, Dimensions of Quality, ISO 9126, and the SEI model -- and compares them, with an eye to helping readers choose the model that best fits their application. "Risk Management: Supporting Quality Management of Software Acquisition Projects" by Gerard Getto discusses ways to identify and manage risk when buying software and identifies key risks and how to address them.
This section includes John Elliott's "Achieving Customer Satisfaction Using Evolutionary Processes," which presents the results of an experiment using the Dynamic Systems Development Method to ensure that a software project would meet customer requirements and achieve a high level of customer satisfaction. "People Management and Development Process" by Giovanni Evangelisti, Emilia Peciola, and Cosimo Zotti is a case study of how a company improved its management practices, which led to happier employees and lower turnover. The lessons apply not just to software, but to any sort of management situation.
This section begins with "Risk Identification Techniques for Defect Reduction and Quality Improvement" by Jeff Tian. He presents a collection of risk identification techniques ranging from traditional -- such as correlation analysis -- to cutting-edge, such as artificial neural networks. In "Cost of Software Quality: Justifying Software Process Improvement to Managers," Dan Houston supplies ammunition for quality engineers trying to convince their managers to invest in process improvements. Applying the Cost of Quality technique developed decades ago by J. M. Juran for industrial manufacturing, Houston derives a method for calculating the financial impact of implementing software development process improvements -- or of failing to implement them. This is followed by Craig Smith's "Defect Prevention: The Road Less Traveled," a useful case study of one company's successful attempt to improve product quality by creating a culture of defect prevention.
In the introduction to this section, Editor Taz Daughtrey proposes that next to the Statue of Liberty should stand a companion Statue of Responsibility, as a reminder of the balance between freedom and accountability. In the software industry, as in other fields, he maintains, there is now general agreement about what constitutes acceptable practice, and therefore also about what represents deviation from acceptable practice, or malpractice. The idea of software malpractice claims is sobering, and reminds us of how far we are from a state of perfection.
"Initial Experiences in Software Process Modeling" by Ray Madachy and Denton Tarbet presents examples of how a project manager used metrics and mathematical models to make decisions about the optimal size for his project team, whether to share people among different tasks, how much code to reuse, and so on. On the flip side, Alan Weimer and R. Jack Munyan remind us how important it is to pay attention to "people issues" on a software project in "Recipe for a Successful System: Human Elements in System Development." Different though these two articles are, both have much practical advice to offer managers, and this is one of the most valuable sections in the book.
William Florac and Anita Carleton's "Using Statistical Process Control to Measure Software Processes" begins this section by applying W. E. Deming's statistical quality control methods to software development in order to ensure software stability and capability. For example, Shewart control charts that are commonly used to record and analyze metrics about the physical characteristics of manufactured objects can be used equally well to represent defect discovery rates and resolution time in a software development project. "Managing with Metrics: Theory into Practice" by Denis Meredith is a case study of a large data-scanning project that used metrics to ensure a successful result, despite such challenges as a short schedule and a ban on maintenance releases once the software was deployed. Particularly useful are specific examples of metrics and charts the project manager used. Next, "Experiences Implementing a Software Project Measurement Methodology" by Beth Layman and Sharon Rohde describes the US Department of Defense's Practical Software Measurement program, explaining how it helps identify critical issues on a project and collects metrics to see how aspects of the project affect those issues. It includes examples of how the information was used in decision making and discusses lessons learned.