Achieving the best possible testing involves maximizing defect detection, minimizing costs by reducing the required resources (e.g. testers, machines), minimizing execution time, minimizing the number of test cases, and maximizing risk coverage in a pre-defined timeframe (e.g. one day). What do we need to know to achieve this?
- The probability that a given test case will detect a defect of a certain severity. This probability is approximated from previous test runs.
- The risk contribution of each individual test case. This information is available as soon as a test case has been linked to a requirement (e.g. user story).
- The average execution time of each test case. This is easily derived from the previous test runs. For newly-added test cases, it can be estimated based on the average execution time of test cases that have a similar sequence of test actions.
- What resources (human testers or machines) are available.
- How much a human tester or machine costs per unit time.
It soon becomes obvious that all the required information is already within your test case portfolio. The hard part is rapidly arriving at an optimal solution for this problem. Due to the sheer complexity of this problem, it can’t be solved manually. That’s where the Risk Coverage Optimizer creates its added value.
The Risk Coverage Optimizer will not only show you how to distribute test cases to multiple resources (e.g. testers, machines) to optimize your objectives (e.g. risk, costs, time); it will also recommend which set of manual test cases you should automate to achieve better results (e.g. higher risk coverage) in less time, with lower costs, and fewer resources.