Testing should be stopped when:
-
All the planned tests have been run
-
Time has run out
-
All faults have been fixed correctly
-
It depends on the risks for the system being tested
Testing completion is risk-based, not based on arbitrary criteria like running all tests, time expiration, or fixing all faults. The decision depends on the acceptable level of residual risk for the system being tested. Options A, B, and C are incomplete approaches that don't consider business risk.
Correct: stopping criteria depend on risk. ISTQB/testing theory holds there's no universal rule for when testing is 'done' — the decision must weigh the risk profile of the system (safety-critical vs. low-impact), test coverage achieved, defect trends, and business constraints. 'All planned tests run' is wrong because the plan itself may be inadequate or risk may demand more. 'Time has run out' is a pragmatic but not principled stopping criterion — it describes schedule pressure, not readiness. 'All faults fixed correctly' is unrealistic as an absolute condition (you can never prove zero remaining defects) and ignores that some fixed-looking defects reappear (regressions). Risk-based stopping ties the decision to acceptable residual risk, which is the standard, defensible answer in software testing methodology.