About Developing the Testing Agent
After you decide how to implement the Testing Agent and determine the object model that the Testing Agent will support as described in Planning Your Testing Agent, you can begin to implement OpenText Functional Testing Extensibility. The first step is to implement the ITestable interface defined in the UFT Extensibility Agent type library. This interface provides support for the most basic OpenText Functional Testing capabilities.
The ITestable interface is the only interface in the Testing Extensibility SDK that is mandatory. By implementing this interface, you enable OpenText Functional Testing to recognize objects and run GUI tests on applications developed in your environment. In addition, you support the retrieving of run-time values of test object identification properties and the adding of test objects to the object repository.
After implementing the ITestable interface, you can implement the additional interfaces in the OpenText Functional Testing Extensibility SDK. These support more advanced OpenText Functional Testing capabilities such as Record, Active Screen, Object Spy, and Highlight. For more information, see Enhancing Your Testing Agent.
The table below specifies the main OpenText Functional Testing capability for which each ITestable method is used:
OpenText Functional Testing Capability | API Method |
|---|---|
GetTestingEnvironment (handshake) | |
BuildDescription, FindObjectId, FindObjectId2, GetDisplayName, GetParent, GetChildren | |
GetElementType, GetProperties, GetTabularData, GetTabularAttributes | |
Note:
The ITestable2 interface inherits ITestable and declares method FindObjectId2. Implement FindObjectId2 instead of FindObjectId to support OpenText Functional Testing Smart Identification. For more information, see Implementing FindObjectId or FindObjectID2: Map a Description to an Object ID.
The ITestable3 interface inherits ITestable2 and declares method RunEx. Implement RunEx instead of Run if you want to add test-object related lines to the OpenText Functional Testing run results.
If you implement the ITestable3 interface, then OpenText Functional Testing also calls FindObjectID2 instead of FindObjectID. Make sure to implement this method even if you do not want to support Smart Identification.
Develop your agent in stages, testing after you develop each stage:
Develop the Testing Agent's handshake with OpenText Functional Testing.
Implement only the initial handshake between the Testing Agent and OpenText Functional Testing. This enables OpenText Functional Testing to recognize the testing environment so that you can write OpenText Functional Testing GUI tests with objects and operations defined in your environment.
Create support for recognizing objects and running tests.
Implement the methods required for OpenText Functional Testing to recognize a few objects and run tests.
Create support for retrieving identification property run-time values.
Implement the methods required for OpenText Functional Testing to retrieve identification property run-time values from the application being tested.
Create support for learning objects.
Implement the methods required for OpenText Functional Testing to learn objects and add them to the object repository.
Extend the support you created to include all of the objects in your environment.
Complete the definition of your testing environment to include all of the objects in your environment. Implement support for all of the test objects and operations in your environment. Implement any remaining methods in the ITestable interface.

