Test Plan & Test Strategy

So far in this track you've learned how to design test cases, execute them, and report the bugs you find. But before any of that happens on a real project, someone has to decide what gets tested, how, by whom, and on what schedule. That's the job of two related but distinct documents: the Test Strategy and the Test Plan. People often use the words interchangeably in casual conversation, but on a real team they answer different questions and usually live at different levels of the organization.

The one-line distinction: A Test Strategy is high-level and project-wide — it rarely changes and applies across many releases. A Test Plan is concrete and release/feature-specific — a new one gets written (or at least updated) for every release.

Test Strategy vs Test Plan

AspectTest StrategyTest Plan
ScopeWhole organization or whole product lineOne release, feature, or sprint
LifespanWritten once, revisited rarely (e.g. yearly)Written fresh for each release
OwnerQA lead / test manager / architectTest lead assigned to that release
ContentTesting types used company-wide, tools standard, general risk approach, automation policySpecific scope, schedule, named resources, entry/exit criteria, environment for this release
Example question it answers"Do we do performance testing at all, and with what tool?""Will performance testing be part of the RecipeBox v2.0 release, who runs it, and by what date?"

In practice: RecipeBox's engineering org might have one Test Strategy document that says "we do functional, regression, and UAT testing manually; we use exploratory testing for new UI; we don't currently do automated performance testing." Every individual release — v1.5, v2.0, v2.1 — then gets its own Test Plan that applies that strategy to specific, dated, scoped work.

The Standard Test Plan Sections

Test plan templates vary between companies, but almost all of them include some version of these sections. Below is each section explained, then applied to a worked example: a hypothetical Test Plan for the "RecipeBox v2.0" release.

1. Objective

What this round of testing is trying to accomplish, in a sentence or two.

RecipeBox v2.0 example: Verify that the new "Search Recipes" feature and the redesigned "Add/Edit Recipe" screen work correctly, do not break any existing v1.x functionality, and are ready for public release by the target date.

2. Scope (In-Scope / Out-of-Scope)

Exactly what will and will not be tested. This is one of the most valuable sections precisely because it prevents arguments later about what "should have" been caught.

RecipeBox v2.0 example:
In scopeOut of scope
New Search Recipes screen (search by title)Search by ingredient (planned for v2.1, not built yet)
Redesigned Add/Edit Recipe form and all its fieldsBackend admin dashboard (internal tool, tested separately)
Regression pass on Login and Recipe List screensLoad/performance testing at scale (no strategy for it yet — see Test Strategy)
Functional testing on Android only (current supported platform)iOS (not yet built)

3. Test Approach

Which testing types and techniques will actually be used, and why.

RecipeBox v2.0 example: Functional testing of Search and Add/Edit Recipe using equivalence partitioning and boundary value analysis on all input fields (title, ingredients, prepMinutes); decision table testing for the category-selection logic; regression testing on Login and Recipe List using the existing regression suite; exploratory testing for one full day before code freeze; a short UAT round with 5 real users before public launch (see the next lesson).

4. Entry Criteria & Exit Criteria

Entry criteria are the conditions that must be true before testing can start. Exit criteria are the conditions that must be true before testing is considered done and the release can ship. Both exist so nobody has to argue in the moment about whether testing is "ready to begin" or "good enough to stop" — the answer was already agreed in advance.

Entry CriteriaExit Criteria
Build v2.0-rc1 deployed to the test environment100% of planned test cases executed
Requirements for Search and Add/Edit Recipe signed offNo open Critical or High severity bugs
Test cases for Search and Add/Edit written and reviewedAll Medium/Low bugs triaged and either fixed or explicitly deferred with sign-off
Test environment and test data (sample recipes, test accounts) readyRegression suite passed on Login and Recipe List
Note: Exit criteria don't require zero bugs — they require zero bugs above an agreed severity, with everything else consciously accepted rather than silently ignored. This is a normal, healthy part of shipping software.

5. Resources

Who is doing the testing, and what they need.

RecipeBox v2.0 example: 2 QA testers (functional + regression), 1 test lead (coordination and sign-off), 5 external beta users for UAT, test devices: 2 Android phones (one low-end, one flagship, to catch performance differences), staging environment with a seeded recipe database.

6. Schedule

Dates. Even a rough schedule keeps testing from being an afterthought squeezed into the last two days before release.

ActivityDates
Test case writing & reviewDays 1–2
Functional testing (Search, Add/Edit Recipe)Days 3–5
Bug fixing & re-test cycleDays 6–7
Regression passDay 8
UAT with beta usersDays 9–13
Sign-off & releaseDay 14

7. Risks

What could threaten the testing effort or the release itself, and what will be done about it.

RiskMitigation
Search feature depends on a new backend endpoint that's still being finalizedStart functional testing with mocked responses; re-test against the real endpoint as soon as it's ready
Only 2 testers available for a feature-heavy releasePrioritize Search and Add/Edit Recipe first; regression on Login/Recipe List can run with a smaller, risk-based subset if time runs short
Beta users may not respond within the UAT windowRecruit 5 users instead of the minimum needed (3), and start recruiting a week early
Why this matters even for small teams: You don't need a heavyweight document for every tiny change. But even a two-paragraph informal version of Scope + Entry/Exit Criteria for a release forces the team to agree on "what does done actually mean" before it becomes a disagreement during a late-night release.
Next up: A signed-off test plan gets you to "ready to release" from QA's side. But there's one more gate before a release is truly ready: real users trying it. That's User Acceptance Testing (UAT), covered next.