Automation Testing Strategy: A Checklist
Test automation is a pillar in DevOps and Agile. Implemented carefully, it helps increase product quality and time-to-market while reducing costs. It’s why QA teams everywhere are having a test automation strategy in place instead of putting fires.
So you have decided to give test automation a try, the question now is:
How are we going to do this? What’s the Plan?
Remember that you can always spend a little time developing a test automation strategy to help you save valuable time during sprints.
This checklist is to help you develop test automation strategies. It walks you through eight action items for you to consider as you embark on your automation journey.
☑️ 1. SCOPE
In Automation Testing, defining a project scope includes defining timelines and milestones for each sprint. Every team member, be it the product owner, developer, tester, should be onboarded about the scope. At this stage, the team must clearly define which tests to automate and which to keep testing manually.
You can consider 80/20 as a rule of thumb. For example, you can choose 80% of the test cases that, when automated, can reduce errors during regression testing to an acceptable level. The other 20% can then be either manually tested testing or excluded from the current regression suite.
Get the all-in-one Collection of Testing Templates to define your project scope effectively!
☑️ 2. TEST AUTOMATION APPROACH
When it comes to the automation testing approach, you need to consider these 3 areas: Processes, Technology, and Roles.
Test automation implementation must be well-defined and well-structured. Answering the following questions can help:
- When should automated test cases be developed during the sprint?
- When are features ready for automation testing?
- Which features should be tested manually?
- Who should handle test maintenance?
- How are results analyzed?
Identify the applications where you apply automation testing. In this, you have to decide which technology they are based on and whether your test automation platform supports these technologies. Typically, implementing automation testing will involve diverse application types: web-based, desktop-based, SAP, mobile apps, etc. Therefore, it’s important to have a tool that can meet all your automation testing requirements.
You should also figure out what kind of test automation is necessary. Unit and integration testing are typically an integrated part of development. However, there are many other tests you can automate.
You also have to define the roles for automation in your agile team, where all members know who is responsible for which part of the automation project.
Here you need to make sure that all members of the testing team have their role in automation. Examples of roles and responsibilities include:
- Automation lead: Responsible for coordinating and managing all automation testing activities in the project.
- Test case designer/reviewer: Like code reviews among software developers, you need to establish a review process for automated test cases. This means that a tester will typically have at least two roles: test case designer and a test case reviewer.
☑️ 3. RISK ANALYSIS
Risk analysis is an integral phase to project planning. However, it is important to consider risk analysis in relation to automation. This analysis is performed by composing a list of all identifiable risks based on these details:
- Description and relevant metadata
- Severity: What will happen if the risk happens? How hard will it impact the project?
- Probability: How likely that it happens?
- Minimization: What can be done to reduce the risk?
- Cost estimate: What is the cost of minimizing the risk – what is the cost of not doing it?
☑️ 4. TEST ENVIRONMENT
Most businesses have a more or less well-defined process of how software should be released to production, which typically includes one or more test environments. Some release pipelines are mature and well-defined (for example, DevOps pipeline), and the process towards fast releases has either already started or has been excluded as not relevant.
Anyway, you need to evaluate the current state of your test environments. Test automation is “deterministic”, where known inputs will produce predictable outputs. Thus, predictable test environments are a prerequisite for successful test automation.
Also, you want consider the data that is part of the tests:
- Where to store test data?
- Will it use a copy of production data?
- Can production data be masked?
- Should the test cases cleanse data by themselves after use?
☑️ 5. EXECUTION PLAN
In the execution plan, you should detail the day-to-day tasks and processes for automation.
First, choose the test cases you want to automate following the approach defined in step #1. Before you add any automated test cases to the regression suite, you should execute and verify them multiple times to make sure they run as expected. Because false failures waste your time, you want to ensure that test cases are robust and reliable.
Second, establish a set of best practices that make test cases resistant to changes in the system being automated. These best practices will be based on the application in question. Also, they should cover how test cases recognize and interact with elements in the application under test.
Third, you need to execute test cases with the pipeline orchestrator (such as Jenkins or Bamboo) or with a test scheduling tool. This means that regression tests will run either as part of a build/deployment event or at a known time during the day. Also, you should consider choosing a setup that enables the parallel execution of the test cases. The purpose of this is to get the feedback from the regression tests faster back to the development team.
You must be noted that you should never test too much. You can always expect good outcomes from the mix of automation testing, reliable test cases, and scheduled execution.
☑️ 6. RELEASE CONTROL
No matter how complex and mature your release pipeline is, there is a time for you to decide whether to release a build or not. Some parts of this process can be automated, other parts still require human intervention. Thus the final decision should be based on a mix between algorithms and human touch.
In any case, you need to ensure that the results from test automation are part of the release decision. You can either decide to only allow releases when all regression tests pass or you can have the lead tester approve the result. Once you have run all regression tests, you should consider making the application logs as part of the release decision. In case the regression tests have good coverage, errors not related to the UI should reveal themselves in the log files.
☑️ 7. FAILURE ANALYSIS
Planning how to analyze failing test cases and the actions to take after that is an essential part of any test automation strategy. However, people sometimes neglect this step. Usually, it takes longer than expected for a failing test case to be described, understood, and accepted in the development backlog. Properly planning for this can save you lots of time and frustration in a development team. Detail how different errors will be coped with, like this
- Environment issues
👉 Raise a ticket with the DevOps team
- A bug in the application under test
👉 Flag a bug for Development
- A bug in the automation scripts
👉 Create a task for the test team
REVIEW AND FEEDBACK
That’s it. Now that you have a draft of a test automation strategy, have it reviewed and approved by all team members. Make sure to cultivate a culture for continuous learning and improvement, which is critical to automation testing. You should also include in the strategy feedback from stakeholders, peers, and all team members working with automation. As the project progresses, you can adjust the strategy as needed.