By Cem Kaner et al, Wiley, 1999, 0-471-35846-0 This is an up to date version of the Art of Software Testing. It is oriented towards waterfall development, but the technical discussion of testing are very good.

[p124] An excellent test case satisfies the following criteria:

  • It has a reasonable probability of catching an error.
  • It is not redundant.
  • It’s the best of its breed.
  • It is neither too simple nor too complex.

[p126] Here are a few recommendations for looking for equivalence classes:

  • Don’t forget equivalence classes for invalid inputs.
  • Organize your classifications into a table or an outline.
  • Look for ranges of numbers.
  • Look for membership in a group.
  • Analyze responses to lists and menus.
  • Look for variables that must be equal.
  • Create time-determined equivalence classes.
  • Look for variable groups that must calculate to a certain value or a range.
  • Look for equivalent output events.
  • Look for equivalent operating environments.