← back7 min read
testinguftqa

Getting Started with UFT One: Functional Testing for Enterprise Applications

Mar 18, 2025·7 min read·Alfito Febriansyah

When it comes to functional test automation for enterprise applications — think SAP, Salesforce, web apps, desktop apps, and even mainframes — UFT One (Unified Functional Testing, formerly HP QTP) remains one of the most comprehensive tools available. It's not lightweight, and it's not cheap, but in the right environment it's remarkably capable.


What is UFT One?

UFT One is an automated functional testing tool developed by OpenText (formerly Micro Focus). It supports a wide range of technologies out of the box: web, mobile, desktop, SAP, Oracle, Salesforce, APIs, and more — all from a single tool. This makes it particularly valuable in enterprise environments where applications span multiple technologies.

Tests in UFT One are written in VBScript, which can feel dated compared to modern frameworks, but the object repository and keyword-driven testing model make it accessible even for non-developers.


Key Concepts

Before diving in, there are a few core concepts worth understanding. The Object Repository stores all UI objects (buttons, fields, dropdowns) that your test interacts with. Think of it as a map of your application's UI elements. The Action is a reusable unit of test logic — similar to a function or method. A test is composed of one or more actions. And DataTable is UFT One's built-in data source, similar to a spreadsheet, used for data-driven testing.


Your First Test

Getting started is straightforward. Once UFT One is installed and connected to your application, you can use the Record & Playback feature to generate a basic test automatically:

' Example: Login test in VBScript
Browser("MyApp").Page("Login").WebEdit("username").Set "testuser"
Browser("MyApp").Page("Login").WebEdit("password").SetSecure "encryptedpassword"
Browser("MyApp").Page("Login").WebButton("Login").Click

If Browser("MyApp").Page("Dashboard").Exist(5) Then Reporter.ReportEvent micPass, "Login Test", "Login successful" Else Reporter.ReportEvent micFail, "Login Test", "Login failed" End If

The object hierarchy — Browser → Page → WebEdit — mirrors the structure of the application, making tests highly readable once you're familiar with the syntax.


Smart Identification

One of UFT One's most powerful features is Smart Identification. When a UI object can't be found using its primary properties (because the UI changed slightly), UFT One uses a fallback set of properties to locate it. This dramatically reduces test maintenance compared to tools that rely on brittle XPath or CSS selectors alone.


Integrating with ALM and CI/CD

UFT One integrates natively with ALM (Application Lifecycle Management), also by OpenText, for test management, defect tracking, and reporting. For CI/CD integration, UFT One supports execution via command line and REST APIs, making it possible to trigger test runs from Jenkins, Azure DevOps, or any other pipeline tool.

// Trigger UFT One test from Jenkins via command line
UFTBatchRunner.exe /TestPath "C:\Tests\LoginTest" /ResultPath "C:\Results"

When to Use UFT One

UFT One is best suited for large enterprise environments where the application under test spans multiple technologies, where a commercial support contract is required, or where integration with ALM is needed. For greenfield web or mobile projects, lighter tools like Playwright or Cypress are usually a better fit. But for legacy enterprise systems — particularly anything involving SAP or desktop applications — UFT One is often the only tool that handles them reliably.


Tips from the Field

Keep your Object Repository organized from day one — a messy OR becomes unmanageable quickly. Use descriptive programming (defining objects inline rather than relying on the OR) for dynamic elements that change frequently. And invest time in understanding the Reporter object — good test reporting is what turns raw automation into actionable QA intelligence.

← All posts— end —