Test Design
Test design is the
testing
task of designing the
testing
work products.
Test design typically has the following objectives:
- Design the test work products:
- Test harnesses.
- Test procedures.
- Test scripts.
- Test suites of test cases.
- Test data.
- Maximize the effectiveness of testing:
- Maximize the probability of tests causing previously
unidentified failures.
- Minimize the number of test suites and test cases.
Test design can typically begin when the following
preconditions hold:
- The initiation phase has begun.
- The test teams are staffed and trained in test
design.
Test design is typically complete when the following
postconditions hold:
- Testing work products have been successfully
designed.
Test design typically involves performing the following
steps:
- Identify the test suites.
- Determine the objectives of each test suite.
- Develop the test procedures (for manual tests)
- Determine the test cases necessary to meet the objectives
(e.g., completion criteria) of the test suite.
- For each test case, determine and document in the
associated
test case the:
- Test preconditions (e.g., object state, software
component state, and database contents).
- Test steps (i.e., test stimuli).
- Test postconditions (e.g., returned value, object
state, database state, exceptions thrown or handled, and
messages sent).
- Test schedule (for system tests)
- Required resources (for system tests)
Test design typically can be performed using the following
techniques:
- Testing patterns
- Refactoring
Test design typically results in the production of all or
part of the following
testing
work products:
- Most of the testing techniques provide guidance on
designing test suites of test cases.
- Test design could theoretically be part of the testing
activity or part of the design activity. It was placed here
because it is more closely thought of as being part of the
testing activity, whereas the scope of the design activity is
typically thought of as being restricted to the design of the
application itself.