In short, test exit criteria help to:
* Objectively determine test completion: They provide clear, measurable, and verifiable conditions, preventing arbitrary decisions about when testing is finished.
* Ensure sufficient testing has been performed: They define the minimum level of testing required to achieve acceptable risk.
* Manage risk: By specifying acceptable levels of defects, they help manage the risks associated with releasing inadequate software.
* Facilitate communication and collaboration: They provide a shared understanding between testers, developers, and stakeholders about the expectations for the testing process and its outcome.
* Improve decision-making: They provide a framework for making informed decisions about whether to release the software or continue testing.
* Avoid premature releases: They help prevent releasing software that is buggy or otherwise unsatisfactory.
* Support auditability: They provide a documented record of the testing process and the justification for the decision to stop testing.
Test exit criteria typically include factors such as:
* Percentage of test cases executed: A minimum percentage of planned test cases must be executed successfully.
* Defect density: The number of defects found per lines of code or other appropriate metric must fall below a predefined threshold.
* Severity of open defects: All critical and high-severity defects must be resolved.
* Test coverage: A certain level of code coverage, functional coverage, or other relevant coverage metrics must be achieved.
* User acceptance: The software might need to meet acceptance criteria defined by the end-users.
* Meeting of specific milestones: All relevant milestones related to the testing process should be met.
Without well-defined test exit criteria, the testing phase may drag on unnecessarily or, worse, end prematurely, leading to potential quality issues and project risks.