|
Understand the expected behavior of the model you are designing
| It is very important to understand how the piece of the model that you are designing is expected to work in the overall
system, so that you can design accurate tests for the model. |
Capture relevant test cases and data
| For the newly added functionality or optimization, identify test cases that verify the correctness of the
feature. Each test case should include preconditions, data, test flow, and expected results and outcomes. |
Ensure you have Quality of Service tests as well
Part of the correctness of functionality is that it adheres to quality of service (QoS) requirements as well. Including
worst case performance, memory complexity, access time, resiliency, and so on. Test cases should be added to ensure
these qualities as well as the basic functionality.
|
Violate your assumptions
| All software has preconditions, post-conditions and invariants. Robust software does the right thing even when such
assumptions are invalidated. These should be represented as test cases as the functionality is added. |
Update existing test cases as necessary
| As new functionality is added, it often requires refactoring of existing software. This often requires some modification of
the existing test cases to ensure that they continue to run properly. |
Perform coverage analysis to ensure test case coverage is adequate
| This is very difficult to do by hand. It is best to perform coverage analysis using test coverage tools. |
Specify tester steps required for test execution
| The tester must know how to set up, perform, and analyze the test execution. |
Examine test case set for completeness, accuracy, consistency, and correctness
| Have you covered all the different kinds of tests? Is the test environment adequately described? |
|