Techstack · Follow
Published in · 9 min read · Dec 5, 2022
--
Having a plan generally keeps you out of trouble.
Think about it: we write marketing plans, business growth plans, and even defense plans for sports! We do this to understand the scope of work, set objectives and desired results, allocate required resources, and identify the steps we need to take to reach our goals. Software testing is no exception, and a test plan helps us streamline the process.
Sadly, not everyone believes it’s a good idea to have a plan until it’s time for auditing or product certification. In reality, creating a plan at the start of your process brings a host of benefits, including better QA onboarding and ensuring that your entire QA team understands the required deliverables.
In this article, we’ll explore what a test plan is, why it’s important, how to develop a solid product testing plan, and what we use as a sample at Techstack.
Let’s start with the basics.
A test plan is a technical document that contains a detailed description of your test strategy, goals, procedure, resources, schedule, and deliverables. It’s designed by the QA team and used across teams to maintain the transparency, control, and sequence of all testing activity.
A test plan serves many purposes:
- It forms a framework for checking whether the developed system works according to its design and objectives
- It helps you find bugs and fix them before product release
- It documents the product’s limitations
- It helps onboard new team members as it stores and shares QA knowledge
- It forms a central reference for information about the product
To ensure these benefits, an effective and successful test plan has a few key qualities:
- It stays relevant and updated throughout the whole development and testing cycle, meaning that every change in production should entail a change in the test plan, especially in CI/CD systems.
- It should be available to both QA and external teams (business analysts, developers, project managers, etc.)
- Creating the test plan should take up to ⅓ of the test cycle time.
- It’s usually created by the QA team lead or QA manager and includes input from all QA specialists.
- It provides detailed descriptions to guarantee a more transparent testing activity.
- Every aspect of the test plan should match the intended business needs. For example, if a software product will help people process sensitive information safely, your test plan should include the framework to test this specific aspect.
Now that we’ve described what a test plan is, let’s look at why it’s important and who will benefit from it.
A test plan benefits mature vendors as it structures and streamlines the testing process. However, it’s equally useful for startups, as bugs and instability can easily hamper your product’s growth. More specifically, developing test plans:
- Provides the testing team with a clear view of its task, responsibilities, needed resources, deliverables, and goals
- Creates a single source of truth for external teams
- Allows team members to work unsupervised
- Helps onboard new team members faster
- Synchronizes teams
- Allows PMs to plan deadlines more accurately
- Provides product owners with high-level documentation they might need for auditing and certification
- Shows developers when and how testing iterations will occur
In short, developing and maintaining a test plan benefits every stakeholder, from testers to product owners and developers. So when should you write one?
A product testing plan is usually written during the development stage and is agreed upon by all teams involved (designers, testers, product owners, developers.) This saves time for test execution and lets you address changes that occur during development.
Developing a test plan also comes after you’ve written a test strategy: a document containing general principles of the testing process and how the tests will be run.
Once you have a test plan, there will be cases when you need to revise or rewrite it, such as if you have a high rate of reopened tickets or if detecting and fixing bugs is taking significant time.
You now have a clear picture of when to create or update a test plan.
Now, let’s review the most popular test plans in software testing.
There are three basic software testing plans: master, level, and specific.
This high-level plan overviews the testing process, divided into phases and levels. It describes the testing tactics and strategy, the connections between the different levels and test tasks, the scope of work, and the choices made during the testing process.
These plans cover each level of the testing process, from unit testing to acceptance.
- A unit (component) test plan contains information on testing individual product components (program, function, procedure, etc.)
- An integration test plan describes the testing process for integrated components and their interaction (components integration, systems integration, etc.)
- A system test plan helps check the performance of the complete and integrated software as a system.
- An acceptance test plan helps check delivery acceptability and product compliance against business requirements.
Level test plans contain testing schedules, benchmarks, activities, and templates-all the details that a master test plan may not specify.
There are also test plans for testing and verifying activities that the master test plan may not mention. Usually, they’re created to check how a product performs under specific conditions, and the results of such testing are used for creating risk management strategies.
- Performance test plans, whichrecord how a system performs under a certain load to assess its responsiveness and stability.
- Security test plans, which record activities aimed at uncovering vulnerabilities and potential loopholes.
The most common specific test plans are:
The content of your test plans depends on what needs to be tested. Nevertheless, there are common standards and components you can use as a guide.
Since needs vary by industry, purpose, and product, there’s no one-size-fits-all universal solution for developing test plans. However, the IT industry does have standards for creating test documentation. Two common ones are the IEEE 829 and the IEEE 29119.
These standards may be useful if you need quality certification for your testing process. In other situations, you can draw up your own test plan based on the main components it needs to contain.
- What should be tested
- How it should be tested and when
- Who will do it
- What resources the tests require
- What the deliverables and success indicators are
A test plan should cover all the details regarding the testing process, such as
To cover these things, most test plans contain seven core elements.
- Components and functions to be tested: the scope of what the QA team is responsible for
- Components and functions not to be tested: the scope of what lies outside QA responsibility
- Third-party components: a description of integrated components the team can’t influence or fix but which may affect the product’s performance
This section details the objectives of a specific test project, user scenarios, and limitations. It usually contains three parts:
A clear and accepted scope section will save you unnecessary work and clarify your liability if problems arise.
In this section, you should define what conditions and requirements should be met to deem the testing successful. These will be different for each development process. For example, if you work in Scrum, you will have Release quality acceptance criteria and Sprint quality acceptance criteria. These criteria will also vary from product to product, so describe them as clearly as possible.
- Test team roles and responsibilities
- Testing tools
- Environments
Resources cover both human resources-who you’ll need to carry out the testing phase-and technical resources such as materials, environments, software, tools, and hardware. This part may be divided into the following groups:
This section is essential for every test phase, as different test phases require different resources. Knowing them before starting testing will help you meet deadlines and prevent disruption.
This part of your plan describes the output documentation that every QA specialist should provide as a result of their work, such as:
These documents should describe in detail how the assigned task was performed, what was used to complete it, and what the tester achieved.
Your test plan should include a scale of priorities assigned to a bug or error found during a test. These priorities show how significantly a bug affects product performance.
- Critical: the tested module isn’t available or doesn’t work, preventing any further testing
- Major: the product does not function as expected, or the results don’t meet the acceptance criteria
- Medium: the problem conflicts with business logic, tested parts work incorrectly, or additional features don’t work as designed
- Low: bugs don’t contradict the product’s logic and can be easily fixed
Here’s an example of what a scale could look like:
This is the most important part of any test plan, especially if the tested product is designed for highly-regulated industries. Here, you should document all known risks along with their likelihood, effect on the testing process, and priority, as well as what will be done to prevent these risks from occurring during the testing process.
This section is the base for the product developers and engineers to create a risk management framework. It will also help mitigate consequences as quickly as possible when a problem occurs.
This part is optional, but extremely useful for testing teams. It gives a visual overview of processes and workflows in schemes and algorithms. Here, you can describe the step-by-step execution and decision logic of any testing activity within the project.
Such descriptions help the whole team understand upcoming processes and give a global view of testing activities. Here’s an example:
Your test plan may include other sections alongside these common ones, and that’s fine. The aim is to make the plan as detailed as possible and keep it relevant throughout the development and testing cycles. Here’s how you can do it.
An effective product testing plan is:
- Analyze the product: define its users, business goals, and technical requirements, and review product documentation.
- Design the test strategy: define testing objectives, how you’ll achieve them, and the cost/resources required to make it happen.
- Highlight the test objectives: identify the features or levels that should be tested and define the test goal for each one.
- Define test criteria: state suspension (unsuccessful test result) rules and exit (successful test result) rules.
- Plan your resources: define the human, technical, and material resources you require (e.g., who does certain tasks and what they need to use).
- Pinpoint test environment: identify the conditions under which a test should be performed (maximum load, tech requirements for running it at the user end, etc.).
- Schedule activities and set milestones: estimate work hours needed to complete the testing tasks, schedule the test case sequences, and set milestones.
- Determine test deliverables: define the deliverables the testing team should provide before testing (test plans, test case, and test design specification), during testing (bug reports, error logs, test scripts, simulators, test data, etc.), and after testing (test results, defect reports, installation guides, release notes).
Use this 8-step workflow as an inspiration for writing your plan.
After you have completed these tasks, you’ll have a solid basis for your test plan. To flesh out your sections, you can follow the IEEE 829 or IEEE 29119 standard or use our test plan template as a reference.
A test plan is essential for creating an organized, predictable, and easy-to-manage testing process. With a plan in place, you can provide a shared vision of the testing procedure and scope to all stakeholders and external teams. This minimizes misunderstandings and ensures your team is providing value to your product.
Plus, developing a test plan brings structure to your whole process, as it records and streamlines the work of QA team members. Most importantly, it decreases the risk of overlooking problems and bugs affecting your product’s success.
You can read more about our QA services and improving your QA workflows on our site. Alternatively, if you’re ready to smooth out your quality assurance processes and add value to your product, contact our team and let’s discuss how our expertise and QA specialists can help!
Originally published at https://tech-stack.io on December 5, 2022.