AM Tutorial  (8:00 a.m. - Noon)

Test Design Techniques

by Louise Tamres
Getting Started level

Summary: So you’ve received, yet again, another requirements document that’s confusing, incomplete, and ambiguous. And somehow, you have to translate this mess into software designs and test cases. It’s not all that mysterious if you know how to model requirements. Louise Tamres describes several test design techniques that pinpoint the key features and their intended behavior. In fact, once you’ve applied these techniques, test cases practically write themselves. These same techniques can also assist developers to identify the key functionality to implement. Now that you’ve defined numerous tests, you’ll then apply prioritization strategies to select a meaningful subset of tests.

Abstract: When receiving requirements, many perceive a magical step that automatically yields test cases. This could be true if requirements are complete, unambiguous, and presented in an all-encompassing format. In most cases, imperfect specifications result when they are written in the English language. Requirements Analysis identifies issues and addresses inconsistencies, and when this task is omitted, the recipient of the deficient requirements is the one who must translate the information into something useful. Test Design Techniques are one way of analyzing and modeling requirements. The resulting models provide a straightforward means by which to identifying missing information and improve comprehension.
Using the principle that a picture is worth a thousand words, a good model focuses on content and helps the consumer ask the right questions. Common examples include Decision Tables, State Transition Diagrams, and Use Cases. We’ll also cover how to apply Classification Trees, Pairwise Testing, General Tables, and Spreadsheets. In addition, we’ll explore how the resulting models assist with estimating schedules, documenting tests, prioritizing tests, and recording test outcome.

Applying the test design techniques might enumerate a large number of tests – much more than can be executed under tight schedule constraints. The tester must then reduce the number of tests by selecting a meaningful subset while still maintaining reasonable coverage. We’ll discuss several methods for selecting and prioritizing such tests.

These Test Design Methods, which apply at all levels – from unit testing through system testing – can improve requirements, software designs, and test documentation. These same techniques can also assist developers in identifying key functionality to implement. Next time, why not incorporate the development of these models as part of the actual requirements definition.

Louise TamresPresenter Bio: Louise Tamres has over 24 years experience in software engineering, specializing in software testing and software process improvement.  Ms. Tamres has established software quality initiatives at many companies, including GE Medical Systems, General Motors, Nortel, Electro Scientific Industries, as well as assisting start-up companies with their software quality needs. An enthusiastic speaker, she has taught many courses in software quality principles and methods. She is the founding member of Ann Arbor Software Quality Professionals, a group that meets regularly in southeastern Michigan. Her frequent role in mentoring fledgling testers led to the development of her book Introducing Software Testing published by Addison-Wesley. As part of the ASQ, Ms. Tamres is a Certified Software Quality Engineer, a member of the editorial board for Software Quality Professional, and the Software Division Councilor for Region 10. Ms. Tamres received her BS and MS degrees from the University of Michigan.