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.