Prev | Current Page 116 | Next

Peter Farrell-Vinay

"Manage Software Testing"


Infinite defect loops have many causes, beginning with an inadequate architecture, but persist because
of subtle, frequent changes. Software that exhibits this tendency is probably entropic. A less-polite phrase
to describe it is ???
spaghetti code.???
To eliminate or minimize this, Microsoft uses an approach called synch and stabilize (see Chapter 4).
To find this out, you will need to look at two sources:
1. The test history. Look at the execution of tests over the last three to four test runs. How many
problems have repeatedly recurred? How many tests have found a bug, had it fixed, and had it
recur? See Figure 8.25.
2. The configuration management database. Use this to get the data you need to assess requirements
and code turmoil. See section 18.9.8.
See also section 18.10.2.2.
2.7.3 What Are the Primary Root Causes of Our Bugs?
The obvious answer to this is to look in the mirror. Of course, the root cause of all bugs is human failing.
More usefully, a number of other causes can be determined:
1. The process or phase. Is there evidence that an undue number of bugs are deriving in or from
some phase? Would they have been found by better unit tests or system tests? Could the bug have
been found by a more rigorous review? This is data that can be got from the bug reports. Most
root cause analyses of bugs stop here and shouldn??™t. (See section 18.10.2.2 for an example of an
out-of-control process that generates out-of-control code.


Pages:
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128