Entry and Exit Criteria
Entry criteria are the conditions that must be true before a test activity may start; exit criteria are the conditions that must be true before it may be declared complete. For example, system testing may start when the build is deployed to the test environment, the smoke tests pass and the test data is loaded, and it may finish when every High-risk test case has passed and no Blocker or Critical defect is open.
Criteria are written during test planning, test monitoring checks progress against them while testing runs, and test completion starts once the exit criteria have been evaluated. Test plans usually add suspension criteria, which say when to pause testing, and resumption criteria, which say what must be true to restart; the test plan described in ISO/IEC/IEEE 29119-3 has a place for all four kinds. The ISTQB glossary also lists test completion criteria as another name for exit criteria.
Why it matters
Starting without entry criteria means testing a build that is not testable: the login fails, an integration is missing, the data is wrong. Testers lose hours reporting failures caused by the environment, and nobody trusts the results. The ISTQB Foundation syllabus notes that an activity started without meeting its entry criteria is likely to be harder, slower, more costly and riskier.
Without exit criteria, "done" is decided by the deadline or by whoever argues longest. Criteria agreed in advance give the product owner facts for the release decision, and give the tester a neutral way to say "not yet".
Entry criteria: is the activity ready to start?
The ISTQB syllabus groups typical entry criteria into three kinds: available resources (people, tools, environments, test data, budget, time), available testware (test basis, testable requirements, user stories, test cases) and the initial quality of the test object, such as passed smoke tests. They should be defined for each test level and differ with its test objectives, so the entry to component testing is not the entry to acceptance testing.
If an entry criterion is not met, the team decides what to do: wait, start only the unaffected parts (API tests while the UI build is broken), or start anyway with the risk recorded and accepted by the people who agreed the criteria.
- Environment: the release candidate is deployed to the test environment and every service health check succeeds.
- Initial quality: the smoke suite passes 25 of 25 tests on that build.
- Testware and data: test cases for all High-risk requirements are peer-reviewed, and 50 test customer accounts are loaded, including Arabic names and expired cards.
Exit criteria: is the activity complete?
The syllabus describes two kinds of exit criteria. Measures of thoroughness say how much was achieved: coverage reached, unresolved defects, defect density, failed test cases. Binary yes/no criteria say whether something was done: planned tests executed, static testing performed, every defect found reported, regression tests automated. The first edition of CTFL v4.0 called this second kind completion criteria; v4.0.1 renamed it so that it is not confused with exit criteria as a whole.
In sequential development models, the exit criteria of one test level are often part of the entry criteria of the next, as when system testing hands over to acceptance testing; in some iterative models this does not apply. Running out of time or budget can also end testing, but only when the stakeholders have reviewed and accepted the risk of going live without further testing. Record the unmet criteria and that acceptance.
Try it: Requirements → Test Cases Try it: Percentage Calculator
Suspension and resumption criteria
Suspension criteria name the situations in which continuing would waste effort or produce results nobody can trust; resumption criteria name what must be true before testing restarts. Suspending is a test control decision, like those in the lesson on test monitoring and control: monitoring shows the trigger, and control acts on it. Write the criteria in pairs:
- Suspend when the smoke suite fails on a new build; resume when a corrected build passes it.
- Suspend when the test environment or a required sandbox is down for more than 4 working hours; resume when it is restored and its health checks pass.
- Suspend when one defect blocks more than 30% of the remaining test cases; resume when its fix passes confirmation testing.
- On resumption, re-run the tests that were in progress and record the lost time in the next progress report.
| # | From | To | Criterion |
|---|---|---|---|
| 1 | Not readyStart | In test | Entry criteria met: release candidate deployed and health checks pass, smoke suite passes 25 of 25, test cases reviewed and test data loaded |
| 2 | In test | Suspended | Suspension criterion hit: smoke fails on a new build, the environment or sandbox is down for more than 4 working hours, or one defect blocks more than 30% of the remaining tests |
| 3 | Suspended | In test | Resumption criterion met: a corrected build passes smoke, the environment is restored and its health checks pass, or the fix passes confirmation testing; tests in progress are re-run |
| 4 | In test | CompleteEnd | All exit criteria met on the build under test |
| 5 | In test | CompleteEnd | Time or budget runs out: the stakeholders review the unmet criteria and accept the risk, and the acceptance is recordedalternative path |
Thresholds are the examples from this lesson. Complete means the test activity is done; the release decision still belongs to the stakeholders.
Writing criteria that two people judge the same way
A criterion works only if two people looking at the same data reach the same yes or no. Give each one a measure, a threshold, a data source (test management tool, defect tracker, CI run) and the build it applies to. Criteria about High-risk test cases also need risk levels agreed before testing.
- "The build is stable" → "the smoke suite passes 25 of 25 tests on the build under test".
- "Testing is complete" → "all High-risk test cases passed and at least 95% of planned test cases executed".
- "No major bugs" → "no open Blocker or Critical defects; every open Major defect has an accepted workaround".
- "Good coverage" → "every in-scope requirement has at least one passed test case".
- "Performance is acceptable" → "with 200 concurrent users, 95% of searches respond in 2.0 seconds or less (p95)".
Worked example: checking exit criteria before a release
Release 3.5 of a food delivery app adds scheduled orders. Its system test plan has six exit criteria: all High-risk test cases executed and passed, at least 95% of the 150 planned test cases executed, no open Blocker or Critical defect, at most 3 open Major defects, the regression suite passing on the release candidate, and every in-scope requirement covered by a passed test. At the end of day 9 the test lead checks each one against the test management tool and the defect tracker.
| Exit criterion | Targetset in the test plan | Actualend of day 9 | Next step |
|---|---|---|---|
| High-risk test cases executed and passed | 100% | 38 of 38Pass | no extra action |
| Planned test cases executed | at least 95% | 141 of 150 (94%)Fail | Run the 9 Low-risk cases leftor the product owner accepts the gap in writing |
| Open Blocker or Critical defects | 0 | 1 CriticalFail | Fix the double chargethen a confirmation test of the defect |
| Open Major defects | at most 3 | 2Pass | no extra action |
| Regression suite on the release candidate | all pass | 212 of 212Pass | Run again on the build with the fix |
| In-scope requirements with a passed test | 100% | 27 of 27Pass | no extra action |
Example values from the lesson. After the fix, all six criteria are checked again on the new release candidate.
- Met: 38 of 38 High-risk cases passed, 2 Major defects are open, the regression suite passed 212 of 212, and all 27 requirements have a passed test.
- Not met: 141 of 150 executed is 94%. The 9 cases left are Low-risk order-history checks, so the team runs them in one more day, or the product owner accepts the gap in writing.
- Not met: on day 8 an exploratory session found that changing the time slot of a scheduled order charges the card twice. The product owner will not accept a Critical defect that charges customers twice, so the fix comes first.
- The fix creates a new release candidate. The tester confirmation-tests the defect, re-runs the regression suite, re-checks all six criteria on that build and records the result in the test completion report.
Text version
Release 3.5, system testing: exit criteria at the end of day 9
Criterion Target Actual Met
High-risk test cases executed and passed 100% 38/38 (100%) yes
Planned test cases executed >= 95% 141/150 (94%) no
Open Blocker or Critical defects 0 1 Critical no
Open Major defects <= 3 2 yes
Regression suite on the release candidate all pass 212/212 yes
In-scope requirements with a passed test 100% 27/27 yesCommon mistakes
- Vague criteria such as "testing is sufficient" or "the build is stable".
- One set of criteria for the whole project instead of one per test level and activity.
- Starting on a build that fails the entry criteria without saying so, then reporting environment problems as product defects.
- Lowering a threshold or downgrading a defect at the end so that the criteria look met, instead of reporting the gap.
- Suspension criteria without resumption criteria, so testing restarts on a build nobody smoke-tested and stops again.
- Treating met exit criteria as proof that there are no defects. They show only that the agreed level of testing was reached.
The QA perspective
The tester or test lead proposes the criteria while writing the test plan and agrees them with the product owner, the development lead and the project manager before testing starts. For each criterion, ask where the number comes from, who checks it and who decides when it is not met.
During execution, show the criteria in every progress report ("exit criteria: 4 of 6 met") so that release day brings no surprises, and log each suspension with its trigger, build and time. The test completion report lists each criterion with its actual value and who accepted any deviation. The tester reports the facts; the release decision belongs to the stakeholders.
Practice exercise
Write and check the criteria for a password reset feature
A mobile banking app adds password reset with a one-time SMS code. System testing has one 2-week cycle and 60 planned test cases, 15 of them High risk, covering 8 acceptance criteria. It depends on an SMS gateway sandbox.
Status at the end of day 10: 57 of 60 cases executed and 54 passed; 15 of 15 High-risk cases executed and 14 passed; open defects: 1 Critical and 2 Minor. The SMS sandbox was down for 6 working hours on day 7, and testing continued. Write the criteria for this test level, then decide whether testing is complete.
- Write three entry criteria: one each for resources, testware and the initial quality of the build.
- Write four measurable exit criteria.
- Write two suspension criteria, each with its matching resumption criterion.
- Evaluate the day 10 status against your exit criteria.
Show the model answer
Entry (examples): the SMS sandbox delivers a code to a test number within 60 seconds; all 60 test cases are reviewed and traced to the 8 acceptance criteria; the smoke suite passes 10 of 10 on the build.
Exit (examples): all 15 High-risk cases executed and passed; at least 95% of planned cases executed; no open Blocker or Critical defect; every acceptance criterion covered by a passed test case.
Suspension and resumption: suspend when smoke fails on a new build, resume when a corrected build passes it; suspend when the sandbox is down for more than 4 working hours, resume when it is restored and delivers a code.
Evaluation: 57 of 60 is 95%, so execution is met. Only 14 of 15 High-risk cases passed and a Critical defect is open, so testing is not complete: the defect needs a fix, a confirmation test and a regression run of the reset flow before the criteria are checked again. The 2 Minor defects break none of these criteria. Coverage of the 8 acceptance criteria cannot be judged from this status, so ask for the traceability data before answering yes or no. The 6-hour outage exceeded the 4-hour threshold, so testing that needs the sandbox should have been suspended. Re-run every test that needed an SMS code during the outage, and check whether any of the 3 failed cases failed because of the outage rather than a defect.
Frequently asked questions
Who sets entry and exit criteria?
The test lead or tester usually proposes them during test planning, and the stakeholders (product owner, development lead, project manager) agree them before testing starts. They are written in the test plan. A decision to continue or release while a criterion is unmet belongs to the stakeholders, not to the tester alone.
Are exit criteria the same as acceptance criteria?
No. Acceptance criteria are conditions a user story or product must satisfy to be accepted, so they describe the behaviour of the product. Exit criteria are conditions for completing a test activity, such as coverage reached and defects resolved. A common exit criterion is that every acceptance criterion is covered by a passed test.
How do they relate to the Definition of Ready and the Definition of Done?
The ISTQB syllabus notes that in Agile development exit criteria are often called the Definition of Done, and the entry criteria a user story must meet before development or testing starts are called the Definition of Ready. The lesson on the Definition of Ready and the Definition of Done covers both.
Can a product be released when an exit criterion is not met?
It can, if the stakeholders review the unmet criteria and accept the remaining risk, for example 9 unexecuted Low-risk test cases. Record in the test completion report which criteria were not met, why, and who accepted the risk. Exit criteria inform the release decision; they do not make it.
References
- ISTQB Certified Tester Foundation Level (CTFL) v4.0The foundation syllabus of software testing: test levels and types, test design techniques, test management and tools.
- ISTQB GlossaryThe standard definitions of testing terms — test case, regression testing, severity, priority, boundary value analysis and the rest.
- ISO/IEC/IEEE 29119-3:2021 — Software and systems engineering — Software testing — Part 3: Test documentationTemplates and content for test documentation — test policy, strategy, plan, status and completion reports, incident reports.
Practise with Mutqan tools
Convert a list of numbered requirements into traceable test cases with a requirement-to-test matrix.
Score features by likelihood and impact, then generate a prioritised risk-based test plan.
Calculate percentages, percentage change, increase/decrease and what percent X is of Y.
Check several API health endpoints at once and get status, latency and a pass/fail summary.
Go deeper
Your progress on this topic
Not started
Mark the topic complete when you have studied it and done the exercise.
Sign in to track your progress
Mark topics complete, continue where you left off and unlock specialisation exams.