How to Create a Test Plan
sign in to trackA test plan is more than a document. Creating a test plan is a structured thinking exercise that helps the QA team understand what needs to be tested, how it will be tested, who will test it, when testing will happen, and what could affect the testing process.
Writing the plan before execution helps identify unclear requirements, missing resources, dependencies, and risks before they become problems during testing.
Step 1: Understand the Requirements
Start by reviewing the available requirements, such as:
BRD or PRD
User stories
Functional specifications
Acceptance criteria
UI/UX designs
Business rules
API documentation
Identify what the system is expected to do and clarify anything that is unclear.
Example:
If the requirement says:
“Users can cancel an order.”
Clarify questions such as:
At what order status can it be cancelled?
Can a shipped order be cancelled?
Is a refund generated?
Is there a cancellation fee?
What happens after cancellation?
These questions can affect the testing scope and test cases.
Step 2: Define Test Objectives
Clearly state what testing should achieve.
Examples:
Verify that major features meet requirements.
Identify functional defects before release.
Verify critical business workflows.
Ensure previously working functionality is not broken.
Validate supported browsers and devices.
Objectives should be specific enough to guide the testing effort.
Step 3: Define the Scope
Clearly identify what is in scope and out of scope.
In Scope
Examples:
User registration
Login
Product search
Shopping cart
Checkout
Payment
Order management
Out of Scope
Examples:
Third-party payment provider's internal system
Unsupported browsers
Features planned for a future release
Clearly defining scope prevents misunderstandings about what the QA team is expected to test.
Step 4: Decide the Test Approach
Determine how the application will be tested.
The approach may include:
Manual testing
Automation testing
Functional testing
Regression testing
API testing
Database testing
Compatibility testing
Performance testing
Security testing
Usability testing
Not every project requires every type of testing. Select the approaches based on requirements, risk, project scope, and available resources.
Step 5: Identify the Test Environment
Document where testing will take place.
Consider:
Application URL
Server/build/version
Operating systems
Browsers
Mobile devices
Database
Test accounts
APIs and external services
Network configuration
Required software and tools
Example:
A web application might require testing on:
Windows + Chrome
Windows + Edge
macOS + Safari
Android + Chrome
iOS + Safari
Step 6: Identify Test Data Requirements
Determine what data is required for testing.
Examples:
User accounts
Products
Orders
Payment test data
Customer addresses
API request data
Different user roles
Also define how the data will be created, maintained, reset, and protected.
Avoid exposing sensitive production data unnecessarily.
Step 7: Define Roles and Responsibilities
Clearly identify who is responsible for each testing activity.
For example:
QA Engineer
Create test cases.
Execute tests.
Report defects.
Retest fixes.
QA Lead
Define testing strategy.
Review test cases.
Monitor progress.
Manage testing risks.
Developer
Fix defects.
Support technical investigation.
Provide builds and technical information.
Product Owner/Business
Clarify requirements.
Confirm business expectations.
Support acceptance decisions.
Step 8: Create the Test Schedule
Define when each testing activity is expected to happen.
Example:
Requirement analysis → 2 days
Test case preparation → 3 days
Environment setup → 1 day
Functional testing → 5 days
Regression testing → 3 days
Retesting → 2 days
Test closure → 1 day
The schedule should account for dependencies and potential delays.
Step 9: Define Entry Criteria
Entry criteria define the conditions that should be satisfied before testing begins.
Examples:
Testable build is available.
Requirements are sufficiently clear.
Test environment is ready.
Required test data is available.
Critical dependencies are working.
Required test accounts are available.
If important entry criteria are not met, testing may need to be delayed or its risks clearly documented.
Step 10: Define Exit Criteria
Exit criteria define when testing can be considered complete.
Examples:
Planned test cases have been executed.
Critical functionality has been tested.
Required regression testing is complete.
No unresolved critical/blocking defects remain according to agreed release criteria.
Test results have been reviewed.
Known risks and limitations are documented.
Exit criteria should be agreed with relevant stakeholders where appropriate.
Step 11: Identify Risks and Mitigation
Identify factors that could affect testing.
Example Risks
Test environment may not be available on time.
Requirements may change during testing.
Test data may be incomplete.
Third-party services may be unavailable.
Development builds may be delayed.
Limited QA resources may affect coverage.
For each important risk, define a mitigation approach.
Example:
Risk: Payment sandbox is unavailable.
Mitigation: Use mock payment responses for functional testing and schedule real integration testing when the sandbox becomes available.
Step 12: Define Defect Management
Document how defects will be handled.
Include:
Defect tracking tool.
Severity and priority definitions.
Defect workflow.
Required information in defect reports.
Retesting process.
Regression expectations.
Rules for closing or reopening defects.
This ensures the team follows a consistent defect management process.
Step 13: Define Test Deliverables
Identify what will be produced during testing.
Typical deliverables include:
Test Plan
Test Scenarios
Test Cases
Test Data
Automation Scripts
Defect Reports
Test Execution Reports
Test Summary Report
Step 14: Review and Approve the Test Plan
Before execution begins, review the plan with relevant stakeholders.
Check:
Is the scope clear?
Are important risks identified?
Are resources available?
Is the testing approach appropriate?
Are entry and exit criteria realistic?
Are responsibilities clear?
Are dependencies documented?
The test plan should be updated if major requirements, scope, timeline, or testing conditions change.
Simple Test Plan Structure
A practical test plan can follow this structure:
1. Test Plan Information
→ Project name, version, document owner
2. Test Objectives
→ What testing should achieve
3. Scope
→ In-scope and out-of-scope areas
4. Test Strategy
→ How testing will be performed
5. Test Environment
→ Systems, devices, browsers, databases, tools
6. Test Data
→ Required test accounts and datasets
7. Roles and Responsibilities
→ Who does what
8. Schedule
→ When testing activities will happen
9. Entry Criteria
→ Conditions required to start
10. Exit Criteria
→ Conditions required to complete
11. Defect Management
→ How defects will be reported and tracked
12. Risks and Mitigation
→ Potential problems and responses
13. Deliverables
→ Documents and outputs produced
Practical Testing Takeaway
Creating a test plan forces the tester to think before execution begins.
Instead of simply asking:
“What test cases should I write?”
a tester should first ask:
“What are we testing, why are we testing it, how will we test it, what do we need, what could go wrong, and when will we consider testing complete?”
A good test plan does not need to be unnecessarily long. It needs to provide clear direction, realistic expectations, and enough information for the testing team and stakeholders to understand the testing approach.
◈Key Points
- Start with scope: list explicitly what IS and IS NOT in scope for testing.
- Define entry and exit criteria — clear, measurable conditions for when testing starts and ends.
- Identify risks and define mitigation strategies for each.
- Assign roles and responsibilities for every testing activity.
- Include a defect management plan: how bugs are reported, triaged, assigned, and closed.
Get stakeholder sign-off on the test plan before testing begins. A signed plan is your defence when someone asks why a feature wasn't tested — or why it was shipped with known defects.