Understanding How to Implement Testing Extensibility

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

Implementing UFT One 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 One calls the interface methods to retrieve information about the application being tested. For more information, see UFT One 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 One capabilities: identifying objects and running tests. After verifying that the Testing Agent successfully communicates with UFT One, you develop support for the more advanced UFT One 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 One 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 One is installed. After you install the Testing Agent, register it. The UFT One Testing Extensibility SDK provides a C function that enables you to register (and unregister) the Testing Agent.

    When UFT One opens, it checks for registered Testing Agents and displays their environments in the Add-in Manager. The UFT One user can select an environment, instructing UFT One 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 UFT One Help Center.

UFT One 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 One 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)

ITestable3Running tests and adding test-object related lines to the UFT One run resultsOptional


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 One 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 One in the UFT Extensibility Agent type library. The interfaces that UFT One exposes for the Testing Agent to use for recording are: IRecorder, IRecordSuppressor.