Testing can only cover a small fraction of these in the time-scale
required.
??? Testing must stop at some point. Because testing costs a lot, some ratio of time spent testing to
the number of bugs discovered needs to be established at the outset. This ratio should increase
proportionally to the risks inherent in the system.
??? Testing requires independence; for an unbiased measurement of software quality, you need an
unbiased person to measure it. Thus testing needs to be independent of designing and coding,
for example:
1
There is another way of classifying errors shown in Appendix C.
2
Much learned ink has been spilt in an effort to make this clear. If you don??™t have a maths PhD but disagree, then
read Douglas R. Hofstader
G?¶del, Escher, Bach, an eternal golden braid.
Basic Books, 1979.
Test Planning and Management
41
??“ At the lowest risk level this may simply mean that a second programmer checks the unit tests
written by the developer.
??“ At the highest risk level there may be a separate group completely independent of the software
developers, charged with integration and system testing. While this may appear expensive it
is always cost-efficient for large projects.
??? Tests must be repeatable. It is not enough that a bug be seen. Each test should find the bug as
many times as is required for the developers to be able to find the cause of the bug.
??“ Developers can really help here: they may be able to advise on probable scenarios.
Pages:
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158