
Testing does not always need to wait until developers finish implementing a feature. In many software projects, QA engineers start preparing test scenarios, reviewing requirements, identifying risks, and planning test activities while development is still in progress.
This approach helps teams identify missing requirements early, avoid testing delays, and reduce the chances of discovering major issues just before a release.
For example, imagine a development team is building a new employee leave management feature. Developers are still working on the leave application form, approval workflow, and leave balance calculation. Although the feature is not ready for execution, a QA engineer can already review the requirements, identify possible test scenarios, prepare test data, and discuss unclear business rules with the team.
By the time development is complete, much of the test planning work is already finished.
This is an important part of shift-left testing, where testing activities begin earlier in the software development lifecycle rather than starting only after implementation.
In this article, we will explore how QA engineers can prepare a practical test plan before development is complete, what information should be included, how to identify testing risks, and how to keep the plan useful as requirements and implementation details change.
What Is a Test Plan?
A test plan is a document that describes how a particular feature, application, or release will be tested.
It defines the testing objectives, scope, approach, resources, environment, schedule, risks, and responsibilities.
A test plan helps the QA team understand what needs to be tested, how testing will be performed, and what conditions must be satisfied before testing can be considered complete.
For a new feature, a test plan generally includes:
Feature overview and testing objectives.
Testing scope and out-of-scope areas.
Functional and non-functional testing requirements.
Test scenarios and coverage areas.
Test environment and required configurations.
Test data requirements.
Dependencies and integration points.
Risks and assumptions.
Entry and exit criteria.
Defect reporting and communication process.
Testing schedule and responsibilities.
A test plan does not need to contain every detailed test step from the beginning. It should provide a clear testing direction and evolve as more information becomes available.
Why Should QA Engineers Prepare a Test Plan Before Development Is Complete?
Waiting until development is finished before thinking about testing can create unnecessary delays.
When QA engineers participate early, they can identify problems while changes are still relatively easy to make.
Identify Missing Requirements Early
During requirement reviews, QA engineers may discover missing validations, unclear business rules, or incomplete acceptance criteria.
For example, a requirement might state:
"Employees should be able to apply for leave through the application."
However, several questions remain unanswered:
Can employees apply for leave on the same day?
Can they apply for leave in the past?
Is manager approval mandatory?
Can an employee cancel an approved leave request?
What happens when the employee has insufficient leave balance?
Are weekends and public holidays included in leave calculations?
Discussing these questions before development is complete helps prevent incorrect assumptions.
Reduce Testing Delays
Preparing test scenarios, identifying dependencies, and arranging test data in advance reduces the time required to start testing after deployment.
Improve Communication Between Teams
Early test planning gives QA engineers an opportunity to discuss expected behavior with developers, business analysts, and product owners.
This reduces misunderstandings between implementation and testing.
Identify Integration Risks
Some features depend on existing modules, external services, APIs, or databases.
Identifying these dependencies early helps the team prepare appropriate integration test scenarios.
How to Prepare a Test Plan While Development Is in Progress
A useful test plan should be prepared in stages. You do not need to wait for every development detail before starting.
The following approach can be used in real-world software projects.
Step 1: Understand the Feature Requirements
Start by reviewing the available information about the feature.
Do not limit your review to the requirement document. Check related discussions, user stories, designs, acceptance criteria, and existing application workflows.
Consider a new leave management feature.
The initial requirement states:
"As an employee, I want to apply for leave and track my leave requests so that I can manage my time off."
From this requirement, identify the main functionality:
Employee can submit a leave request.
Employee can select leave dates.
Employee can provide a reason.
Employee can view submitted requests.
Manager can approve or reject requests.
Leave balance should be updated according to business rules.
At this stage, focus on understanding what the feature should accomplish.
If the requirements are incomplete, document your questions instead of assuming the expected behavior.
Step 2: Define the Testing Scope
Once you understand the feature, identify what will be included in testing and what is outside the current scope.
For the leave management feature, the scope might look like this:
In Scope | Out of Scope |
|---|---|
Submit leave request | Payroll processing |
Validate leave dates | Employee recruitment |
Display leave balance | Attendance device integration |
Approve or reject requests | Performance management |
Cancel eligible leave requests | Third-party HR reporting |
View leave history | Unrelated employee profile features |
Defining the scope helps avoid confusion when different teams have different expectations.
However, if an out-of-scope module directly affects the new feature, its integration points may still require testing.
Step 3: Identify Functional Test Scenarios
Now break the feature into smaller functionalities and identify what needs to be verified.
For a leave management feature, consider the following scenarios:
Module | Test Scenarios |
|---|---|
Leave Application | Submit a leave request with valid information |
Leave Dates | Select valid and invalid date ranges |
Leave Balance | Verify available balance before and after a request |
Leave Type | Select different supported leave categories |
Approval | Approve or reject a submitted request |
Cancellation | Cancel an eligible leave request |
Leave History | Verify previously submitted requests |
Notifications | Verify notifications after approval or rejection |
These are initial test scenarios, not necessarily final test cases.
As development progresses and acceptance criteria become clearer, each scenario can be expanded into detailed test cases.
Step 4: Identify Negative and Boundary Scenarios
A good test plan should cover more than successful workflows.
Think about what could go wrong when users provide invalid information or perform unexpected actions.
For example:
Test Scenario | Expected Result |
|---|---|
Submit a leave request without selecting dates | Application should display validation |
Select an end date earlier than the start date | Application should reject the date range |
Apply for more leave than the available balance | Application should follow the defined leave policy |
Submit the same request repeatedly | Duplicate requests should be prevented |
Apply for leave on a restricted date | Application should enforce the configured business rule |
Cancel an already rejected request | Application should prevent invalid cancellation |
Manager attempts to approve their own unauthorized request | Application should enforce role permissions |
Also consider boundary conditions involving date ranges, leave balances, consecutive holidays, weekends, and monthly or yearly leave limits.
These scenarios help identify defects that basic functional testing may miss.
Step 5: Identify Integration and Dependency Requirements
A new feature rarely operates independently in a real-world application.
It may communicate with other modules, databases, APIs, or external services.
For example, leave management may depend on:
Employee management.
Authentication and authorization.
Leave balance calculation.
Manager approval workflows.
Notification services.
Attendance management.
Reporting services.
Identify these dependencies and document which integration scenarios need to be tested.
For example, after a manager approves a leave request, the QA team should verify whether the employee's leave balance is updated correctly and whether the relevant notification is generated.
If the notification service is unavailable, the application should handle the failure according to the defined business rules without incorrectly changing the approval status.

Join the conversation! Your thoughts help the community grow.