Back to All Articles
Fundamentals

Writing a Test Plan & Test Strategy — QA Guide

Honnesh Muppala May 5, 2026 13 min read

Test Strategy vs Test Plan — The Essential Distinction

The terms "test strategy" and "test plan" are used interchangeably in many organisations, which creates significant confusion. They are distinct documents that operate at different levels of abstraction and serve different audiences.

A test strategy is a high-level, organisation-wide (or programme-wide) document that defines how the testing function operates across all projects. It answers: What testing approaches and types do we use? What tools and frameworks are standard? What are our quality principles? How does testing fit into our SDLC? The test strategy changes rarely — perhaps when the organisation adopts a new methodology, a major new tool, or shifts from Waterfall to Agile.

A test plan is a project-specific document that applies the strategy to a particular product release or feature set. It answers: What exactly are we testing for this release? What are the in-scope and out-of-scope features? What are the entry and exit criteria? What is the test schedule and who owns what? The test plan changes with every project or major release cycle.

Both are needed. The strategy provides consistency and organisational standards. The plan provides project-specific detail. Many teams have test plans but no strategy, which means every project reinvents the same decisions. Many consulting engagements begin with a strategy document precisely because the teams have been solving the same problems inconsistently across projects for years.

Test Document Hierarchy — Architecture Diagram

The relationship between business requirements, strategy, plans, and test artefacts:

Business Requirements
Test Strategy
Test Plan (Project A)
Test Plan (Project B)
Test Cases
Automation Scripts
Test Reports

Each level derives from the level above. Test cases implement the plan's scope. Reports measure against the plan's exit criteria. The strategy governs how all plans are written and all cases are managed. When a project's test plan is written, it should explicitly reference the org-level strategy and note any approved deviations.

Test Strategy Components

A complete test strategy document covers the following sections:

IEEE 829 Test Plan Structure

IEEE 829 (now superseded by ISO/IEC/IEEE 29119 but still widely referenced) defines an eight-section test plan structure that remains the foundation of formal test documentation in regulated industries (finance, healthcare, aerospace):

  1. Test Plan Identifier: Unique ID, version number, date. Required for change control and auditing.
  2. Introduction: Project overview, testing objectives, references to requirements documents and the test strategy.
  3. Test Items: The specific software items (modules, services, releases, builds) being tested. Include version numbers — vague references to "the system" are not auditable.
  4. Features to be Tested: Explicit list of features covered in this test plan. Each feature should map to a requirement ID.
  5. Features NOT to be Tested: Equally important. Why are these features excluded? Third-party component (vendor is responsible)? Covered in a separate test plan? Out of release scope? Document the reason — auditors ask.
  6. Approach: How the testing will be conducted. Test design techniques (boundary value, equivalence partitioning, exploratory). Automation strategy. Environment setup. Data management approach.
  7. Pass/Fail Criteria: The measurable conditions for passing or failing the test effort. "Zero P1 bugs open at release" is a criterion. "Tests feel good" is not.
  8. Suspension/Resumption Criteria: Conditions under which testing is suspended (environment down, critical build blocker, key personnel unavailable) and conditions for resuming (environment restored, blocking bug fixed).

The formal IEEE 829 structure also includes Test Deliverables, Testing Tasks, Environmental Needs, Responsibilities, Staffing and Training, Schedule, Risks and Contingencies. For regulated environments, all sections are required. For most commercial software projects, the eight above are the minimum viable structure.

Modern Agile Test Plan — The One-Page Format

For Agile teams, the full IEEE 829 structure is excessive overhead for a two-week sprint cycle. The modern Agile test plan fits on one page and covers the essentials without becoming a document that is outdated before the sprint ends:

This one-page document can be updated at the start of each sprint in 30 minutes. It is shared in the team wiki, linked from the sprint board, and referenced in the sprint planning ceremony. Unlike a 40-page IEEE 829 document, the Agile test plan is actually used.

From Virtusa: Early in my career at Virtusa, we wrote formal test plans for every release — lengthy documents that took two days to write and were accurate for approximately three days before requirements changes made them stale. After transitioning to Agile, I introduced a one-page sprint test plan template that was filled in during sprint planning. The team actually read it. Developers knew what QA would be testing. Product owners could see the coverage approach. The document stopped being a compliance artefact and became a communication tool.

Writing Test Scope — In and Out

Scope is one of the most important and most poorly written sections of test plans. It must be explicit in both directions: what is in scope and what is out of scope. The out-of-scope section is equally important — it prevents scope creep and sets clear expectations with stakeholders.

In-scope features (example for a user account management release)

Out-of-scope features (with reasons)

When scope is unclear, bugs discovered in out-of-scope areas create conflict: "Why didn't QA catch this?" The answer — "it was explicitly out of scope and documented" — requires that the scope was documented clearly and agreed upon.

Risk Analysis

Every test plan should include a risk analysis. Not a perfunctory list of risks — an actual likelihood × impact assessment that drives testing prioritisation. High-risk areas get more test coverage, more exploratory sessions, and more automation priority.

Risk analysis format: identify the risk, rate likelihood (1–3), rate impact (1–3), calculate risk score (likelihood × impact), define mitigation strategy.

Risk Likelihood Impact Score Mitigation
Third-party payment gateway downtime during checkout 2 3 6 Test fallback error messaging; verify retry logic; simulate gateway errors with Stripe test mode
Offline mode data sync conflicts on mobile 2 3 6 Dedicated offline/sync exploratory session; test with network proxy to simulate reconnection
Device fragmentation — 3 new Android OS versions in scope 3 2 6 BrowserStack device matrix for Android 12, 13, 14; focus on UI rendering and API call behaviour differences
Test environment instability (shared environment, multiple teams) 3 2 6 Reserve dedicated QA environment for regression week; monitor environment health daily in standups
Late delivery of dependent backend API 2 2 4 API contract testing with mocks in parallel; escalate to scrum master if API not ready by sprint day 5

Entry Criteria

Entry criteria define the conditions that must be met before testing begins. Testing before entry criteria are met wastes QA time and produces false results. Standard entry criteria for a release testing cycle:

If any entry criterion is not met, testing does not begin. The test lead escalates to the project manager, and testing starts when the criterion is satisfied. This sounds rigid, but it prevents the common scenario where QA spends two days testing against an unstable build, generating meaningless results that must be repeated after the build is stabilised.

Exit Criteria

Exit criteria define when testing is complete enough to recommend release. They are the measurable conditions against which a go/no-go decision is made:

Test Levels

A test plan should specify which test levels are included and who owns each:

Test Deliverables

The test plan should list what QA will produce during and at the end of the testing cycle:

From Amazon: Device firmware testing at Amazon required formal test deliverables for every release — not optional documentation, but contractual artefacts for the device certification process. The test summary report format was standardised across all device teams. What I took from that discipline: even in fast-moving Agile projects, a structured test summary report created at release time prevents the "did we really test this?" question from arising months later when a production issue is being investigated. The report is the institutional memory of the release.

Writing the Test Summary Report

The test summary report is the QA team's end-of-cycle deliverable. It should be concise, data-driven, and clearly state a recommendation. Key sections:

Common Mistakes in Test Plans

Traditional vs Agile vs No Plan

Dimension Traditional (IEEE 829) Lightweight Agile Plan No Formal Plan
Documentation level Extensive — 20–50 pages Lightweight — 1–2 pages None
Update frequency Once per project (rarely updated) Every sprint (15–30 min update) N/A — nothing to update
Team size fit Large teams, long projects, regulated industries Small-medium Agile teams, startup to enterprise Solo testers, very early-stage products only
Audit readiness High — meets regulatory documentation requirements Medium — sufficient for most commercial audits None — fails any audit involving testing evidence
Actual utility High at project start; decreases as document ages High throughout — kept current and actually used Low — ad-hoc decisions, inconsistent coverage

Full Test Plan Template

A copy-ready Markdown template for a lightweight Agile test plan. Adapt the sections to your project context:

# Test Plan — [Project/Feature Name] **Version:** 1.0 | **Date:** [YYYY-MM-DD] | **Author:** [Name] **Sprint/Release:** [Sprint 12 / v2.4.0] | **Sign-off:** [PO Name] --- ## 1. Scope ### In Scope - [Feature 1]: [brief description] - [Feature 2]: [brief description] - Regression: Full regression suite for [module] ### Out of Scope - [Feature X]: [reason — e.g., separate release, vendor-managed] - [Feature Y]: [reason — e.g., not in sprint scope per roadmap v2.3] --- ## 2. Risk Analysis | Risk | Likelihood (1-3) | Impact (1-3) | Score | Mitigation | |------|-----------------|-------------|-------|------------| | [Risk 1] | 2 | 3 | 6 | [mitigation action] | | [Risk 2] | 3 | 2 | 6 | [mitigation action] | | [Risk 3] | 1 | 3 | 3 | [mitigation action] | --- ## 3. Approach - **Functional testing:** Manual test cases in [TestRail/Zephyr] covering all AC - **Regression:** Automated suite ([framework]) + manual regression checklist - **Exploratory:** 2 × 90-min sessions using charters for [high-risk areas] - **API testing:** Postman collection for [endpoint group] - **Device/browser:** [Chrome 120+, Firefox 121+, Safari 17+ / Android 13-14, iOS 16-17] --- ## 4. Environments | Environment | URL | Status | Owner | |-------------|-----|--------|-------| | Dev | dev.example.com | [Stable/Unstable] | Dev team | | Staging | staging.example.com | [Stable/Unstable] | DevOps | | Production | example.com | Reference only | N/A | --- ## 5. Entry Criteria - [ ] Build deployed to staging - [ ] Smoke tests passing (0 P1 failures) - [ ] Test data prepared - [ ] All in-scope AC confirmed ## 6. Exit Criteria - [ ] 100% planned test cases executed - [ ] ≥95% pass rate - [ ] 0 open P1 bugs; 0 open P2 bugs (or explicit PO acceptance) - [ ] Regression suite green - [ ] Test summary report approved --- ## 7. Schedule | Milestone | Date | |-----------|------| | Test plan sign-off | [date] | | Test case authoring complete | [date] | | Testing start | [date] | | Regression run | [date] | | UAT | [date] | | Go/No-Go decision | [date] | | Release | [date] | --- ## 8. Team | Role | Name | Responsibility | |------|------|----------------| | QA Lead | [Name] | Plan, oversight, summary report | | QA Engineer | [Name] | Test execution, bug filing | | Developer | [Name] | Unit tests, bug fixes, dev environment | | Product Owner | [Name] | AC sign-off, UAT, go/no-go | --- ## 9. Tools - **Test Management:** [TestRail / Zephyr Scale] - **Bug Tracking:** JIRA - **Automation:** [pytest + Selenium / Cypress / Robot Framework] - **API Testing:** Postman - **Performance:** [k6 / JMeter] (if in scope) - **Screen Recording:** OBS Studio (exploratory sessions)

Back to Blog
From Experience — Amazon: At Amazon's Device OS team, the bar for defect reports was exceptionally high. Every bug required the exact build number, reproduction rate (e.g. "3 out of 5 attempts"), full environment configuration, and a video wherever possible. It felt like overhead at first — but it meant any developer could pick up a ticket and reproduce the issue immediately without back-and-forth. During Alexa and Echo release cycles, this discipline directly reduced the triage loop from days to hours. A well-written bug report is not documentation overhead — it is the fastest path to a fix.