In software testing, documentation is very important. Testing should be documented to provide efficient resource control monitoring. For successful testing, a test plan plays a very important role. Here, we will discuss the following points:
- Introduction to Test Plan.
- Objectives of Test Plan.
- Importance of Test Plan.
- Types of Test Plans.
- Test Plan Components/ Attributes.
- How to Write a Test Plan.
Introduction to 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. In any company whenever a new project is taken up before the tester involves in the testing the test manager of the team would prepare a test Plan.
- The test plan serves as the blueprint that changes according to the progressions in the project and stays current at all times.
- It serves as a base for conducting testing activities and coordinating activities among a QA team.
- It is shared with Business Analysts, Project Managers, and anyone associated with the project.
Who? | Roles |
---|---|
Who writes Test Plans? | Test lead, Test Manager, Test Engineer |
Who reviews the Test Plan? | Test Lead, Test Manager, Test Engineer, Customer, Development Team |
Who approves Test Plan? | Customer, Test Manager |
Who writes Test Cases? | Test Lead, Test Engineer |
Who reviews Test Cases? | Test Engineer, Test Lead, Customer, Development Team |
Who approves Test Cases? | Test Manager, Test Lead, Customer |
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 to create an estimate of the number of resources needed 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 to 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
The following are some of the key benefits of making a test plan:
- Quick guide for the testing process: The test plan serves as a quick guide for the testing process as it offers a clear guide for QA engineers to conduct testing activities.
- Helps to avoid out-of-scope functionalities: The test plan offers detailed aspects such as test scope, test estimation, strategy, etc.
- Helps to determine the time, cost, and effort: Test serves as the blueprint to conduct testing activities thus it helps to deduce an estimate of time, cost, 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 can be followed by all the team members.
- 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
The following are the three types of test plans:
- Master Test Plan: In this type of test plan, includes multiple test strategies and has multiple levels of testing. It goes into great depth on the planning and management of testing at the various test levels and thus provides a bird’s eye view of the important 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 phase of testing. It includes further information on the levels 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: In this type of test plan, it is designed for specific types of testing especially non-functional testing for example plans for conducting performance tests 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 attributes that companies follow:
1. Objective: It describes the aim of the test plan, whatever the good process and procedure they are going to follow in order to give quality software to customers. The overall objective of the test is to find as many defects as possible and to make software bug free. The test objective must be broken into components and sub-components. In every component 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 with respect to 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.
Example: In an application A, B, C, and D features have to be developed, but the B feature has already been designed by other companies. So the development team will purchase B from that company and perform only integrated testing with A, B, and C.
3. Testing Methodology: The methods that are going to 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 kind of testing will be used in the testing 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, login 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.
Example:
- The testing team will get proper support from the development team.
- The tester will get proper knowledge transfer from the development team.
- Proper resource allocation will be given by the company to the testing department.
6. Risk: All the risks that can happen if the assumption is broken. For Example, in the case of wrong budget estimation, the cost may overrun. Some reason that may lead to risk is:
- Test Manager has poor management skills.
- Hard to complete the project on time.
- 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/avoid 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: All the responsibilities and role of every member of a particular testing team has to be recorded.
Example:
- 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 the start and end date of each and every testing-related activity. For Example, writing the test case date and ending the test case date.
10. Defect Tracking: It is an important process in software engineering as lots of issue arises when you develop a critical system for business. If there is any defect found while testing and that defect must be given to the developer team. There are the following methods for the process of defect tracking:
- Information Capture: In this, we take basic information to begin the process.
- Prioritize: The task is prioritized based on severity and importance.
- Communication: Communication between the identifier of the bug and the fixer of the bug.
- Environment: Test the application based on hardware and software.
Example: The bug can be identified using bug-tracking tools such as Jira, Mantis, and Trac.
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 which are said to be tested will be written under this section. The installation of software is also checked under this.
Example:
- Software configuration on different operating systems, such as Windows, Linux, Mac, etc.
- Hardware Configuration depends on RAM, ROM, etc.
12. Entry and Exit Criteria: The set of conditions that should be met in order to start any new type of testing or to end any kind of 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 major bugs.
- Most test cases should be passed.
- When all test cases are executed.
Example: If the team member reports 45% of the test cases failed, then testing will be suspended until the developer team fixes all defects.
13. Test Automation: It consists of the features that are to be automated and which features are not to be automated.
- If the feature has lots of bugs then it is categorized as Manual Testing.
- If the feature is frequently tested then it can be automated.
14. Effort Estimation: This involves planning the effort need to be applied by every team member.
15. Test Deliverables: It is the outcome from the testing team that is to 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 that have been used for developing and maintaining the testing effort.
16. Template: It is followed by every kind of report that is going to be prepared by the testing team. All the test engineers will only use these templates in the project to maintain the consistency of the product.
How to Write a Test Plan
Below are the eight steps that can be followed to write a test plan:
1. Analyze the product: This phase focuses on analyzing the product, Interviewing clients, designers, and developers, and performing a product walkthrough. This stage focuses on answering the following questions:
- What is the primary objective of the product?
- Who will use the product?
- What are the hardware and software specifications of the product?
- How does the product work?
2. Design the test strategy: The test strategy document is prepared by the manager and details the following information:
- Scope of testing which means the components that will be tested and the ones that will be skipped.
- Type of testing which means different types of tests that will be used in the project.
- Risks and issues that will list all the possible risks that may occur during testing.
- Test logistics mentions the name of the testers and the tests that will be run by them.
3. Define test objectives: This phase defines the objectives and expected results of the test execution. Objectives include:
- A list of software features like functionality, GUI, performance standards, etc.
- The ideal expected outcome for every aspect of the software that needs testing.
4. Define test criteria: There are two main testing criteria that govern all the activities in the testing project:
- Suspension criteria: Suspension criteria defines the benchmarks for suspending all the tests.
- Exit criteria: Exit criteria defines the benchmarks that signify the successful completion of the test phase or project. These are expected results and must match before moving to the next stage of development.
5. Resource planning: This phase aims to create a detailed list of all the resources required for project completion. For example, human effort, hardware and software requirements, all infrastructure needed, etc.
6. Plan test environment: This phase is very important as the test environment is where the QAs run their tests. It is important that the test environments are real devices, installed with real browsers and operating systems so that testers can monitor software behavior in real user conditions.
7. Schedule and Estimation: Break down the project into smaller tasks and allocate time and effort for each task. This helps in efficient time estimation. Create a schedule to complete these tasks in the designated time with a specific amount of effort.
8. Determine test deliverables: Test deliverables refer to the list of documents, tools, and other equipment that must be created, provided, and maintained to support testing activities in the project.
Deliverables required before testing | Deliverables required during testing | Deliverables required after testing |
---|---|---|
Test Plan | Test Scripts | Test Results |
Test Design | Simulators | Defect Reports |
Test Data | Release Notes | |
Error and Execution Logs |