Page 248 -
P. 248
CHAPTER 8 SOFTWARE QUALITY ASSURANCE 219
The test section references the Software Test Plan and Procedure (Chapter 18). It
also defines test record-keeping requirements. Problem reporting and corrective action
defines procedures for reporting, tracking, and resolving errors and defects, and iden-
tifies the organizational responsibilities for these activities.
The remainder of the SQA Plan identifies the tools and methods that support SQA
activities and tasks; references software configuration management procedures for
controlling change; defines a contract management approach; establishes methods
for assembling, safeguarding, and maintaining all records; identifies training required
to meet the needs of the plan; and defines methods for identifying, assessing, moni-
toring, and controlling risk.
8.12 SUMMARY
Software quality assurance is an umbrella activity that is applied at each step in the
software process. SQA encompasses procedures for the effective application of meth-
ods and tools, formal technical reviews, testing strategies and techniques, poka-yoke
devices, procedures for change control, procedures for assuring compliance to stan-
dards, and measurement and reporting mechanisms.
SQA is complicated by the complex nature of software quality—an attribute of
computer programs that is defined as "conformance to explicitly and implicitly spec-
ified requirements." But when considered more generally, software quality encom-
passes many different product and process factors and related metrics.
Software reviews are one of the most important SQA activities. Reviews serve as
filters throughout all software engineering activities, removing errors while they are
relatively inexpensive to find and correct. The formal technical review is a stylized
meeting that has been shown to be extremely effective in uncovering errors.
To properly conduct software quality assurance, data about the software engi-
neering process should be collected, evaluated, and disseminated. Statistical SQA
helps to improve the quality of the product and the software process itself. Software
reliability models extend measurements, enabling collected defect data to be extrap-
olated into projected failure rates and reliability predictions.
In summary, we recall the words of Dunn and Ullman [DUN82]: "Software quality
assurance is the mapping of the managerial precepts and design disciplines of qual-
ity assurance onto the applicable managerial and technological space of software
engineering." The ability to ensure quality is the measure of a mature engineering
discipline. When the mapping is successfully accomplished, mature software engi-
neering is the result.