Proxy development

A challenge in functional testing is the variety of user interface (UI) frameworks that are available (for example, Java and HTML) and controls (for example, button and table) that testing must support. UI frameworks differ in architecture and programming models and the controls differ in their inheritance hierarchy, methods, properties data, and user actions.

Functional Tester needs to be programmed to add support for different UI frameworks and controls so that appropriate functional testing values can be provided to testers.

The Functional Tester architecture handles the differences in UI frameworks through a respective TestDomainImplementation class for different UI frameworks. These TestDomainImplementation classes handle the specific properties of each UI frameworks that Functional Tester supports. The following TestDomainImplementation classes are available with Functional Tester.

A TestDomain contains a set of controls that is provided by the respective UI framework. Functional Tester understands and handles the differences in controls through ProxyObject classes that are implemented for each control or a group of similar controls. A ProxyObject can be seen as wrapper object to the control and is implemented with the standard interfaces that Functional Tester defines. Each proxy method has a specific meaning and Functional Tester calls them at specific times. The ProxyObject returns the details specific to that control. ProxyObject classes handle specifics about each control or a group of similar controls in a supported TestDomain.

Functional Tester offers set of hierarchically grouped ProxyObjects for each supported TestDomains like Java, .Net, Win32, Siebel, SAP, and HTML. A ProxyObject's inheritance hierarchy in each TestDomain is designed to be the same as the inheritance hierarchy of the control in that TestDomain. Grouping ProxyObjects hierarchically enables you to extend them to create new ProxyObjects when new a control is introduced in the UI framework. You can find the details about available sets of ProxyObjects and controls for each supported UI framework in the ProxyObject hierarchies.

With the current Functional Tester Proxy SDK implementation, you cannot add support for a new UI framework. You can add support for new controls or enhance currently supported controls.