Page 224 -
P. 224
CHAPTER 8 SOFTWARE QUALITY ASSURANCE 195
ing diskettes is a trivial manufacturing operation, and we can guarantee that exact
duplicates of the software are always created.
Or can we? We need to ensure the tracks are placed on the diskettes within a
specified tolerance so that the overwhelming majority of disk drives can read the
diskettes. In addition, we need to ensure the magnetic flux for distinguishing a zero
from a one is sufficient for read/write heads to detect. The disk duplication machines
can, and do, wear and go out of tolerance. So even a “simple” process such as disk
duplication may encounter problems due to variation between samples.
Controlling variation is
the key to a high- But how does this apply to software work? How might a software development
quality product. In the organization need to control variation? From one project to another, we want to min-
software context, we imize the difference between the predicted resources needed to complete a project
strive to control the
variation in the process and the actual resources used, including staff, equipment, and calendar time. In gen-
we apply, the eral, we would like to make sure our testing program covers a known percentage of
resources we expend, the software, from one release to another. Not only do we want to minimize the
and the quality number of defects that are released to the field, we’d like to ensure that the variance
attributes of the end in the number of bugs is also minimized from one release to another. (Our customers
product.
will likely be upset if the third release of a product has ten times as many defects as
the previous release.) We would like to minimize the differences in speed and accu-
racy of our hotline support responses to customer problems. The list goes on and on.
8.1.1 Quality
The American Heritage Dictionary defines quality as “a characteristic or attribute of
something.” As an attribute of an item, quality refers to measurable characteristics—
things we are able to compare to known standards such as length, color, electrical
properties, and malleability. However, software, largely an intellectual entity, is more
challenging to characterize than physical objects.
Nevertheless, measures of a program’s characteristics do exist. These properties
include cyclomatic complexity, cohesion, number of function points, lines of code,
and many others, discussed in Chapters 19 and 24. When we examine an item based
on its measurable characteristics, two kinds of quality may be encountered: quality
of design and quality of conformance.
Quality of design refers to the characteristics that designers specify for an item. The
“It takes less time to
do a thing right than grade of materials, tolerances, and performance specifications all contribute to the
explain why you did quality of design. As higher-grade materials are used, tighter tolerances and greater
it wrong.” levels of performance are specified, the design quality of a product increases, if the
Henry Wadsworth product is manufactured according to specifications.
Longfellow
Quality of conformance is the degree to which the design specifications are fol-
lowed during manufacturing. Again, the greater the degree of conformance, the higher
is the level of quality of conformance.
In software development, quality of design encompasses requirements, specifica-
tions, and the design of the system. Quality of conformance is an issue focused