Understanding How to Implement Testing Extensibility

Using UFT Testing Extensibility, you can implement full support for all UFT features for your environment.

Implementing UFT Testing Extensibility consists of the following stages:

  1. Planning the Testing Agent

    • Define the test object model. In this stage, you determine which objects and operations you want to support based on the controls and business processes supported in your environment. You can also define the terminology and object hierarchy that will be generated in the tests.

    • Decide how you want to develop and package the COM object that will serve as the Testing Agent.

  2. Developing the Testing Agent

    Create a COM object that implements the interfaces defined by Testing Extensibility in the UFT Extensibility Agent type library. UFT calls the interface methods to retrieve information about the application being tested. For more information, see UFT Testing Extensibility Type Libraries and Interfaces.

    The Testing Extensibility interfaces are designed for staged implementation. You begin by implementing the interfaces that provide support for the most basic UFT capabilities: identifying objects and running tests. After verifying that the Testing Agent successfully communicates with UFT, you develop support for the more advanced UFT capabilities, such as adding objects to the object repository and retrieving the run-time values of test object identification properties.

    After developing these mandatory capabilities, you can optionally develop support for additional UFT options. You can enable:

    • Smart Identification

    • The Object Spy

    • Accessing native (run-time object) properties and methods

    • Active Screen captures

    • Recording tests

    • Highlighting objects in the application

  3. Deploying the Testing Agent

    Install the Testing Agent in any convenient location on the computer on which UFT is installed. After you install the Testing Agent, register it. The UFT Testing Extensibility SDK provides a C function that enables you to register (and unregister) the Testing Agent.

    When UFT opens, it checks for registered Testing Agents and displays their environments in the Add-in Manager. The UFT user can select an environment, instructing UFT to load support for that environment by creating the Testing Agent COM object. For more information on the Add-in Manager dialog box, see the Micro Focus Unified Functional Testing Add-ins Guide.

UFT Testing Extensibility Type Libraries and Interfaces

The following table summarizes the mandatory and optional interfaces in the UFT Extensibility Agent type library. You implement these interfaces in your Testing Agent.


Supported UFT Capability

Level of Importance


  • Identifying objects

  • Running tests

  • Retrieving run-time values of test object identification properties

  • Learning objects (Also requires implementing ISpyable.)

  • Reporting errors



Smart Identification

Optional (Mandatory if you implement ITestable3)

ITestable3 Running tests and adding test-object related lines to the UFT run results Optional


Object Spy



Accessing native properties and operations






Active Screen and Highlight


Required if implementing IActiveScreenSupplier or IRectangleSupplier





Active Screen



Test Event Notification



Test Event Notification (enables writing to the UFT run results and performing code prior to the end of the run session) Optional

To support the recording functionality, the Testing Agent calls API methods provided by UFT in the UFT Extensibility Agent type library. The interfaces that UFT exposes for the Testing Agent to use for recording are: IRecorder, IRecordSuppressor.