This is a guest post by Nishi Grover Garg.
Test automation poses its own challenges different from manual testing. Teams struggle to get the most out of their test automation due to many hurdles along the way.
Good planning can act as a solid foundation for your test automation project and help you fully reap the benefits. Consequently, there are many things to consider and discuss prior to jumping into test automation to ensure you are following the right path.
Here are four main questions to ask yourself before starting with test automation.
1. What is our team’s goal for test automation?
Test automation projects can begin for a variety of reasons, so the team needs to be clear about the underlying goal of undertaking their test automation.
Your main goal could be to:
- Reduce the execution time of your tests, mainly regression tests
- Enable manual testers to spend more time on exploratory testing by automating repetitive regression tasks
- Reduce technical debt of leftover or pending tests by cleaning up tasks at the end of each sprint
- Establish tests to be run as a part of your continuous integration system in order to have more confidence in the new features being built and to get upfront information on things that fail
Whatever your goal, it must be clear to you and your team because it should form the basis of all decisions made thereafter: the tools you pick, the people you involve, and the strategies you adopt.
2. What about implementation?
The next point of discussion should be about the implementation of test automation. Who will be automating the tests? Do you have specialists on your team, or are your testers trained? Or do you want your developers to pitch in to write the automation test scripts? If so, then can you afford to take them away from development tasks, and for how long? Is there a plan in place to train your testers to take up automation of scripts in the long run? Can you schedule training or onboarding for your testers to bring them up to pace with the new tool?
Depending on who is going to be allocated the test automation scripting task, you will need to select the tools and technology to be followed based on their expertise as well as on the needs of your system. If your manual testers want to begin working on automation quickly, you can look for codeless technology or tools that require minimum coding expertise. Though some tools will have an initial cost, they may prove beneficial in the long run when you look at the initiation, training, and maintenance of the scripts, and the support they provide.
Whoever you pick to do the automation also needs to have access to and understanding the business flows and scenarios that will need automation. There needs to be a process to hand over the tests to be automated to the right people with the relevant information and complete test data.
If testers themselves are doing the automation scripting, they must be given guidelines on which tests to pick up for automation, priorities, and sequencing, and a robust framework to which they can add on their test scripts and rerun them easily.
Multiple people collaborating on the automation project will also require you to develop standards and conventions so that everyone is on the same page and has the access they need.
An important point to remember about the implementation of test automation is that it is a project in itself and needs a formal process and deadlines. If we treat it as a side task and let people decide when and how much they contribute, it will lag and eventually fail.
3. What is our execution strategy?
Along with the implementation strategy, you may also need to decide on your test automation execution strategy. This includes answering questions like, when would you like to run your automation scripts? How frequently are they supposed to run? Who would run them, or would you like an automated trigger as soon as any new code gets checked in?
Depending on your answers to these questions, you may need to look at the continuous integration (CI) system you already have (or need), and any additional setups or plugins required to run your automation scripts. You can also look for desired code coverage analytics, run results, and reporting options. Then the necessary reports and dashboards can be discussed and tried out.
4. Who will focus on maintenance?
Test automation projects suffer the most because of a lack of proper test script maintenance. As soon as you plan to begin the test automation, you must decide on a strategy for triaging issues with test scripts, their failures, and their maintenance.
This will also define who should be notified of script failures, how the automation run reports should be shared across the team, and what the maintenance strategy should be. Teams must also share upcoming changes and new features that may cause changes to existing scripts so that the scripts can be altered before running in relevant sprints.
Test scripts left unmonitored for too long will become untrustworthy and unreliable, so the task of keeping them updated and running must be allocated to someone specific, not left to the developers and testers in general.
You also need to look at your current methodology and see when and where your development process allows time for automation script creation, maintenance, and refactoring. Projects following an agile methodology will vary significantly from traditional and waterfall methodologies here.
If you are thinking about beginning a test automation project, these four questions will help align your strategy. Even before you do a proof of concept or begin looking at tools, you must define the right goals and have a concrete plan in mind to ensure that you get the most out of this endeavor and are happy with your return on investment in the end.