Test Case Design
Random, undirected testing (otherwise known as playing about with the user interface) is an inefficient way to test software. A long-established technique (documented in Myer's The Art of Software Testing—http://books.google.co.uk/books/about/The_art_of_software_testing.html?id=86rz6UExDEEC&redir_esc=y) seeks to cover all possible conditions with the minimum number of tests. For each input variable or state, the tester discovers the ranges of values that represent distinct conditions in the software. As an example, an age field may have the following ranges:
- [0,18[ : child
- [18, 150[ : adult
- 0[ : too small
- [150 : too large
- NaN : not a number
The tester then tabulates these various ranges for all the inputs and creates the minimum number of tests required to exercise all of them. This is called equivalence partitioning: the behavior at age 36 and the behavior at age 38 are probably the same, so it's reasonable to expect that if you...