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
   219   220   221   222   223   224   225   226   227   228   229