What is Test Plan in Software Testing
What is Test Plan
A test plan is a document that consists of all future testing-related activities. It is prepared at the project level, and in general, it defines work products to be tested, how they will be tested, and test type distribution among the testers. Before starting testing, there will be a test manager who will be preparing a test plan.
Objectives of the Test Plan
- Overview of testing activities: The test plan provides an overview of the testing activities and where to start and stop the work.
- Provides timeline: The test plan helps to create the timeline for the testing activities based on the number of hours and the workers needed.
- Helps to estimate resources: The test plan helps count the necessary resources to finish the work.
- Serves as a blueprint: The test plan serves as a blueprint for all the testing activities; it has every detail from beginning to end.
- Helps to identify solutions: A test plan helps the team members consider the project’s challenges and identify the solutions.
- Serves as a rulebook: The test plan serves as a rulebook for following rules when the project is completed phase by phase.
Importance of Test Plan
- Quick guide for the testing process: The test plan serves as a short guide for the testing process, offering a clear direction for QA engineers to conduct testing activities.
- Helps to avoid out-of-scope functionalities: The test plan offers detailed aspects such as test scope, estimation, strategy, etc.
- Helps to determine the time, cost, and effort: The Test serves as the blueprint to conduct testing activities; thus, it helps to deduce an estimate of time, price, and effort for the testing activities.
- Provide a schedule for testing activities: A test plan is like a rule book that needs to be followed; it thus helps to schedule activities that all the team members can follow.
- Test plan can be reused: The test plan documents important aspects like test estimation, test scope, and test strategy, which are reviewed by the Management Team and thus can be reused for other projects.
Type of Test Plan
- Master Test Plan: This type of test plan includes multiple test strategies and has various levels of testing. It goes into great depth on the planning and management of testing at the different test levels and thus provides a bird’s eye view of the critical decisions made, tactics used, etc. It includes a list of tests that must be executed, test coverage, the connection between various test levels, etc.
- Phase Test Plan: In this type of test plan, emphasis is on any one testing phase. It includes further information on the groups listed in the master testing plan. Information like testing schedules, benchmarks, activities, templates, and other information that is not included in the master test plan is included in the phase test plan.
- Specific Test Plan: This type of test plan is designed for particular types of testing, especially non-functional testing, for example, plans for conducting performance or security tests.
Test Plan Components/ Attributes
There is no hard and fast rule for preparing a test plan, but it has some standard 15 attribute that companies follow:
1- Objective:
It describes the aim of the test plan, whatever the suitable process and procedure they will follow to give customers quality software. The test objective must be broken into components and sub-components. In every element, the following activities should be performed.
- List all the functionality and performance to be tested.
- Make goals and targets based on the application feature.
2- Scope:
It consists of information that needs to be tested concerning an application. The scope can be divided into two parts:
- In-Scope: The modules that are to be tested rigorously.
- Out Scope: The modules that are not to be tested rigorously.
3- Testing Methodology:
The methods that will be used for testing depend on application to application. The testing methodology is decided based on the feature and application requirements.
Since the testing terms are not standard, one should define what testing will be used in the methodology. So that everyone can understand it.
4- Approach:
The approach of testing different software is different. It deals with the flow of applications for future reference. It has two aspects:
- High-Level Scenarios: For testing critical features, high-level scenarios are written—for example, log in to a website and book from a website.
- The Flow Graph: It is used when one wants to make benefits such as converging and merging easy.
5- Assumption:
In this phase, certain assumptions will be made.
- The testing team will get proper support from the development team.
- The tester will get adequate knowledge transfer from the development team.
- Fair resource allocation will be given by the company to the testing department.
6- Risk:
All risks can happen if the assumption is broken. For example, in the case of wrong budget estimation, the cost may be overrun. Some reason that may lead to risk is:
- Test Manager needs better management skills.
- I need more time to complete the project.
- Lack of cooperation.
7- Mitigation Plan:
If any risk is involved, then the company must have a backup plan; the purpose is to avoid errors. Some points to resolve/prevent risk:
- Test priority is to be set for each test activity.
- Managers should have leadership skills.
- Training course for the testers.
8- Roles and Responsibilities:
Every testing team member’s responsibilities and roles must be recorded.
- Test Manager: Manages the project, takes appropriate resources, and gives project direction.
- Tester: Identify the testing technique, verify the test approach, and save project costs.
9- Schedule:
Under this, it will record every testing-related activity’s start and end date. For example, I am writing the test case date and ending the test case date.
10- Defect Tracking:
It is an essential process in software engineering as many issues arise when you develop a critical system for business. If any defect is found while testing, that defect must be given to the developer team. There are the following methods for the process of defect tracking:
- Information Capture: We take basic information to begin the process.
- Prioritize: The task is prioritized based on severity and importance.
- Communication: Communication between the bug’s identifier and the bug’s fixer.
- Environment: Test the application based on hardware and software.
11- Test Environments:
It is the environment that the testing team will use, i.e., the list of hardware and software; while testing the application, the things that are said to be tested will be written under this section. The installation of software is also checked under this.
12- Entry and Exit Criteria:
The set of conditions that should be met to start any new type of testing or to end any testing.
Entry Condition:
- Necessary resources must be ready.
- The application must be prepared.
- Test data should be ready.
Exit Condition:
- There should not be any significant bugs.
- Most test cases should be passed.
- When all test cases are executed.
13- Test Automation:
It consists of the features to be automated and parts not to be automated.
- If the feature has many bugs, it is categorized as Manual Testing.
- If the part is frequently tested, then it can be automated.
14- Effort Estimation:
This involves planning the effort that needs to be applied by every team member.
15-Test Deliverables:
The outcome from the testing team will be given to the customers at the end of the project.
Before the testing phase:
- Test plan document.
- Test case document.
- Test design specification.
During the testing phase:
- Test scripts.
- Test data.
- Error logs.
After the testing phase:
- Test Reports.
- Defect Report.
- Installation Report.
It contains a test plan, defect report, automation report, assumption report, tools, and other components used for developing and maintaining the testing effort.
- 16- Template: This is followed by every kind of report that the testing team will prepare. All the test engineers will only use these templates in the project to maintain the consistency of the product.