How To Build a Test Automation Strategy in Seven Simple Steps
Lack of planning and ignoring the strategy phase has cost millions to different companies like Motorola and sometimes, they had to either let people go or shut down operations on a product or on a location. While it may not be the first thing to think about when we discuss a project idea or a new tech integration, if strategy and planning are ruined, the road ahead could be bumpy. It works as a blueprint for the subsequent phases and a lot of tasks take references from it.
Consider that you are unknown to the concept of test automation strategy and are now looking to induct test automation into your testing phase. What things should you consider, and how to plan all those things? We will explore all this one by one to construct meaningful strategic points till the end.
Table Of Contents
- 1 A brief introduction to test automation
- 2 A brief introduction to a test automation strategy
- 3 How to build a test automation strategy?
- 4 Expert thoughts
- 5 Summary
- 6 Frequently Asked Questions
A brief introduction to test automation
So before getting to the strategy part and building up a careful plan, we must understand what is “test automation” – the protagonist of this post.
If we rewind a little bit to the pre-automation days, software used to be something very simple and with limited functionality. Websites used to focus on just providing a limited number of things. For instance, finding the area location by entering the pin code could be one full website. But then the world started to realize the importance of software and its capabilities which led to the invention of newer technologies. While a pin code search website is extremely easy to test manually, an eCommerce one is a nightmare. Definitely, it is possible in theory, but it leads to extended testing time and error-prone software. Who would want to test the input field two times a month with hundreds of data repeatedly? Multiply that with a hundred more functionality, and you get buggy software with a sleepy tester.
As usual, when we encounter repetitive things in our way, we turn towards automation, and something similar has happened with testing also. With the advent of newer testing methods like data-driven testing and regression testing, software quality did improve, but at the cost of increased repetitiveness. Test automation would mean we can feed a few instructions to the computer and let it do the rest of the job. While it started with smaller steps of inputting the text in an input field at first, automation had to step up with the complexity of the software.
Today, test automation is a complete domain in itself. Testers have to decide whether they want to work as manual testers or go into automation testing, as it has become a deep and vast subject in itself. Thanks to the growing software industry and open-source culture, today, if you wish to automate a certain part of the software, you’ve got a separate tool for it. While it is true that we cannot suffice test automation in a single post, the strategies remain consistent across all domains, thankfully. However, it is important to know why we are going through all this trouble.
Why do we need to automate software testing?
Test automation looks good in theory and seems like a relevant thing considering the size of the software today. But how good is test automation, and what kind of benefits does it offer? Let’s summarise them in points.
- Time to delivery – The most important thing is that the work that would be done in 10 days can now be done in a single day with test automation in place. This would mean that we can reduce the time to deliver the software and can opt for agile methodologies for faster and better development and testing practices.
- Cost reductions – With manual testing in place, we are paying the tester for every second he is working on software. Even if he is doing the same thing repeatedly, we ought to pay him for his time. However, do the same rules apply to a computer? Fortunately, we do not need to pay a system for working on the software, and therefore we take complete advantage of this to run the tests 24 hours. This process brings down the testing costs drastically.
- Increased test coverage – All that time that was spent on testing the software manually could now be spent on writing new test cases and exploring various other angles of the software. As a result, we get an increased test coverage which is a KPI in testing.
- Scalability issues – A software of size x would need 10 manual testers, for example. So theoretically, if the size increases to 2x (or complexity), we need twice as many testers and spend twice as much money. What about when the software becomes 10x in size? It’s hard to think about it. Test automation deals with scalability without any additions to its existing specifications. It may take a little bit more time, but once test automation is set up, the same test works on any size of the software.
- Extend features through software – Test automation is performed by a test automation tool. These tools are equipped with facilities for extending their features to other tools, and all this setup can be turned into an auto-pilot with no manual intervention. The best example of this arrangement is the CI/CD pipeline and automation it to run codes without any manual work.
Along with these listed points, there are numerous other benefits that you will explore once you integrate automation into the process. However, to reach this point, obviously, we need to do everything right. This is where the test automation strategy comes into play. And unsurprisingly, it comes with its own set of benefits.
A brief introduction to a test automation strategy
Up until this point, it is quite clear what we mean by test automation and how did it come into existence. However, test automation today has grown so much that we cannot just say, “We are opting for test automation”. It is like saying, “I drive”. But am I clear about what I drive? Why do I drive that? and what kind of vehicle is it? Such questions are familiar in test automation as well. If you do test automation, what are your plans, and what tool? Why that tool? What kind of automation? And it goes on and on.
To answer all these questions, we need to carefully assess the software and what suits best for us. This is termed a test automation strategy i.e. a strategy to implement test automation into the software.
A test automation strategy is what happens before the actual test automation starts. It’s everything that you should look forward to when you get stuck during automation and everything that will help you move forward to the next step. For instance, if the automation strategy states that at least 80% of test coverage is required, that can be looked forward to as a benchmark while creating the tests.
Benefits of creating a test automation strategy
When we initiate test automation by first creating a plan and strategy, we reap the following benefits:
- Faster test automation: The test automation strategy provides a blueprint for test automation and steps to take for moving ahead. It helps facilitate the process faster and works as a guide to wrap things quickly.
- Best for documentation: A test automation strategy highlights everything that the test automation will work on. Therefore, if we document this, everyone associated with the project can get familiar with the testing process without going into technical details.
- Helps in analysis: The test automation strategy is planned before the actual test automation takes place, but it is exactly how our test automation would look like. So, here we can analyze the risks without investing any time in work and reworks and make sure we choose the path of minimum risks.
- Helps in reconfiguration: To continue on the previous point, if somehow, we get stuck in the test automation phase and figure out that the path we chose has not proved to be the best for us, we need not analyze all our decisions by calling the team. Instead, we just go through the strategy we followed and reconfigure it here, as everything we do is summarised in this document.
- Provides a standard for the future: The test automation strategy is just not for the current testing phase but will be followed for all future testing phases. Hence, the test automation strategy becomes a standard for the organization, the team members, and the new members that join in the future.
- Brings down costs: A faster feedback cycle and faster reconfiguration means we are saving time and investing it into other productive things. Everything related to test automation strategy, therefore, saves time in one way or another.
How to build a test automation strategy?
Finally, when we have gathered enough information about the test automation process and the test automation strategy, it is time to know how to proceed in creating one in detail.
Step 1 – Separate automation tasks with a clear vision
The first thing to understand in creating a test automation strategy is the scenarios in which this strategy will be applied. For this, we need to define clear boundaries as to what checklist needs to be passed for a scenario or a task to select for automation. It will help in the current as well as all future testing phases.
For a simplistic approach here, we can consider an action associated with a type of automation testing. Since these types have been developed with the need of automating these respective scenarios, it not only helps us select tasks for automation but also to which domain it should be selected. The following bullet list may help:
- Repetitive tasks – The first hint of selecting a task for test automation is when it is going to be repeated several times in the future. For instance, if on a particular URL, you need to test whether the comment section or share works or not in every release, it should be automated.
- Large data inputs – The scenarios that need large data inputs to verify their functionality should never be handed over to the manual testing team. Consider a scenario where 1200 login credentials need to be verified and the manual testing team finds a certain input not working. They send it back to the developers, and they return it by correcting it. However, since a new change is pushed, all 1200 credentials need to be tested, including those that passed earlier. This is clearly an error-prone scenario and should be selected for data-driven testing.
- Multiple platform support – Application that needs to be run on a browser and mobile OS need to be tested on hundreds of devices. The device market is highly fragmented, and we cannot leave a single target device. Moreover, the devices keep appearing in the market regularly, which makes this task ever-growing. Hence, since similar things need to be repeated on multiple devices, cross-browser test automation is the perfect solution for it.
- Verify stable features – Features that have been released to the user are considered stable and are intended to always remain so with future releases. But in software development, no one knows what change could affect which part of the software. Therefore, we always check the stable features while releasing a new version. This becomes a repetitive task. If two versions are released in a month, hundreds of features with hundreds of their own scenarios need to be tested. Therefore, we put these tasks in the automation basket precisely in regression testing.
- Scenarios leading to database alteration – Today’s software work heavily on the API system to make changes to the database. These APIs are the backbone of any software and therefore require thorough testing. Every API should be selected to be included in the API testing phase.
- Tasks that cannot be tested manually – A few of the scenarios can never be automated and honestly, should never be. For instance, usability testing is one such scenario that does not have a defined pattern. It just explores the application like a user with the aim of finding the defect. Automating this would risk the application and can send bugs into the released version.
- Tasks that are complex and require longer time investments – At the start of this post we highlighted the reasons why test automation came into existence i.e. to move things faster and take over repetitive tasks. If something is taking longer time to test and is complex to setup, obviously, we are bearing high costs for it. Such tasks should be automated.
These scenarios are the most generalized ones that will fit any software type. However, we do believe that sometimes a unique software may ask for a unique set of protocols to select what goes into automation and what does not. Do observe the business requirements to ponder over this list, as it will be helpful in the subsequent testing phases.
Step 2 – Build the team
The most important work in defining a test automation strategy is to build a team that will work on it. If the team is inefficient, even the perfect strategies cannot save the software. However, there is no fixed pattern when it comes to building a team and a lot of things depend on step 1 discussed above.
As a strategist, observe the finalized scenarios in step 1. For instance, if data-driven testing is included, someone who has worked in data-driven testing and knows all the cases that need to be tested should be selected here. The capabilities of the team should always match the type of tasks the team is going to perform. Else, either the testing may fail, or you may spend too much time and costs in training the team.
If you have a fixed set of members, you can ignore this step.
Step 3 – Choose an automation tool
Now that we have selected the scenarios and the team, it is time to choose an automation tool that lies in sync with the above two steps. For instance, if API testing is included, not only the team member should have experience in it, but also the tool should support it. So while choosing a tool, we need to carefully assess the scenarios as well as the familiarity of the team with the tools. The team should have prior experience in using the tool to save time in training costs.
However, considering the vast range of scenarios and the probability that not all team members would settle on a single tool easily, this step could be hard to decode. A few predefined steps in this regard help, but if we look at the deeper side of this problem, the question is not about the tool per se but how the tool is used in particular. For instance, all the team members should know programming, scripting, and all the libraries and elements that help the tool target elements in the software. The question is about whether a tool supports the language known to all the team members. The question is whether all the team members know all the plugins used in testing. So many questions cannot have a single answer. Therefore, we turn towards something called a codeless test automation approach.
Codeless test automation is executing automation test scripts without writing any code, hence the word “codeless”. The idea behind this approach is to eliminate the hurdles that come when we select a tool for the next automation. If a tool need not have scripts, we need not ask the team members whether they know any programming language or not. As a result, a codeless test automation tool can be used by anyone, anytime, and in any project given that it supports the automation scenarios finalized in step 1.If you are someone who is just starting their journey with codeless test automation, the best tool to start with is Testsigma. Having used it personally for my own projects, Testsigma’s best feature is that it uses the English language to write test automation scripts. Since English is well known across the world, even if the team members are located at different geographical locations, they can coordinate and write test cases quite easily. It also helps other players involved in testing, such as shareholders and business analysts, to understand the test automation and whether each of their scenarios is tested or not.Testsigma is equipped with all types of test automation types, such as data-driven testing, API testing, cross-browser testing, and much more. For people required to test native mobile applications by performing actions on the app, Testsigma provides a mobile test recorder that records actions and converts them into test scripts. It also provides real devices for testing. If we retrospect on our situation before learning about codeless test automation, we find that even if the team does not know anything about a particular tool like Testsigma, it wouldn’t take more than one day to learn about it. Since programming is eliminated, all that is left is to understand the tool and its working to start. This is presently the best approach, and if possible, we recommend you try it once for free by signing up on the platform. Always remember that the learning curve and the ability to solve complex problems easily is what makes a tool worthy of using in test automation.
Testsigma is also available as an open source and free version.
Step 4 – Risk Analysis
While completing the above three steps, we stand at a point where we can assess and explore the risks associated with test automation. The risks can be anything either related to the team, the process based on the team’s skills, or the automation tool you have chosen to work on. Whenever we find something a challenge, we consider it as a risk because challenges need extra work, which can sometimes result in the wrong direction. At this point, always assess risks by measuring the following categories to observe your overall position at this point:
- Severity – How severe is the risk? Is it a minimum loss, average loss, or severe loss of service? If it is a severe loss, we must process it carefully and keep observing it as we go along.
- Chances – What are the chances of this risk to be occurring on the team’s side or on the user’s side? A high probability risk needs to be catered to first and is generally categorized as severe as it can bring loss of business.
- Solutions – For each risk, we must identify our solution and what measures we will take to reduce them.
- Cost estimation – How much is this risk going to cost us? The costs can be direct or indirect depending on the type of risk. For instance, if some risk can be resolved by giving extra time to the tester, the cost becomes their salary for that day.
Once we have written all these points with respect to each test case, our strategy starts to hold a lot of value for test automation.
Step 5 – Simplify responsibilities
At this point, we have the tasks, their categories, the tool, and the risks associated with them. Now we can assign these tasks to people that can handle the tool as well as the risk as per their knowledge, skills, and experience. In this step, we create a list to distribute these tasks to our team members. It is very important to know each of your team member’s potential closely to complete this step. We cannot assign a high-priority, severe loss-making risk task to a new joiner. The tester or manager should also understand the past experience of a tester in the category of test automation as well tools. For categories, different types of test automation bring their own challenges that may not be explored theoretically but can only be learned through practical experience. Considering a data-driven testing expert can easily point out UI glitches as a risk to the software and business. As for the tool, in my experience, the automation tool always brings challenges to the team, and the perfect sync of a tester always knowing a tool with supported languages is rare. Due to this, we recommend opting for codeless test automation tools that eliminate all of these issues completely from the system.
Step 6 – Planning the execution and maintenance
With all the ingredients available at our disposal, we are ready to cook! At this step, we document our strategy for executing and maintaining the test cases. Answering the following questions in the document can complete this step with ease:
- What type of scenarios will be chosen for automation?
- Have we categorized the test suites, and if so, how consistent are they when compared to each other?
- What type of scenarios will be moved to regression?
- When an automation test case should be moved to regression?
- Who is responsible for adding newer test cases?
- Is the pipeline attached to test automation?
- What criteria are we following to maintain the pipeline standards?
- Have we defined the meaning of success and failure in a test case?
Once all of this is answered in the strategy document, we can move to the final step of reporting.
Step 7 – Reporting
Reporting is often considered one of the most important steps of test automation because it helps explain the results of test automation to people who are involved in testing and others who are not, such as stakeholders and analysts etc. So reporting should be such that it is neither too technical nor should it miss anything important to create a gap in the system. Our test automation strategy focuses on what a good report must look like and how we should proceed in creating one.
The most important part of reporting is being able to clearly describe the outcomes without boring paragraphs and technical insights. This is done best through pictorial representations such as graphs, pie charts, bar graphs, etc. Creating a simple pie chart for tests that have failed and passed to understand the overall outcome and then digging deep into the types of automation can help stakeholders understand how things are moving along. An example of a report generated by Testsigma helps understand its effect on a non-technical person:
This report also helps new joiners to understand the overview of the current or past testing phases. The strategy should also emphasize who can create reports and who has the authorization to edit them in the future. Next, we should also define how we will share reports (will they be hosted on a private URL? Or generated as a file?) with other team members and what location they will be stored permanently (or archived) for future purposes).
These seven steps will help you as a tester or a manager build a test automation strategy that can be used as a guide map for test automation and help analyze all the defects clearly.
Experts and industry leaders have seen the test automation process grow from scratch. They provide insights that are hard to observe in a few days as a test automation engineer. Let’s see what these experts have to say about test automation strategies.
Joe describes in his series of conferences and events that we generally focus on hardcore coding and learning complex Java syntaxes to achieve test automation. Instead, test automation is not about coding but about how to create test cases with whatever library we have. Joe focuses on how things will eventually move towards artificial intelligence and coding will be eliminated. All we would need is to create robust tests from various libraries.
“What you need to write for tests is pretty simple. You need to be able to create tests using Java libraries and things like that. It’s a controversial idea now, but as we go to more AI, there will be less reliance on hardcore coding. People will be focused on data science and testing in the future.”
Bas Dijkstra was the technical reviewer for the book Complete Guide to Test Automation and describes that even if “how” to use automation seems like the most important thing, the actual questions a tester should ask is “why” to automate certain things and “what” to automate. If the tester can answer these two questions, the “how” and other parts of the process become entirely smooth.
“This is one of the best books I’ve read on test automation. It covers not just the ‘how’ to use specific tools, but, more importantly, also the ‘why’ you should implement automation and ‘what’ to automate. It’s a great read for both test automation engineers as well as managers and team/tech leads. I was the technical reviewer for this book, but I don’t gain from promoting it in any way.“
The author of the book “Dear Evil Tester”, Alan Richardson has conveyed his thoughts on test automation that relies heavily on third-party libraries. Alan defines that instead of relying on third-party libraries to accomplish our tasks, we should consider making decisions in a different way when we code. The power of evolving frameworks is much more helpful for new testers. He explains his thoughts while talking about one of his favorite books – “Implementation Patterns”.
“After my first reading, I simplified my coding style and reduced my reliance on external libraries. Implementation Patterns is one of the few books to describe the decisions involved in ‘evolving frameworks,’ a core skill for everyone involved in automating. I will reread it.”
Test automation is woven deep into software development today due to the highly complex software that cannot be tested manually. However, test automation does not mean we input the software in a framework and automate everything from end to end. Test automation needs careful assessment of what to automate, why to automate, and how to automate. All these three questions are answered by creating a test automation strategy.
A test automation strategy answers all the questions for the testing phase even before the start of automation. It serves as a guide, a reference, and the “go-to” thing when we start working on the test automation. This post revolves around this document and how to create one efficiently. For this, we advise you to follow seven simple steps as described in the post above, along with a basic introduction to test automation concepts. With this, we can conclude this post for now. I hope it will help you ahead when you plan for test automation in building a good test automation strategy.
Frequently Asked Questions
What is the objective of the test automation strategy?
A test automation strategy works on strategizing the test automation phase ahead. Since there are so many variables and uncertainties involved in test automation, a strategy aims at visualizing everything that is going to happen and molding the test automation phase into the most efficient possible. Along with it, a test automation strategy also serves as a guide for managers, stakeholders, and team members to understand and reflect on the test automation phase before, during, and after its execution.
What is the benefit of developing an automation strategy?
Building a test automation strategy brings out a lot of benefits to the team and the organization. The most effective of them all is that we can choose to take an optimum test automation path before starting the process. Through this, we are able to cut a lot of project costs on resources and time.