contents   previous




VI. Reliability and testing

A. Overview and basic terminology

Presumably careful application of the methodologies for requirements elicitation, analysis and design have led us to a workable system that we have either implemented or are in the process of implemeenting. In a perfect world, that would be it, and we could soon deliver a solid software system to the customer. We all know better.

Undoubtedly, testing and debugging will be required. Unless there was a major gaff in our earlier development efforts, this should all be in the nature of tweaking. Actually though, performance requirements are hard to predict, of course. We might well have failed to meet our goals in this regard, which might force a significant redesign, possibly involving different off-the-shelf components. To be realistic, if the project is very complex, there might well be a need to redesigs due to missing functional requirements too. This said, our expectation is that testing and debugging will probably lead to fairly minor redesigns, if any. (Otherwise, what was the point of spending so much time on so much careful planning?!) In this case, the debugging will then mainly be limited to correcting small implemention mistakes. (We hope.)

We will now focus on issues that lead to reliable software systems, particularly various types of testing. Here is just some of the technical terminology needed in our discussion of Chapter 9 material. Some of these terms can easily be misused. This is frankly just the start of a lot of jargon connected with reliability issues.



next