A Final Word of Caution

And now for the bad news; once you have completed the testing, your application or component will still probably have bugs in it. This is the nature of software development, and the true nature of testing is unfortunately to reduce the number of bugs to a small enough number that they do not detract from the usefulness and feel-good factor of the product. This includes the absence of “show-stopper” bugs—there is still no excuse for shipping something that has this degree of imperfection. In running through the testing cycles, you will have reduced the number of apparent bugs to zero. At least everything should work OK. However, users are going to do things to your system that you would never have imagined, and this will give rise to problems from time to time. In all likelihood, they might trigger the occasional feature that cannot apparently be repeated. It does happen from time to time, and the cause is most typically that the pressures (commercial or otherwise) on the project management team to deliver become so strong that they succumb to the pressure and rush it out before it’s ready. They then find that the users come back to them with complaints about the stability of the product. Sometimes you just can’t win.