I want to write a few articles looking at the different automation tools on the market and dissecting them as best as possible for the audience. With the myriad of testing tools out on the market, it is an overwhelming space for many teams and companies to navigate through, and often why test tooling can remain such a difficult and divisive topic for organizations.
Perhaps no tools are more contentious and cause as much debate as UI automation tools. Yes, Test Management tools came first and are the main sources on which the different tool ecosystems are built around – but the reality is that with the move away from traditional development processes and move to CI adoption, companies are focusing less on the effectiveness of the test management tools and first looking at the automation tools. I will cover test management tools in later articles though, so will still get into the basics of these.
When it comes to the move to automation, it was UI testing tools that started to bring about this move and even to this day, UI automation is often the first form of automation that testers are introduced to. And many of these tools have been around for a long time too, with the likes of Test Complete being created in 1998, UFT in 2002, and Selenium in 2004. All tools with around 20 years of history.
This means that often the UI test automation tools will also feature the richest toolset and most developed features. Though, also thanks to years of tool evolution it also means that they offer the most divergent feature set – while also catering for the widest range of application types from old legacy systems to modern architectures – as tool developers try and cater to new up and coming tools and software, while still catering for long-term clients who still use older legacy systems.
And because UI automation tools tend to be at the forefront of interacting with ever-changing web elements and standards, they’re also the ones that get updated the most. Whereas test management processes don’t change all too much and most backend and performance tools can operate quite efficiently even on older versions, if your UI tool goes out of date, it can quickly become obsolete in testing a lot of the latest trends. Unless your clients are still stuck using IE, in which case you might be better off digging up a very old test automation tool and leaving it well alone.
I’m not going to go through the basic architectures of how these tools work. I’ve done a series of articles on this before and while each tool has its own unique architecture, they all operate similarly. I’m also not going to talk about an approach to UI automation, as I’ve covered that previously too.
Unified Functional Testing (UFT)
I thought I’d start off my deep dive into UI test automation by looking at arguably the most popular classic automation tool of all - United Functional Testing (UFT). For many who have been around in the automation game as long as I have, this was likely the first tool that you were taught UI automation in (then called Quick Test Professional- QTP). No other UI Automation tool was as good at automating effectively as this tool and even though it was expensive, Selenium had only just started making strides in the automation space and wasn’t nearly as good as it is now and so companies were willing to pay a lot of money to jump into the world of test automation.
Despite the seemingly high costs of the tool though, HP (who used to own the tool) and Micro Focus (MF) (who have since acquired it) have engineered a lot of innovative technologies that make their object recognition modeling one of the best in the industry, is not limited to either desktop or web automation – but can operate across all application types, while they have recently added a lot of visual AI tools that are designed to make tests more robust and maintainable. It is also no longer strictly a UI automation tool, as it can effectively automate APIs and most back-end services too.
The tool has been around for many years, but below are some of the big highlights showing how the tool has evolved over the years and added new features:
QuickTest Professional 6.0 (2002): QuickTest Professional (QTP) was first released in 2002 by Mercury Interactive, which was later acquired by HP (Hewlett-Packard) in 2006. The initial version of the tool included support for testing Windows-based applications.
QTP 8.0 (2005): The 8.0 version of QTP added support for Web-based applications, including the ability to test web pages rendered in Internet Explorer.
QTP 9.0 (2006): The 9.0 version included support for testing web applications across multiple browsers, including Firefox and Chrome.
QTP 10.0 (2008): The 10.0 version introduced a new feature called "Smart Object Recognition," which allowed the tool to identify objects based on their appearance, rather than just their properties.
QTP 11.0 (2010): Included several new features, such as the ability to test Flex-based applications, and support for testing mobile applications.
Unified Functional Testing 11.5 (2012): HP rebranded QuickTest Professional as Unified Functional Testing (UFT) in 2012. The 11.5 version of UFT added support for testing SAP applications and provided improved integration with ALM (Application Lifecycle Management).
UFT 12.0 (2014): The 12.0 version of UFT introduced a new "LeanFT" (Lean Functional Testing) tool, which allowed developers to write automated tests in popular programming languages, such as Java and C#. The new version of UFT also included support for testing applications built with AngularJS and other web frameworks.
UFT 14.0 (2019): The 14.0 version of UFT introduced several new features, such as the ability to test applications running on Microsoft Edge and support for testing web services.
UFT 15.0 (2021): Introduced the UFT One family of tools which combines some of its separate automation tools into one, along with its developer toolset with the aim of supporting better shift left integration.
Below is a list of pros for wanting to select UFT:
Extensive Object recognition modeling: UFT can identify models across all types of desktop, mobile, and web applications. MF has also paid for licenses to integrate many closed integration tools like Oracle and SAP products.
Wide range of application support: UFT can automate desktop, web, and mobile applications from one toolset which makes it easy for companies to rely on one tool for all their automation needs.
Comprehensive test coverage: UFT supports a wide range of testing types, including functional, regression, and performance testing, which allows users to create comprehensive test suites that cover all aspects of the application.
Traceability: While this is not a feature of UFT directly if you use it with Micro Focus’ ALM Test Management tool, the automation scripts provide full traceability throughout the process (requirements to defect/release), which is great for companies requiring a strict audit control of their testing process.
Parallel Execution: While this is largely script-dependent, UFT works well with parallel execution across different execution machines.
Strong integration capabilities: UFT has built-in integration with many popular testing tools, such as Selenium, Appium, and JUnit, which allows users to leverage the strengths of different tools to create a customized testing solution.
Easy to use: UFT has a user-friendly interface and a simple learning curve, which makes it easy for users to get started with test automation, even if they have little or no programming experience.
Industry support: Given the age of the toolset and the familiarity that many people have gained using it, there is a wide range of engineers and companies that can work with the tool comfortably.
Used by a wide range of projects: UFT can be used for both small and large projects across different SDLC processes, making it suitable for any size of organization. Though it's worth noting that the first part of the cons list can also be a hindrance for the smaller projects too.
Some of the cons of using UFT include:
High cost: UFT is a commercial tool with expensive licensing and can be expensive for small organizations or projects. For large organizations, the benefits often outweigh the costs, but for small organizations, the cost of the investment might be far too excessive.
Vendor lock: While UFT does support a wide range of integration with other tools and has built-in integration for multiple programming languages its many in-built features and libraries cannot be migrated across to other tools should you ever wish to move onto another platform.
CI/CD Integration: While it can work with certain CI/CD tools, it's far more complicated to use UFT thanks to a rather complicated API framework for script execution with the tool designed primarily around MF’s own ALM Test Management Tool. While the latest version of UFT One supports a strong shift-left focus, it's more aimed at better unit testing than integration into most CI tooling, limiting its effectiveness and industry adoption.
Big footprint: Not only does UFT require a heftier machine than some other testing tools, but its big digital footprint is also not ideal for a virtualized or cloud-based CI/CD deployment as the different executors take up a large footprint than other tools.
Long development cycles: Given the size of the product suite and that only one company is actively supporting it, features are often only delivered on a quarterly basis (outside of patches and security updates) and sometimes trail behind new industry technologies.
Version-lock: Additionally, because licenses and functionality are often tied to specific version numbers, many companies end up using outdated versions of the application, which creates a maintenance risk.
When to select UFT:
When automating complex end-to-end systems across a variety of application types, and layers and using proprietary technology like Oracle or SAP, open-source tools may struggle to automate effectively.
When traceability and audit control are incredibly important to you
If you are already invested in other MF solutions, then you can maximize the effectiveness of your automation through the use of UFT.
In summary, UFT is a powerful, feature-rich test automation tool that can be used to create comprehensive test suites for a wide range of applications, however, its high cost can be prohibitive and with more emerging technologies coming to the market through open-source systems, it may be difficult for companies to find a reasonable return on investment given the cost.
If you want to gain full value from the tool, it works fantastically well with the rest of the Micro Focus suite and can provide excellent traceability, reporting, and test management across an entire organization. This whole ecosystem cost is even more expensive though and with the fear of vendor-lock, a proposition that few companies want to face or are willing to spend the investment on.
For many larger companies though with a wide range of integrating systems of varying ages and architectures, UFT offers one of the best opportunities at being able to automate complex scripts against your entire solution. It might not be the preferred tool for many start-ups or companies that feature more streamlined architectures, but it is still widely used in many large companies due to its ability to automate practically everything you need.