Software Engineering
Home Planning Requirements Writing Hazard Analysis Requirement Analysis Config Control Software Design Software Testing Software Standards Basic Logic

Software Testing - Goals

A software product’s evaluation should be based on:

  • Functionality
  • Reliability
  • Usability
  • Efficiency
  • Maintainability
  • Portability

Practical Limitations to Testing

No program can be completely tested. Novell’s computation of the time required to completely test IPX (a part of Netware), assuming 24 hour a day testing, was 43 years.

“No test system can ever fully test a program. We cannot be certain that the test system itself is correct.” Zohar Manna, Stanford University.

And remember: Testing can only reveal the presence of defects, not show that software is defect-free.

So when testing, consider the probability of a test finding defect, the time and cost to test, and the impact of a defect.

Testing in Parallel With Design

Steps in the life cycle are:

  1. Software Requirements Analysis and Test Planning
  2. Software Design and Test Case Design
  3. Coding and Final Test Case Design
  4. Testing
  5. Installation

Testing should begin as soon as the functional specification is written. Path analysis can identify the minimum number of test conditions.