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.
HCL OneTest™ UI 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 HCL OneTest™
UI 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 HCL OneTest™
UI supports. The following
TestDomainImplementation
classes are available with HCL OneTest™
UI:
JavaTestDomainImplementation
HTMLTestDomainImplementation
NETTestDomainImplementation
WinTestDomainImplementation
SAPTestDomainImplementation
A TestDomain
contains a set of controls that is provided
by the respective UI framework. HCL OneTest™
UI 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 HCL OneTest™
UI defines.
Each proxy method has a specific meaning and HCL OneTest™
UI 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.
HCL OneTest™ UI offers set of hierarchically grouped ProxyObjects for each supported TestDomains like Java, .Net, Win32, 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.