"We'd like to switch our test automation tools to something new. How can we do this?"
I've received this inquiry several times this year, where someone reaches out to talk about automated testing. These conversations often gravitate towards tools, libraries, and frameworks for testing. We talk about their existing setup, and I get asked about different test automation tools that are out there. More often than not, I get the above question asked.
Almost no one is satisfied with their existing test automation tooling. There's always something that needs tweaking to get right. Sometimes, it's a system that no one really likes, but it was set up a long time ago by an engineer who's no longer at the company and the team learned to put up with its quirks. Whatever the reason, few organizations seem to be perfectly satisfied with what they have and aren't looking to change.
The Bait and Switch Trap of Switching Testing Tools
More recently, the topic of switching testing tools comes up frequently due to the rumors that Cypress.io, the company behind the popular end-to-end testing tool using the same name, is apparently on its last legs and about to go under. Whether these rumors are true or not, it's left testers and QA teams scrambling to find alternatives in case Cypress makes its way to the graveyard of abandoned testing tools.
If it happens, this situation is a valid reason to consider switching testing tools, as we want to avoid clinging to an unsupported piece of tech for our business-critical applications. These circumstances are somewhat rare, and there's a good chance your chosen tech stack will live on long after you need it for your current projects. Yet, many teams frequently look for alternatives to what they have. In my experience, I've narrowed down the reasons down to two:
- The fear of missing out on something potentially better (a.k.a. FOMO).
- Envy around the hot new testing tool that seemingly everyone else is using.
I admit, I've fallen for both of these traps before. Early in my career as a Ruby on Rails engineer, I remember pushing my boss really hard to switch our hundreds of existing unit tests from the built-in minitest library to RSpec. When he asked why, I didn't have any response other than "All the other Ruby engineers I know are using RSpec!" It was such a flimsy argument, and I quickly let it go. I'm glad my boss gently pushed back, and I learned a valuable lesson. Since then, I've tried to catch myself getting tricked by my FOMO or envy, but it still happens more often than I'd like to admit.
On the occasions I do fall for the trap and decide to switch to something new, I regret the decision almost every single time. The time and effort it takes to change from something that's working to another tool or process takes significantly longer than you plan. And when the work is completed, there's a high possibility that you end up in the same spot. The grass is not always greener on the other side.
When You Should Look Into Switching Your Existing Testing Tools
We've all fallen into these same traps before, asking the same question mentioned at the beginning of this article. There are very few reasons to go through the long process of switching testing tools in your organization. If your existing test suite helps reduce risk, runs consistently, and allows the team to develop and deploy quality software quicker, there's no reason to change. As the saying goes, if it isn't broken, don't fix it.
However, that's not to say there's never a reason to switch testing tools. In some scenarios, it might make sense to change to something different. Here are a few valid situations where spending time to switch your existing test automation libraries or frameworks might be worth the effort.
No support from the primary developer or maintainer
Is the entity behind the testing tool you're using providing consistent support to keep the product alive for the foreseeable future? Whether you're paying for your testing tool or using a free, open-source project, you must assess whether the tool will remain active for the long haul. After all, why will you and your team invest so much time and money into something that might not exist a year from now?
The example mentioned above from Cypress shows where a tool might die off and leave its users stranded. What's happening to Cypress is not limited to smaller organizations. You can find examples in recent memory of large tech organizations shutting down once-popular tools. Google recently deprecated the Angular.js framework and its companion testing tool Protractor. In another example, Meta acquired Parse, a prominent backend-as-a-service platform, only to shut down its hosted platform a few years later and move to open source.
Unfortunately, we can never guarantee that what we use today will still be around tomorrow, even if the tools are well-supported. For instance, Microsoft is putting a lot of work behind maintaining and improving the Playwright end-to-end testing framework, but what about a few years from now? The project might exist through open source, but what if Microsoft decides to stop putting the resources into making Playwright as good as it is now? What if they choose to put new features behind an enterprise paywall? These are good reasons to switch if it ever happens.
Lack of an active community
Is there an active community behind the testing framework or library that can help you when you get stuck? The community aspect of any tech tool is something that's often overlooked. For some, an active community is just a barometer to see how popular something is, but in reality, it's a vital component for making the most out of your usage of your tools of choice.
One of the primary complaints that teams bring up when they want to switch one of their tools is a lack of documentation or examples to accomplish what they want. This issue happens more frequently with open-source applications, which rely on gathering information from their community. Without an active community, you'll likely have subpar or outdated documentation that can slow down your testing. It will also become difficult to ask in online forums since there will be few active users of the same product to help.
This problem is more prevalent in open source but can also happen with paid services. While I haven't used TestComplete by SmartBear, I've interacted with two organizations in the past that have mentioned that it's a great testing tool, but their documentation is lacking—kind of crazy for a product that costs thousands of dollars. While you might be able to plow through and get your tools working, you might want to consider products with a more active community to help you get through problems quicker.
Lack of significant improvements to help you test faster
Are your tools receiving frequent updates to assist your test automation process? Technology changes fast, and whatever's helping you develop automated tests quickly today might drag you down tomorrow. It's essential to consider the ability of your chosen tools to adapt to the ever-changing landscape of software development and QA, especially when there are new and improved ways to help us test.
The JavaScript ecosystem is notorious for creating new libraries and frameworks almost every day (the fact that someone made a joke website called Days Since Last JavaScript Framework is proof). Testing tools based on the language are not immune to the same fate. Years ago, PhantomJS was one of the top end-to-end testing tools. Since then, many other end-to-end testing frameworks have improved upon PhantomJS in almost every way, and development couldn't keep up as a small team ran it. This cycle led to a lack of updates and contributions, leading to the suspension of future product development.
A product that doesn't receive any frequent improvements is often a leading indicator for the other problems discussed in this article, as highlighted by PhantomJS's story. The fewer updates a tool gets typically means that the maintainers of the product won't provide the support that most organizations need to keep the project alive for the long term. The lack of updates also risks having its existing user base abandon the tool due to missing features or essential functionality that another product has. Evaluating how often a testing tool receives updates can help you avoid investing time into a product destined to get abandoned.
Only You Can Decide if a Switch Is Worth It
The reasons explained above aren't the only reasons to switch from what you're currently testing with. For instance, you use a Python-based test automation framework, but your developers work mainly with JavaScript, so you might consider switching frameworks to get more involvement from the broader team. Another reason can be finding tools that aid long-term maintenance. In the past, I used Postman for API testing. It's a solid tool, but I found it challenging to organize my tests, so I switched to a JavaScript-based setup that made it easier to manage.
Every tester and team work under different circumstances and situations. Only you can assess and figure out whether the costs of switching from one test automation tool to another are worth it. Don't let FOMO sway you or make you believe the grass is always greener on the other side. It's usually not worth the time, as it'll take much more effort than you anticipate, and the benefits will likely be minimal.
Have you switched your test automation toolkit before? Do you believe it was worth the effort, or do you wish you stayed with what you had? Share your experiences with the testing community by leaving a comment below!