4.6. Testing Quality

Even if your use cases and misuse cases are numerous and complex, there is more to good testing than executing use cases. Use case testing focuses on the capability of the system; in other words, "can it work?" James Bach (http://www.satisfice.com/) says:

Just as important is the reliability question: "will it work?" This is what makes testing difficult. We see that the system can work but we need to know if it will work under the requisite variety of circumstances, states, inputs, and outputs, now and in the future, for all the users we care about.

So, we need to do a variety of tests, not just one. That is where creative and ingenious humans come in. Consider augmenting use case tests with a much more diversified approach to testing.

Bach describes an approach called exploratory testing, which invites the tester to use the information gained while testing to develop new tests (http://www.satisfice.com/articles/et-article.pdf). He notes that automated tests of any kind, while necessary, are rarely sufficient to validate the fitness of a product for release.

You might consider yourself a developer who leaves the testing to the testers. But you should be testing your developed modules to ensure they meet the desired functionality. For more information on testing, see Testing Computer Software, 2nd Edition by Cem Kaner, Jack Falk, and Hung Q. Nguyen (Wiley, 1999) and Lessons Learned in Software Testing by Cem Kaner, James Bach, and Bret Pettichord (Wiley, ...

Get Prefactoring now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.