Automated QA testing tools are products that start an application, feed the application’s UI some inputs and then check the result of processing those inputs. Which ones are worth taking a look at?
Let’s recognize that a) there is an enormous number of automated QA testing tools out there, and b) there probably isn’t a QA testing tool that’s perfect for everyone.
Some tools, for example, are targeted exclusively for testing Web Services (e.g., SoapUI or Test Studio for APIs). Other tools are designed for desktop applications (Winium) or just for mobile devices (Kobotin). Some tools cover specific parts of Mike Cohn’s testing pyramid or target specific platforms— Junit is purely a unit testing tool for Java applications, for example.
So, to limit the size of the problem, this review focuses on QA tools for integration and end-to-end testing of web-based applications, created on any platform.
Even with that limitation, it’s still hard to pick a “best” tool. Your perfect QA tools will need to integrate with your toolset and support how you want to distribute testing through your organization, among other criteria. If, for example, you’re looking for QA tools that will be used exclusively by your QA team, then you’ll have different criteria than if you intend your automated QA tools to also be used by developers or end users as part of a shift-left testing strategy.
And that’s before we consider the question: “What counts as an automated QA testing tool?”
For this review, automated QA testing tools are products that start an application (or part of it), feed the application’s UI some inputs and then check the result of processing those inputs to see if the results match expectations (often by examining some other part of the application’s UI). These automated QA tools allow QA personnel to create tests, save them and then execute those tests multiple times over the life of an application, typically on a schedule (every night) or when triggered by an event (when new code is checked in to source control).
As useful as that definition is, it’s probably more useful to consider the goal of these QA tools: To reduce the cost and time of repetitive manual testing while ensuring an application still works after changes (what’s called “regression testing”). Automated QA tools let you run all those regression tests for an application as often as you want—potentially, after every change to the application and, almost certainly, before every release.
While used for regression testing, automated tests are often the result of exploratory testing (where the tester performs experiments on software to determine where the application might fail). After a bug is found during exploratory testing, an automated test is created to track the progress of eliminating the bug (and to ensure that the defect never returns).
Bug detection is just one way that automated testing is used. Automated QA testing also is used as part of controlling whether an application is ready to go onto the next stage in the development process. This includes determining if an application is ready to be released (user acceptance testing) or that basic functionality is present at startup (smoke testing).
While running tests frequently is critical, it’s only useful if the report(s) of the results are available to developers soon after a bug is found. Only with effective reporting does frequent testing ensure that later code isn’t built on earlier, buggy code. In addition to reporting targeted at developers and fixing bugs, management-level reporting gives stakeholders insight into software quality and whether an application is fit for release. Reporting also allows automated tests to be integrated into DevOps pipelines.
Putting that all together gives a list of base criteria that all automated QA testing tools should meet (and all of the QA tools listed below do). An effective tool will support running tests:
Reporting will include reporting existing bugs to:
A third category is how much coding is both required and available when creating tests. Many automated QA testing tools include a recorder that allows a user or QA tester to interact with the application to generate a test. However, inevitably, recording tools will run into some UIs that they will struggle to work with. Effective QA testing tools will, therefore, support some level of custom coding to deal with those scenarios.
It’s probably more useful to think of Selenium as a family of projects for creating QA testing tools, with all the projects revolving around the base Selenium tool that automates browser interaction (Selenium’s website proudly states, “Selenium automates browsers. That’s it! What you do with that power is entirely up to you”). As a result, it’s difficult to describe what Selenium does as a QA tool: You can probably find a tool in the Selenium ecosystem for anything you want.
While “Selenium-related” tools are free, the challenge is integrating them in a way that makes sense to you, configuring the resulting test package to integrate with your development tools, and dealing with new releases of the individual tools you’ve selected. Overall, you’re looking at a steeper learning curve (and, probably, more expensive QA personnel) than with the commercial packages.
Test Studio from Telerik is a one-stop, full-service automated testing tool. It has a full-featured recording tool for building tests and a straightforward UI for reusing tests with multiple datasets as input and for enhancing tests to handle multiple conditions.
Test Studio’s recorder allows both end users and QA staff to create tests (and supports custom coding where required). Reporting has both a developer focus (for locating/diagnosing bugs) and, through the web-based Management Dashboard, a management focus (to support tracking quality progress). Test Studio also integrates with Jira for bug tracking and reporting. Tests can be run on a single computer (either “as required” or on a schedule) or distributed over a network of test servers.
If you’re ready to move on beyond merely functional testing to test non-functional metrics (load tests, soak tests, etc.), Test Studio supports that, also.
TestComplete supports recycling tests using multiple datasets and creating multiple paths through a test. Reporting focuses on supporting developers, including video replays of tests and integration with both Jira and Bugzilla. While keyword testing isn’t as popular as it was, TestComplete provides support for end users to create tests by dragging and dropping from a list of keywords that describe key functions in the application.
mabl is one of several QA tools that appeared in 2017 (others include TestSigma and LambdaTest). Unlike the other tools listed here, mabl is a cloud-based SaaS solution, so scaling to handle multiple, simultaneous tests is handled by creating VMs in the cloud rather than managing a network of testing servers.
With Cucumber, instead of including a test recorder, analysts and/or users describe the behavior of an application using Cucumber’s Gherkin language. Gherkin allows stakeholders to create an unambiguous set of requirements, understood by all stakeholders. Those requirements can then be used to drive development of the application and, of course, to test the resulting application—what’s referred to as “behavior-driven development.”
Reflecting its focus on requirements, Gherkin organizes requirements into use cases (e.g., creating a sales order), one or more scenarios (e.g., creating an expedited order) and steps (the preconditions for a scenario, the user’s actions and the result), which then drive the automated tests. Cucumber integrates with Jira and supports multiple reporting tools through its Cucumber Reports Service.
These products make a good case for why there is no perfect tool. If you have faith in a requirements language that drives both development and testing, well, then Cucumber is really your only choice. If you’re an open-source shop with the dedicated (and experienced) resources required to integrate and maintain a variety of packages, then you’re going to go with a solution built around Selenium-based tools. However, if you’re looking for a modern, complete end-to-end testing tool that leverages your on-premises infrastructure and supports testing driven both by end users and QA staff, then Test Studio would be your best choice.
Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter also writes courses and teaches for Learning Tree International.
Subscribe to be the first to get our expert-written articles and tutorials for developers!