Understanding How to Implement Testing Extensibility
Using OpenText Functional Testing Extensibility, you can implement full support for all OpenText Functional Testing features for your environment.
Implementing OpenText Functional Testing Extensibility consists of the following stages:
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.
Developing the Testing Agent
Create a COM object that implements the interfaces defined by Testing Extensibility in the UFT Extensibility Agent type library. OpenText Functional Testing calls the interface methods to retrieve information about the application being tested. For more information, see OpenText Functional 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 OpenText Functional Testing capabilities: identifying objects and running tests. After verifying that the Testing Agent successfully communicates with OpenText Functional Testing, you develop support for the more advanced OpenText Functional Testing 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 OpenText Functional Testing 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
Deploying the Testing Agent
Install the Testing Agent in any convenient location on the computer on which OpenText Functional Testing is installed. After you install the Testing Agent, register it. The OpenText Functional Testing Extensibility SDK provides a C function that enables you to register (and unregister) the Testing Agent.
When OpenText Functional Testing opens, it checks for registered Testing Agents and displays their environments in the Add-in Manager. The OpenText Functional Testing user can select an environment, instructing OpenText Functional Testing 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 OpenText Functional Testing Help Center .
OpenText Functional 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.
Interface | Supported OpenText Functional Testing Capability | Level of Importance |
|---|---|---|
| Mandatory | |
Smart Identification | Optional (Mandatory if you implement ITestable3) | |
| ITestable3 | Running tests and adding test-object related lines to the OpenText Functional Testing run results | Optional |
Object Spy | Recommended | |
Accessing native properties and operations | Optional | |
Record | Recommended | |
Active Screen and Highlight | Optional Required if implementing IActiveScreenSupplier or IRectangleSupplier | |
Highlight | Optional | |
Active Screen | Optional | |
Test Event Notification | Optional | |
| Test Event Notification (enables writing to the OpenText Functional Testing 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 OpenText Functional Testing in the UFT Extensibility Agent type library. The interfaces that OpenText Functional Testing exposes for the Testing Agent to use for recording are: IRecorder, IRecordSuppressor.

