Well-written documentation lies at the core of an efficient QA process. Documentation brings structure and logic to the testing activities. In a way, it unites project team members around the same goal, providing a clear understanding of the hierarchy, tasks, and expected outcomes.
One of such documents is a Test Plan. In this article, you will learn:
Before proceeding to the definitions and explanation, we’d like to explain one more important term from the QA field – a test artifact. Test artifacts are by-products generated during the software testing process and shared with the project team. Simply put, these are documents that bridge the communication gap between all the members. Now, let’s move to a Test Plan and its specifics.
A Test Plan is a test artifact describing actions that will occur during the testing process – from the development strategy to criteria for finding errors. It also outlines the logic of completing the tasks, features risk assessment, and explains scenarios of effective resolution of those risks.
A Test Plan has a clearly defined structure established by the IEEE 829 – the industry standard for software and system documentation. Thus, you can prepare a template and use it for every project, filling it with specific data.
Building a Test Plan document based on the IEEE 829 standard has many benefits. First and foremost, familiarity with the document structure makes it easier to write and use a Test Plan. The IEEE 829 standard eliminates any futile discussions about what to include and in what order. Instead, a Team Lead and QA Engineers focus on other activities.
So, according to the IEEE 829 standard, a Test Plan should consist of 19 items:
In this section, we add the QA provider’s name and company logo, the name of the document, its version, and the year of creation. In other words, it is the title page of your Test Plan.
The next step is to include the history of the document. For this, add the Table of Changes. It should contain the following columns:
With this table, a team can record and track changes to manage the document and the process it describes efficiently.
Here, we briefly state what we are going to do during the project. The introduction is a note to a client. In a couple of sentences, describe what services the QA team will provide and why. For example:
Our company provides Functional and UI testing to detect bugs in the software product before the release. We perform the detailed testing of the stated functionality to help achieve the set business goals for your software product.
Include all the types of testing you agreed to cover, but don’t go into detail. It is enough to generalize at this stage.
Test Items are general functionality to be tested – for example, installation, registration, checkout, etc. In a way, it is a short description of the content of the Test Plan. Later on, each of the items will be explained in detail. The list can be expanded or shortened depending on a task or type of testing.
In this section, we describe the risks a team may face during testing. For example, if a deadline is set for the summer period, it is reasonable to assume that people may take vacations, and the date may be delayed. You should consider both human resources and tech aspects, mentioning everything significant in the document.
This part covers what the majority imagines a Test Plan should present – a more precise list of features to inspect during a specified time. For example, we mentioned the checkout functionality in Test Items. In Features to Be Tested, we should list separate components of the flow: entering delivery information, choosing a payment method, order confirmation, etc. As for the timing, a client and a QA company discuss it before documentation writing.
Here, you list the features that a QA team is not going to test for a particular reason. It doesn’t matter why you don’t cover this scope. Just don’t forget to state what features remain out of your tasks and are a client’s responsibility.
Then, we describe the techniques and types of testing we are going to use. We also include test cases in this section. Therefore, a client can get a complete picture of the testing activities.
Each Test Case will be assigned ‘Pass’ or ‘Fail’ state depending on two criteria:
And don’t forget to identify entry and exit criteria for the testing. They mark the beginning and the end of the testing process.
An entry criterion describes what needs to be done before testing begins. For example, you may need to have:
The entry criteria reveal test readiness or unreadiness. It will be helpful to make a list of items to use as inputs and request the materials necessary for running tests.
An exit criterion describes what you consider necessary to complete a test. QA teams often try to make exit criteria a condition for software delivery, but it is not realistic. This decision is for a Product Owner (or another person in charge) to make.
Here’s an example of test exit criteria:
All scheduled tests have been completed, all fixed defects have been checked, notifications of all new defects found have been issued. All failed points, such as failure of a certain set of tests due to hardware malfunction, have been documented.
The suspension/resumption criteria describe what happens if it is impossible to continue testing due to the defects. In other words, if things go so bad that the planned testing activities cannot go on, they have to stop until after the defect elimination.
As the name suggests, we inform a client about the materials they will receive to witness the results of the work. Test deliverables usually show testing outcomes in a form of metrics: the number of tests completed, bugs found, etc. In a way, metrics are numerical indicators of quality, though it shouldn’t be the only criterion for estimating the work done.
A SDLC may be unpredictable. Sometimes it takes more time than initially expected to test a product and deal with risks. If the deadlines are tight, some parts of the functionality may remain untested. In this case, a team still includes left-out tasks in a Test Plan. Also, this section can describe the work scope to cover in case all the tasks are closed before the deadline.
In general, this section summarizes the needs for testing hardware. Here we mention the tools used for testing. If needed, you can describe the equipment and its features. It is necessary if, for example, a project will require exploiting a VR kit, some specific devices that need to be purchased, etc.
If we get a task to test software for nuclear reactors, it is likely that the team won’t fully understand the specifics. Exaggerations aside, when the team is to test a project from an industry they are not familiar with, it makes sense to have a lecture or short course from experts. It will help to understand the particularities of a project and make the work more efficient.
This clause describes the areas of responsibility of each member of the QA team. A convenient way of providing this information is a table with three columns – name, position, and responsibility.
A Test Plan should also feature project deadlines. The team needs to evaluate the speed – that is, the amount of time the testing will need to finish testing. If there are several testing phases, clarify their order and timing.
This section overlaps with the Software Risk Issues mentioned above. In addition to the list of risks, we provide explanations on how to handle those risks and what to do in force majeure circumstances.
Every test document features the names or positions of the specialist who prepared it, those who should approve it and give the green light to the team to use it.
Finally, there is a section where you can explain the core concepts used during the Test Plan writing. A Glossary helps to prevent misinterpretation of the used terminology.
Despite the standard structure, there are several types of test plans. The differentiation is based on the particularities of the described tasks and the scope of work. To be more specific, QA teams tend to use the following classification:
Compared to a Test Plan, a Master Test Plan is more static. That’s the key difference. As a rule, a project team uses one Master Test Plan and several shorter Test Plans for different levels or types of testing that describe individual modules of the same application.
Regardless of the type, you can create a Test Plan without using any specific tools. You can come across the phrase “Test Plan management tools,” but the wording is a bit off here. A Test Plan is a document, and the only tool you need to manage it is a text editor. Usually, people actually refer to test management tools, like TestRail, Testpad, QMetry, Kualitee, etc. Maybe, it’s another popular tool, Azure DevOps Test Plans, that causes this confusion.
Many find it complicated to tell the difference between a Test Strategy and a Test Plan in software testing. Nevertheless, these are two different documents. In short, a Test Plan is more detailed and covers more aspects than a Test Strategy. The latter is often used at the organizational level and rarely changes. Meanwhile, a Test Plan is more dynamic and used at the project level. A Strategy is usually a part of a Plan.
There is also a QA strategy that stretches beyond testing and encompasses other quality assurance activities and methodologies. You can learn more about what’s inside a QA strategy in one of our previous posts.
As you can see, a Test Plan is voluminous, often difficult to write, but a crucial testing artifact. It guides the team through a well-structured testing process, preventing a lot of stressful situations and misunderstandings. Moreover, a Test Plan helps team members stay on the same page since stakeholders and developers can have access to it.
Test Plan writing requires strong analytical skills, attention to detail, and the ability to think several moves ahead. Though complicated to develop, the result always pays out. So, even if documentation writing seems less interesting than testing, only together they make the QA process efficient.
Result-driven QA isn’t always about planning and strategizing. Sometimes, the best thing for your product…
A flimsy UI doesn’t lead to customer frustration, negative reviews, and high churn. When people…
Good communicators tend to do much better in life. And this applies to software as…
You can’t know if anything is wrong until a problem pops up. That’s what someone…
What is the root of quality in software? A good budget, a smart strategy, customer…
We all want change sometimes. And wouldn’t it be perfect to have a person who…