Let’s start this blog by understanding what is test automation; this is a type of testing where various parts of a software/app are coded and tested automatically. It is one where human involvement can be put into other areas while the tests run and add value. Test automation is the “new” way of testing for many firms and many testers. There are quite a lot of benefits, especially when automating:
- Multilingual sites
- Test cases that are repeated
- Tedious cases
- Cases that are broad and expansive
- Wider test coverage
- Cost savings
- Frequent and thorough testing
- Faster time to market
In this blog, I will share vital details regarding automation testing, its benefits, best practices, test strategies, and it’s future. Of course, bearing in mind, every project is not the same nor the team decisions when it comes to planning automation testing, however, the details can help add value when you are planning about it.
Creating an automation test strategy & where to start from?
Automation has been a big topic for the last several years, and it has been seen that teams have found benefits in automating their manual tests to solve repetitive manual work, working with large data sets, or even getting faster feedback loop from a CI/CD pipeline and client. In order to have a positive and successful team of automation testers/ automated tests, it’s best to work on a strategy first. A strategy would allow us to understand the coverage, testability, return on investment, and a clear goal to achieve. All in all, a strategy is like a cherry on the tip as it supports the implementation of automated tests.
You may still be wondering about the true purpose of a test automation strategy. What’s the goal?
First and foremost, it’s to inform on the risk, capabilities, and functionality and arrive at a reliable, repeatable process of informing on those things. Second, it’s a way to communicate your goals and plans. It’s also a discussion starter that can sometimes be a springboard for a new proof-of-concept or a new technology to bring into your company. Finally, it’s an auditing tool that allows you to go back and look at what you planned to do and compare it against what was actually done.
Depending on every team/project, your strategy would be a little bit different. That’s the beauty; you can add the details that matter the most within your team and support your product.
Tips for your strategy:
2: Identify your risk
3: Understand your technology, tools, and resources (upgrade strategy for the tools)
4: Make sure your data is good
5: Define your DevOps & Branching strategy
6: Consider your testing environment and test architecture
7: Tag your tests & code review
8: Look for testing efficiencies
9: Embrace agile tools
Automation Testing Best Practices
An interview question I always ask- Can you automate everything? The correct answer is NO. The reason being some aspects of a product requires human validation and approval, usability testing, the look and feel of an application, and exploratory testing. Also, automating every test leads to an increase in cost, effort, and time than is practical. Some of the best practices include:
- Understanding user flows and then making decisions on critical scenarios, edge cases, or even make a core automation test suite. In a nutshell decide what test needs to be automated?
- Make sure the tests provide high value and cost-benefit, therefore communicate with your teams and understand from the very start what sort of tool, framework, tech stack required, or perhaps a colleague within the team already has experience with it. Focus on resources and requirements.
- When the accurate tool has been selected, have a process around the upgrade for the tool
- Parallel test runs save time and costs, therefore when selecting a tool, see if this feature is possible or not. Aim for self-contained flows when running scripts, as this also helps with tests running in parallel
- Code reusability is a key practise to include as well
- Code reviews are valuable and having testers and developers review the automated tests helps new eyes bring more quality as well as new ways of doing things (code quality, less code smells, less to no flakiness). Feedback is key here.
- You can start by breaking your code into smaller chunks, and simple tests initially and then put them together into one big scenario
- Collective Ownership of Tests
- Remove uncertainty
- Keep Records for Better Debugging
- Early and Frequent Testing
- Prioritize Detailed & Quality Test Reporting
Test automation can increase productivity and reduce costs and risks. But the right approach helps to achieve these long-term benefits. To gain those, you need to follow the 10-10-10- rule of test automation.
A noticeable trend in last year (2021) has been the rise of codeless test automation and AI in testing. Codeless test automation gives a greater benefit to those who are still new in the automation world or for those testers for whom coding is not a natural trait. Furthermore, codeless testing tools are easier to understand and utilize. ACCELQ is a great example of this trend too, as its a great differentiator in the market and you can see the benefits of it in the below as well as here.
|Business process, automated, Visual||Technical view, manual, black box|
|Codeless, no vendor lock, built-in framework||Programming skills, scripts, custom frameworks|
|Any browser & OS, cloud-based, actionable reporting||Limited OS, external integrations, customized execution|
|Visual test, comprehensive taxonomy, requirement mapping||Additional ALM tools, untraceable manual/automation silos|
|In-sprint automation, GUI & API, plug & play||Dependency, separate silos, technical integration|
|All-inclusive subscription, unlimited agents 50% savings||Hefty license, upgrade cost, hidden costs|
AI and ML are the future of automation testing, too, as they play a significant part in the prediction of the test cases and providing results accordingly. All of this does not mean manual intervention would not be required, the tools can provide a result, and a tester can also provide some manual input by validating the results, and that’s how testing will keep growing.
Regardless of the pyramid your team follows, focus on the goal of automation, what, when, why, how, where you want to conduct the tests, and what value will they add to the project and product.
With all this Automation, do you think that the tester will become obsolete? I don’t think so, but I do see the role of the tester evolve. We build test cases and code tests for Automation, but tools will eventually do those activities.
Looking back over 9.5 years ago, when I started as a manual tester, there has been some significant evolution in our work and the automation testing world. Therefore, this evolution will not stop, so keeping up to date with the current tools, approaches, and developments remains crucial.