The test plan is the guide or documentation that helps the team understand how to test the system effectively. It describes objectives, resources, and processes for a test object. A test plan helps determine what activity to perform at what level. It also assists in deciding the time and budget for a project.
The test plan ensures that testing activities are performed according to the acceptance criteria. It is also a means of communication between team members and stakeholders.
A test plan is the responsibility of a test manager. Since projects differ, the test plans for different projects are also distinct.
The Objective of a Test Plan
Here are some of the objectives of a test plan.
- The test plan addresses future challenges like risks, schedules, people, tools, costs, and effort.
- It defines the scope and goals of the project.
- It establishes a test strategy, i.e., a collection of approaches.
- It improves communication between team members and stakeholders.
- It ensures comprehensive test coverage.
Test Planning Content
The content of test planning includes:
- Testing content, i.e., scope, objective, test basis, and constraints
- Assumptions and constraints of the test project
- Stakeholders, i.e., roles and responsibilities
- Communication plans
- Risk register, i.e., product risks and project risks
- Budget and schedule for the project
- Test approach, i.e., test levels, test types, techniques, and entry and exit criteria for the project
Release and Iteration Planning
In interactive planning, there are two types of planning:
- Release planning
- Iteration planning
Release Planning
Release planning forms the basis for the test approach and test plan. During release planning, the product backlog is defined and refined. The product owner is responsible for refining the backlog. Larger user stories are divided into smaller ones, and the high-level scope is established. Release planning focuses on long-term goals and provides a broader picture.
The timeframe usually spans several weeks to months, taking longer than sprint planning. Testers assist the product owner in writing efficient user stories and acceptance criteria, participate in risk analysis, and help define the test approach. User story estimation and planning for release are also part of this phase.
Iteration/Sprint Planning
Iteration planning, also known as sprint planning, involves selecting tickets from the product backlog to use in a sprint. Sprints typically last 2-4 weeks and focus on defining a specific iteration. A detailed risk analysis is performed, and user stories are made testable. Time estimation for testing efforts is also defined.
Larger user stories are divided into smaller ones. Functional and non-functional requirements are defined or redefined. This phase is short-term, focused, and detailed.
Entry Criteria and Exit Criteria
The organization or project determines entry and exit criteria.
Entry Criteria
Entry criteria are the preconditions and requirements to start testing. It is a checklist of activities to be completed before testing begins.
Entry criteria include
- Definition of ready
- Resources: people, tools, environment, data, budget, and time
- Testware: test basis, user stories, and test cases
- The initial quality of the test object: all smoke tests have passed
Exit Criteria
Exit criteria define the completion criteria for testing. It is a checklist for concluding testing activities, ensuring everything is finalized.
Exit Criteria Include
- Definition of done
- Completion criteria: all planned tests have been completed
- Static testing has been performed
- All identified defects have been reported
- All regression tests are automated
- Measures of thoroughness: achieved coverage, unresolved defects, and defect density
Test Estimation Techniques
Test estimation involves determining the time required for test-related tasks to meet objectives. These estimations are assumptions made before testing begins. It is important to clarify to stakeholders that test estimations are subject to errors. Smaller tasks tend to have more accurate estimations.
Types of Test Estimation Techniques
Testers can estimate their effort, defect rate, and coverage using the following techniques:
- Metrix-based estimations
- Expert-based estimations
Metrix-Based Estimations
These estimations are based on numbers and ratios, driven by calculations or metrics like graphs.
Type metrix-based estimations:
- Estimation based on ratios
- Extrapolation
1. Estimation Based on Ratio
Completed projects are used as references, and their ratios are applied to estimate new projects.
Example
If a completed project requires 40 hours, the new project estimation might also be 40 hours. If the effort seems doubled, the estimation could be increased to 80 hours.
Benefits
- Saves time
- Relies on historical data
- Enables resource predictions
2. Extrapolation
This technique uses ongoing projects to predict future activities. Historical data and team experience guide estimations.
Benefits
- Enables early estimations
- Identifies early risks and defects
- Utilizes historical data for predictions
Expert based Estimations
Experts provide time, effort, and resource estimations, particularly when historical data is unavailable.
Types of Expert-Based Estimations
1. White band Delphi
2. Three-point estimation.
1. White Band Delphi
Experts make experience-based estimations. Each expert makes estimations in isolation. The results are collected from each expert. Based on the feedback shared all the experts are asked to make estimations in isolation again. The process is repeated until a consensus is reached.
Planning poker is used in Agile. It is made using cards with numbers representing the effort size. Planning Poker is the variant of the white band Delphi.
2. Three-Point Estimation
In this technique, 3 estimations are made by the experts.
a represents the most optimistic estimations.
b represents the most pessimistic estimations.
m represents the most likely estimations.
E represents the final arithmetic mean.
E = a+(4*m)+b /6
This technique also allows us to calculate measurement errors.
SD = (b-a) /6
Conclusion
In the QA process, test planning plays a significant role in ensuring efficiency and successful project delivery. By defining goals, scope, objectives, entry criteria, exit criteria, and test estimation techniques, teams can deliver quality software on time. It also fosters confidence in software reliability.