Page 238 -
P. 238
CHAPTER 8 SOFTWARE QUALITY ASSURANCE 209
software organization should experiment to determine what approach works best in
a local context. Porter and his colleagues [POR95] provide excellent guidance for this
type of experimentation.
8.6 FORMAL APPROACHES TO SQA
In the preceding sections, we have argued that software quality is everyone's job;
that it can be achieved through competent analysis, design, coding, and testing, as
well as through the application of formal technical reviews, a multitiered testing strat-
egy, better control of software work products and the changes made to them, and
the application of accepted software engineering standards. In addition, quality can
be defined in terms of a broad array of quality factors and measured (indirectly) using
a variety of indices and metrics.
Over the past two decades, a small, but vocal, segment of the software engineer-
ing community has argued that a more formal approach to software quality assur-
XRef
ance is required. It can be argued that a computer program is a mathematical object
Techniques for formal [SOM96]. A rigorous syntax and semantics can be defined for every programming
specification of
software are language, and work is underway to develop a similarly rigorous approach to the spec-
considered in Chapter ification of software requirements. If the requirements model (specification) and the
25. Correctness proofs
are considered in programming language can be represented in a rigorous manner, it should be pos-
Chapter 26. sible to apply mathematic proof of correctness to demonstrate that a program con-
forms exactly to its specifications.
Attempts to prove programs correct are not new. Dijkstra [DIJ76] and Linger, Mills,
and Witt [LIN79], among others, advocated proofs of program correctness and tied
these to the use of structured programming concepts (Chapter 16).
8.7 STATISTICAL SOFTWARE QUALITY ASSURANCE
Statistical quality assurance reflects a growing trend throughout industry to become
more quantitative about quality. For software, statistical quality assurance implies
the following steps:
? What steps 1. Information about software defects is collected and categorized.
are required
to perform
statistical SQA? 2. An attempt is made to trace each defect to its underlying cause (e.g., non-
conformance to specifications, design error, violation of standards, poor
communication with the customer).
3. Using the Pareto principle (80 percent of the defects can be traced to 20 per-
cent of all possible causes), isolate the 20 percent (the "vital few").
4. Once the vital few causes have been identified, move to correct the problems
that have caused the defects.