Found this brief PDF essay to be an interesting read. I feel that the title is a bit of a misnomer, though, as it doesn’t really answer that question. It does a good job of defining some sometimes-confusing software QA terminology, and identifies common testing paradigms that are used to define test cases.