Table of Contents
Introduction
Software testing helps to identify the issues before they go to production and save a considerable amount of money. It improves the security, the overall quality of the product, makes it easier to maintain.
In every project, software testing begins with test planning. A well-developed test plan brings structure and logic to the testing process and acts as a basis for an efficient testing process. The more complex software is, the more difficult it is to test it. And the importance of test planning grows along with the software complexity.
In this article, we will tell you, what is the test plan for automation testing, what role it plays in the project. You will also learn, how to develop your own one from scratch.
What is a test plan and why you need it?
A test plan is a document outlining the execution of a test strategy: test objectives, schedule, estimated expenses, and other resources necessary for efficient testing of a particular software project.
It is created by QA managers or leads based on the data from QA team members. The doc is also shared with the Business Analyst, Project Manager, Development team members and other team members associated with the technical side of the project. The stakeholders also have access to the test plan in order to know how the project will be tested.
A well-created automation test plan is a flexible document that can be adjusted according to project changes and newly appearing information. The goal of a test plan is to ensure that your software meets the demands and behaves as expected:
- Responds correctly to all types of requests
- Performs according to the standards outlined in the specification
- Is installed and run correctly in all necessary environments
- Gives the result the stakeholders expect
With a test plan, the testing process becomes more logical and predictable.
Test plan importance
A test plan is the basis of any QA process in the project. It defines the way the software will be evaluated, what specific areas will be checked and who will run the tests. Having a test plan, all team members know how the testing is going on, their own areas of responsibility and the ones of their colleagues. This helps the testing team to work efficiently.
A good test plan helps to define the areas of risk, set the order of tests and efficiently distribute the resources. The plan is an important document that is used during the entire development and testing process.
Test plan structure
Different teams have different approaches to test planning and design different templates for their plans. Yet, there are some basic things that should be represented in any automation test plan sample:
- Introduction
Here you define what you actually will do. What is the product about? What is its goal? What is the target audience? How the product will be used? Describe the functionality of the application, its logical structure. Be as specific as possible, avoid the use of general phrases. - Scope of work
In this part, we speak about the components and features that need to be tested. You can also describe the equipment and environment that will be used for testing. - Quality and acceptance criteria
Here you set the criteria according to which you will evaluate the product quality. The criteria are defined by the client or product owner and verified by the development team to make sure they are clear enough. - Critical success factors
This point detects what you need for successful testing and completion of the project (fully-fledged access to the bug-tracking system, test management system, no delays from the development team). - Risk assessment
This is the most important section that is specific for each project. Here you need to describe everything that might occur, how you will prevent the risks and deal with them and take the corresponding measures for prevention. - Resources
Here you manage all the key resources necessary for running the testing: environment, software, hardware, tools, human resources. - Test documentation
Here you store the list of the necessary documents: Test plan, Test report, Test cases, Bug reports. Remember to define the place of storage of test cases and test plans (bug-tracking, cloud storage, server etc). - Defect management
This section defines the way the bugs will be reported and managed: screenshots, test logs, screencasts - Testing schedule
Here you reflect the deadlines for all test levels and cases and the overall testing deadline.
Steps in test automation plan
Now that you are aware of the importance and structure of an automation test plan example, we will give you a step-by-step algorithm for creating a custom plan for your project.
Step 1. Product analysis
Before starting the testing, you need to thoroughly study the software and learn everything you can. This will help you to understand its goal, functionality, end-users, and create relevant and useful test cases.
Try to answer the following questions:
- Who will use the product? How? What for?
- What is the main goal of the product?
- How does it work?
- What are the software and hardware specifications?
At the stage of analysis, we recommend you to interview your clients, designers, development team, review the documentation, and study the products of competitors.
Step 2. Test strategy implementation
Test strategy is a general approach to testing established in a particular company. A test plan is a way the strategy will be implemented in a particular project. Let’s see, how the test plan is created based on a test strategy.
1. Defining the scope of testing
Before developing the test plan, you need to study the scope of testing. This will help you to give your team precise information about the project and the components that will be tested. To determine the scope, you need to study exact customer requirements, estimated project budget, and specifications.
2. Testing type identification
Testing type is a standard procedure formulated to spot specific product bugs.
The most common testing types are as follows:
- Unit testing — checking the smallest items of code
- API testing — checking if the app API responds to the queries correctly
- Integration testing — uniting the software modules into a group and checking their interaction
- System testing — complete evaluation of the software as a solid system
There are plenty of other testing types used in software quality assurance. It’s impossible to handle all testing types in a single project, so it’s up to the Test managers to define the priorities.
3. Risk management
Risk is an uncertain event in the future with a probability of occurrence and potential of loss. Once the risk happens, it becomes an issue. While creating a test strategy and plan, you study the possible risks and think about the ways of mitigation. Here are examples of risks and prevention measures:
- Risk — lack of technical skills for project testing
- Measure — pay the training for the team
- Risk — the testing schedule is too tight, we might break deadlines
- Measure — set the priorities for all testing activities
- Risk — budget overrunning
- Measure — check the scope before starting the testing, make a detailed plan, track the progress
4. Creating test logic
Here you define how the testing will be held and assign responsible people. At this stage, you also can create the testing schedule and set the deadlines.
Step 3. Defining test objective
Test objective is the goal of the entire testing. Generally, the testing goal is to find as many defects as possible and fix them before release.
To set the testing goals, you do the following things:
- List all software characteristics you need to test (functions, performance, interface, API)
- Define the ideal result of each parameter
Examples of test objectives:
- Check that all features (login, search, checkout) work without any errors in the prod environment
- Verify that the interface meets the customer demands
- Verify that it’s convenient for the user to use all the features
Correct setting of test objectives will help to manage and coordinate how the testing is held.
Step 4. Setting test criteria
Test criteria is a rule that is the base of a testing procedure. There are 2 types of test criteria: suspension and exit ones.
Suspension criteria are the ones that suspend the test cycle until the issue is resolved. For example, if 40% of test cases are failed, the testing is stopped until all the issues are fixed.
Exit criteria specify the successful completion of a test cycle. For example, 95% of test cases must pass.
Step 5. Resource planning
A resource plan is a detailed summary of resources necessary for successfully completing the testing. It can refer both to the software\hardware and human resources.
Human resources:
- Test manager — managing the entire project, setting directions, resource allocation
- Team of testers — identifying and describing test techniques and tools, executing the tests and logging the results, verifying the test approach
- Developer in the test — implementing the test cases and programs
- Test administrator — building and maintaining test environment, support of testers during the test execution
- SQA members — checking that the testing process meets the demands in the specification
System resources:
- Server — installing the tested application (web server, database server, app server)
- Testing tools — there are plenty of testing tools for test automation, simulating the user behaviour, generating test reports
- Network — you need a network connection for simulation of the real environment
Step 6. Creating the test cases
The main task in developing a test plan is creating the test cases describing the exact steps taken for testing.
It should contain the following information:
- What is tested?
- How is it tested?
- Who is doing the test?
- What are the expected results?
Test cases are developed by the test manager and the other members of the testing team.
Step 7. Planning testing environment
A testing environment is a system of software and hardware that will be used for executing the test cases. It consists of business, user environment, as well as physical ones, such as servers.
To set up the testing environment, you need to take into account the following things:
- Hardware and software required for product testing
- Requirements for the client’s device to use the app
- The maximum number of users the app can handle at a time
- Will you use simulators and emulators during the testing?
Step 8. Scheduling and estimation
At this stage, you divide the project into smaller tasks and estimate the duration of each one. Then you make a schedule for completing each of them.
The schedule is created by the Test manager that needs to take into account the following points:
- Employee and project deadlines — the working days and days off, resources, and other factors that might influence the deadlines
- Project estimation — based on estimation, the Test manager knows what resources are necessary for completing the project and can make the schedule
- Project risks — knowing the risks will help the manager to allocate extra time to the schedule to fix the possible issues.
Step 9. Deliverables
This is the list of documents and tools to be maintained for the support of testing.
There are different lists of deliverables for each testing stage:
- Before testing: test plan, test cases, specifications
- During testing: test scripts and data, simulators and emulators, error and execution logs
- After testing: test results and reports, bug reports, release notes
Conclusion
A detailed test plan will help you to smoothly organize your quality assurance process. With our article, you know, how to develop a test plan for your project. If you wish to outsource this to a team of professionals, feel free to contact our team. We will give you a free consultation, explore the possible options and choose the best one for your business.