[prev] [index] [next]

Testing Strategy

Testing only increases our confidence that the program works.

Unfortunately, we tend to make the big assumption:

"It works for my test data, so it'll work for all data"

The only way to be absolutely sure that this is true:

  • feed in every possible valid input value   (exhaustive testing)
  • if, for each input, the program gives the expected output, it's correct
Problem: all realistic programs have infinitely many possible input values.

Exhaustive testing is not possible in practice. (e.g. checkorder has 232×9 inputs)