Functional Tester ist so zu programmieren, dass unterschiedliche UI-Frameworks und Steuerelemente unterstützt werden. Auf diese Weise können den Testern entsprechende Funktionstestwerte bereitgestellt werden.
Die Functional Tester-Architektur verarbeitet die Unterschiede bei den verschiedenen UI-Frameworks über die jeweilige TestDomainImplementation-Klasse. Diese TestDomainImplementation-Klassen handhaben die speziellen Eigenschaften der einzelnen UI-Frameworks, die von Functional Tester unterstützt werden. In Functional Tester stehen die folgenden TestDomainImplementation-Klassen zur Verfügung:
Eine Testdomäne enthält eine Gruppe von Steuerelementen, die vom jeweiligen UI-Framework bereitgestellt wird. Functional Tester versteht und handhabt die Unterschiede bei den Steuerelementen über ProxyObject-Klassen, die für jedes einzelne Steuerelement oder eine Gruppe ähnlicher Steuerelemente implementiert werden. Ein Proxy-Objekt kann als Wrapperobjekt für das Steuerelement betrachtet werden und wird mit den von Functional Tester definierten Standardschnittstellen implementiert. Jede Proxymethode hat eine spezielle Bedeutung und wird von Functional Tester zu bestimmten Zeitpunkten aufgerufen. Das Proxy-Objekt gibt die entsprechenden Details zum jeweiligen Steuerelement zurück. Die Proxy-Objektklassen verarbeiten die Spezifikationen zu jedem Steuerelement bzw. zu einer Gruppe ähnlicher Steuerelemente in einer unterstützten Testdomäne.
Functional Tester bietet für jede unterstützte Testdomäne wie Java, .NET, Win32, Siebel, SAP und HTML bestimmte hierarchisch gruppierte Proxyobjekte. Die Vererbungshierarchie eines Proxyobjekts in jeder Testdomäne ist so konzipiert, dass sie mit der Vererbungshierarchie des Steuerelements in der jeweiligen Testdomäne identisch ist. Durch das hierarchische Gruppieren der Proxyobjekte erhalten Sie die Möglichkeit, diese zu erweitern, um neue Proxyobjekte zu erstellen, wenn ein neues Steuerelement im UI-Framework eingeführt wird. Die Details zu den verfügbaren Sätzen von Proxyobjekten und Steuerelementen für jedes unterstützte UI-Framework sind in den Proxy-Objekthierarchien enthalten.