Test cases should be prioritized so that if any tests ends prematurely, the best possible test result at that point of time is achieved. Prioritization also ensure that the most important test cases are executed first. This way important problems can be found early.
Criteria for prioritizing:
- Usage frequency – if certain functions of the system are used often and they contains a fault, then the probability of this fault leading to a failure is high.
- Failure risk – test that may find failures with a high risk get higher priority.
- Visibility – important in interactive systems. Visibility of a failure for the end user is criterion for prioritization.
- Priority of the requirements – the different functions delivered by a system have different importance for customer.
- Quality characteristics – test cases for verifying conformance to required quality characteristics get a higher priority.
- Prioritization can also be done from the perspective of development or system architecture.
- Complexity – complex program pars should be tested more intensively.