Updated: Apr 20
Why writing an automation test plan is important?
It is well known that the risk of failure increases when there is no plan. The same is true for software testing. A project without a test plan makes the testing phase untraceable, unmanageable, and unmeasurable. Hence it is important to understand, write and implement a test plan for your project.
To improve the project quality, it is imperative to have planned testing phases managed through a well-articulated test plan. It defines what it will take to execute the testing of the project and what to expect during the testing phase.
Here are some stats -
60% of software projects do not have a test plan.
80% of the production defects are due to coding or design reasons which could be detected in the testing phase.
Software quality can improve twice if the project has a test plan.
What is a Software Testing Plan?
A test plan is a detailed document that describes the test scope, objectives, goals, estimations, and resources required and enlists the responsibilities of the testing team members. The test plan acts as a blueprint to conduct software testing in a project. It also contains risks and contingency planning.
Components of test plan in software testing
1. Objective -
This section specifies the objective of the test plan for a particular project.
2. Project overview -
This section gives a general overview of the project to the readers of the test plan. This helps the user to understand the project better and read the test plan from the project perspective.
3. Assumptions -
Not everything is clear at the start of the project. Any assumptions or unclear requirements are specified in this section. Assumptions can be of any aspect of the project like resourcing, test environment, requirements, etc. Test Plan specifies assumptions to be made while testing the software.
Now for easy management of the testing phase, we can divide the test phase into four major sub-phases to complete the testing life-cycle and can draw a testing plan around it.
4. Test Planning -
This section defines what to test and how testing will proceed. This lies the foundation of test planning.
4.1. In-scope and out-of-scope items
All the in-scope testing items and out-of-scope testing items are written in this section. This is to let project stakeholders know about what is included in the test scope and what is out of the scope of the test plan.
A precise scope helps to impart accurate information and a clear understanding of what is to be tested and what is not to be tested.
4.2. Software Testing Levels
Here, levels of testing are defined through which the software will go before production. In combination, software testing levels cover the testing of software at each stage of development. In unit testing, small unit and their functionality are tested, in Integration and System Integration software is validated against software requirements. In UAT, the software is tested from the end-user perspective.
In most cases, these are the 4 levels of testing done on software.
This section specifies all the types of testing that will be included in the software lifecycle.
Following the hierarchical view of some of the popular software testing types.
In combination, software testing types provide different ways to test different features and aspects of the software. By doing functional testing we will ensure the software is meeting its requirement, by doing non-functional testing we test software giving an apt experience to the user.
4.4 Software Testing Effort Estimation
This section specifies the testing effort estimation techniques that will be used to estimate testing efforts.
5. Testing Design
This section provides the details about how tests will be designed -
Test scenarios and test case designing techniques were used while writing the test cases.
Defines the test management tool (eg Jira, HP ALM) where test cases will be created and loaded for execution.
All the mandatory fields of test management tools to use to classify the test cases.
6. Testing Execution
This section defines how the test execution will happen in the project.
6.1. Test cycles
Test cycles are grouped test cases designed to achieve specific goals or a group of test cases that are planned to be executed on a specific version of the software.
6.2. Test Case execution states
This section defines the state test cases shall take during the test execution phase and what is the meaning of these states. It gives understanding to the stakeholders to comprehend the state in which test cases are.
7. Testing Defect Management
It is the process by which the bugs and defects in software are identified and managed till closure. Defects in software testing refer to the deviations of the functionalities of the software and the output from the requirements. Defects could be introduced for any reason, coding, design, environment, requirement gap, etc.
7.1. Defect Life-cycle
Defect Management life cycle contains the following stages :
Following is the description of the common states a defect can remain in its lifecycle.
7.2. Defect Severity Levels
The defect severity levels describe and highlight the impact that a particular defect may have on the application. The following are the defect severity levels -
7.3 Defect Priority Levels
They help to choose defects to be fixed according to the urgency based on business impact for production defects and project impact for lower environment defects. The following are the defect priority levels -
8. Test Reporting
Test report gives a descriptive view of testing activities and the final test result to the stakeholders. It acts as a metric for assessment that reflects the quality of the product. If the report shows the presence of defects, the stakeholders can delay the product release until they are fixed.
A good test report has the following components :
Project Information includes the name and description of the project.
Description of the test objective including the aim and enlisting the types of tests.
Test Summary including the test case execution states.
Defect report with the description, priority, severity, and status of the defect management process.
9. Automation Approach
This section specifies how automation will be planned in the testing phase and beyond.
There can be separate automation test plans along with the overall test plan.
10. Risk Management
Risk management measures the risks associated with the testing process and their probability of occurrence. Anticipating and planning for the risk before its occurrence ensures a faster and efficient response. It also guides us to use risk mitigation techniques so that the future occurrence of risk can be avoided.
Risk management and analysis are carried out in 3 steps :
Identification of the Risk Risk is of 2 types: Project Risk - An activity that can hinder the advancement of the project. Product Risk - The probability of a system failure that may not be able to meet the requirements and expectations of the client.
Impact analysis of the Risk The impact of the identified risk is analyzed to determine the extent of impact ranging from High, Medium, or Low Impact.
Mitigation of the Risk It involves choosing strategies that make the risk negligible or at least having as least impact as possible. To be able to efficiently do this, the risk must be properly documented and accessible to all stakeholders and team members. To ensure that risk is mitigated, it must be continuously monitored and controlled.
Risk management helps us in :
Early identification of the risk and hence better preparation.
Estimation of potential losses that might be associated with the risk.
Making decisions before the occurrence of the risk.
Assuage the future consequences of the risk.
11. Testing Tools
This section specifies the toolset to be used during testing. These can be test management tools, test execution tools, automation tools, etc.
A systematic and properly planned end-to-end testing plan ensures achieving the goals of the testing phase effectively and efficiently. Without a test plan, the process will not only become chaotic, slow, and unaccountable. Therefore, the formulation of a thorough and ordered test plan will be beneficial for the project and the quality of the software.
Note from the author - "If you like the knowledge shared on this page or want to share your views or correct anything, please let us know in the comment section below. If you want us to share details about any other topics, please share that too in the comment section. Share with others if you found it useful. Thanks."
Learn Advance - Difference between a Test Strategy and Test Plan.