When done properly, automation testing can be a highly effective productivity booster and quality enhancer for your product pipeline or system development projects. But it can be difficult to apply best practices when a team is just starting this transformation.
We'll present the most common automation challenges that face teams as they pursue automation efforts—and also how to overcome these challenges.
Collaboration is a challenge for any product development group—developers, test automation engineers, and conventional testers alike. The problem is more acute with test automation because it requires considerably more planning, foresight, communication, and collaboration, as it fully depends on historical testing data, tester experience, and at least one proof-of-concept. Testers need to work well with developers, customers, and one another to get all these pieces together.
Since testers will be central in communicating the value of automation testing to senior management, each automation tester should be in close contact with manual testers, business stakeholders, developers, and system architects. To be successful, it’s vital that most of the team commits to active and continuous involvement because of all the moving pieces coming in from the different departments.
You'll also need management buy-in prior to automating your tests. This can only be done sensibly in a collaborative development environment where it's obvious to management that team members communicate fluidly to deliver timely test results with minimal risk. So make sure to document as you go so you can extrapolate metrics, and provide updates when management calls for it.
When possible, it’s always best to prioritize meeting this challenge before buying new test automation tools (which we discuss in the next section). Think carefully on this one. You might acquire good tools—but which tests should you automate first, which ones should you leave as manual tests, and how will you go about doing it all? The tools will not give you insight into what your team should automate.
The tools may also be focused on one area when you need help with another. While mabl can help you automate many website tests that are usually tested manually, be aware that you won’t be able to automate all of your test cases, particularly in areas such as compatibility or recovery.
Which test cases are important to you? Before you begin to think about test automation, it’s important to define a set of criteria that each test case must satisfy to be a candidate for automatization. It’s very important to focus on areas that contain unknowns that can mean higher risk to product success. It’s also important to give serious attention to complex functional areas that are especially useful or interesting to customers.
Risk-focused test automation ascribes a higher priority to testing the elements that are most likely to fail—and hold the potential for the most serious negative consequences in the event of a failure in production. As you assess the level of risk, it’s critical to keep the following in mind:
• Financial impact of a potential failure.
• Probability of failure for each vulnerability (get developer input on these).
• Service-level agreements with clients and customers.
• Human and equipment safety issues.
Agile development methodologies have become pervasive throughout the industry, and this means that many software applications contain significant changes with each new product iteration—which translates directly into testing volatility. This poses many challenges in automation: how do you design and implement test automation that will readily and correctly identify these app changes and quickly update the tests with minimal levels of maintenance effort? Ideally, an test automation solution should be able to handle this for you.
Many record and play testing tools are available, all trying to alleviate the same problem of automating manual tests, but have proven to be harmful to teams' productivity levels. This makes it difficult to sift through the chaff and find tools that will actually improve software testing and meet real needs. It’s important to steer clear of hype, do sufficient research, and carefully evaluate fact-based proposals of reputable tool vendors.
Tool evaluation can seem unachievable for various reasons:
• Lack of expertise needed to make the most of the capabilities of a specific tool.
• Indefinite knowledge on whether a tool exists to meet specific needs.
• Misconceptions lead to desire for a tool that isn’t available.
• A favorite tool doesn’t seem to provide full test coverage.
• Tool costs exceed the team budget.
Choosing effective tools comes with serious automation challenges. According to the 2018 Gemini World Quality Report, over 50% of IT leaders report that their organizations lack suitable automation tools for their testing teams.
Though it requires effort from the most of the team, a good assessment begins with clearly outlining a set of tool requirements criteria. These definitions should correspond well with user acceptance criteria for each of your products, and also reflect the input from professionals who have considerable experience in using the tools. If they're not on your team, you may be able to find these experts at conferences or smaller-scale networking events, making it worth investing in sending your teams to them. Free webinars are often hosted by product vendors to demo their offerings without the pressure of being in a sales pipeline. Encourage your testing team to register to attend these webinars live, as the live Q&A portion can be very valuable to take part in.
If the tool that your team wants is beyond the reach of your budget, it may be worth the effort to prepare a cost-benefit analysis and make your case to management. Demonstrate how implementing this tool will minimize risk and improve release quality, using a pilot scenario that scales.
It is a misconception that test automation can be easily done by any tester. Likewise, many falsely believe that any developer can automate tests. Focusing, designing, configuring, and implementing test automation requires specific skills and time to build experience.
When filling this role, you need to look for a specific skill set beyond technical chops. Testers sit at the intersection between your developers, managers, and customers, so having the ability to articulate ideas from one group to another is a must. Being in the tech field, testers must be willing to stay up to date with the latest technologies and development methodologies to understand what the development team may be doing or moving towards. At the same time, they must also understand how to keep a holistic view of what the software in development is trying to achieve from a business perspective, and keep test cases relevant to those goals. Automation engineers are admittedly one of the toughest tech roles to hire for, but the effort to find the right hire will be significantly rewarded with an test automation pipeline that, in the long run, saves you time and money.
In nearly all cases, the initial phase of test automation comes with some costs, since it requires analysis, design, and planning for the implementation. You’ll need to account for all licensing and operating costs—including hardware and software. Even if the choice is made to go with free or low-cost open-source automation tools, the time spent on training and maintenance can have significant costs in terms of employee focus.
Bite the bullet and then plan it out. Automating is not a movement that should be approached haphazardly. When done properly, the effort and cost can pay steady dividends well into the future. test automation can deliver significant gains in quality, accuracy, and productivity. The business case can be built solidly when the team comes to realize that preventing all the negative impact and cost of a single major defect in production can directly compensate for all of the tangible and intangible costs of pursuing test automation.
These aren't the only automation challenges you'll face when tackling test automation, but they are the most common and major ones. If a team embarks on the test automation journey without planning ahead, the automation project is likely to end in a catastrophic failure.
Still, test automation is necessary to keep up with the modern end-user and to achieve customer success. The software world is now customer-driven, and the end-user experience directly affects revenue, growth, and internal company dynamics, including talent acquisition and employee satisfaction.
So plan ahead for automation challenges, and remember the silver lining on the horizon, knowing it will all be worth it.