A stable, flexible and platform independent GUI test automation – which QA manager does not dream of this? But does it have to remain a dream? No! With web2test and QFS there has been a new generation of test automation tools available on the market for quite some time which made this dream come true thanks to continuous enhancement.
When testing software via its graphical user interface a special challenge lies in the large number of different states of the software which are determined either active by user interactions or passive by the software itself. When replaying the test scripts, for every state the right GUI components (widgets) have to be identified to assure the correct playback of interactions and check points. For web interfaces additionally there is a trend towards a dynamic user interface design using AJAX/DHTML which makes it even more complicated.
Furthermore the refinement of software is often not only accompanied by a change of functionality but also by a change of layout. To assure the reusability of already recorded test scripts they should be tolerant to those changes as far as possible.
As mentioned at the beginning there are tools like web2test for web testing or QF-Test for the testing of Java and web frontends which provide an answer to those special requirements thanks to their component based approach.
Why is the component based approach the answer to the requirements named above? For a better understanding we will have a closer look at this approach using web2test and QF-Test as an example and identify its advantages. Technically the component based approach is characterized by the communication of the test software with the system under test which takes place right at the level of the respective widget toolkit – for Java via the Swing or Eclipse/SWT API and for web applications via the DOM. This offers several advantages:
Intrasystem component information and values can be readout by the test software which makes it possible to work with complex components like tables and trees even if they are implemented via AJAX. Furthermore the access to these component information enables the user to implement detailed and versatile tests like the verification of visibility of a tree view for example.
Since for the component based approach the interface to the operating system is only used in exceptional cases it perfectly allows for the creation of platform independent tests.
Besides platform independence web2test and QF-Test set a high value on the browser independence of test scripts for the testing web applications.
Another advantage is the stability of the test scripts. web2test and QF-Test employ complex algorithms for the intelligent recognition of the used components. These algorithms analyze information like ID and name but also the hierarchical GUI structure, component title, component description or component geometry which are available via the interface to the widget toolkit. Thus once components are recorded they can be easily retrieved regardless of layout changes of the system under test. In conjunction with web2test’s and QF-Test’s real user simulation when replaying test scripts even technologies like AJAX and DHTML with their possibility to dynamically alter the user interface design can be handled without problems.

Abb. 1: component structure of a mobile simulator left side for web and right side for Java
web2test has been developed as a cooperative project between itCampus Software- und Systemhaus GmbH and the software house Quality First Software (QFS) and is based on QFS’s leading Java GUI test tool QF-Test. But why bringing web2test as a separate tool to the market if there is already QF-Test? The answer is quite simple: While QF-Test supports 3 different widget toolkits – Swing, SWT and Web – and continues to keep its focus on Java web2test has been specifically adapted to web testing needs. The web specific adjustments, the streamlined user interface and the comprehensive documentation which has been revised with regard to web testing makes it the preferred tool for testers with a particular focus on the testing of web applications while QF-Test remains the ideal tool for users with Java projects, offering web testing as an additional feature.