QF-Test 
Professional tool for automated testing of Java and Web applications with a graphical user interface (GUI).
To verify the reactions of the application, QF-Test processes and evaluates events and their side-effects, for example a new window being opened as the result of a button click. It also validates that the values presented on screen (the contents of a table, for example) are correct. In doing so, it adapts to the inevitable changes of the application during the development cycle, like when a button that changes position or the layout of a table is changed.
Key Features
To create reliable and repeatable tests, the tester may require a lot more than just capture and replay. QF-Test provides the following advanced control structures which are all accessible directly through its user interface, so using them doesn’t require learning any new syntax:
- Variables, packages, procedures, parameters
- Conditional statements
- Error/exception handling
- Loops
- Start arbitrary processes
Standards Compliance
- Open save file format: XML – Test-suites as well as run-logs are stored as XML files, i.e. as plain text in a well-defined syntax. Since XML has become a widely supported industry standard, this opens the way for integration of QF-Test into existing testing environments.
- Text-processing using regular expressions - For search/replace operations and for verification of the data displayed by the application’s GUI, QF-Test optionally uses regular expressions. The current implementation is based on the GNU regexp package.
- Scripting with Jython and Groovy - For the advanced user that needs even more control over the application, QF-Test offers scripting by use of two standard languages – Jython and Groovy. Jython is a Java implementation of the Python language. Groovy is a more recent language with a Java-like syntax. Scripting extends the testers reach into the interior of the application beyond what is readily available through its GUI.
How does QF-Test work?
We are using the term System Under Test (SUT) for the applications being tested, because it is possible to start any number of programs from QF-Test to test a whole system at once.
When the SUT is started by QF-Test, Java applications are run in separate Java Virtual Machines (JVM). An extra layer of code is executed to set up an RMI connection to QF-Test and to install a custom EventQueue before control is handed to the SUT itself. The EventQueue is needed to keep track of all the GUI components in the SUT and to record events. Special care has been taken to avoid that QF-Test interferes with possible private EventQueues of the SUT.
When QF-Test is replaying a test-sequence, the event data is sent together with the data for the target component via the RMI connection to the extra layer in the SUT. A robust algorithm for component recognition is used to determine the component that should receive the event. If the developers agree to set unique names for interesting components, the component recognition is foolproof. But even without names recognition is excellent, because it is not just based on geometry. QF-Test takes the hierarchical structure of the GUI into account and makes use of whatever data is available for a component, like titles or labels (even associated ones).
Finally the event is constructed and inserted artificially into the system’s EventQueue. To the SUT it is indistinguishable whether an event was triggered by an actual user or by QF-Test. These artificial events are more reliable than “hard” events that could be generated with the help of the AWT-Robot, for example, which could be used to actually move the mouse cursor across the screen. Such “hard” events can be intercepted by the operating system or other applications. QF-Test employs the AWT-Robot only for simulation of Drag&Drop and for illustrative purposes like self-running demonstrations, which are more impressive if the mouse cursor follows the action.
Benefits
QF-Test is …
Professional, Well Established, Efficient:
Professional tool for automated testing of Java and Web applications with a graphical user interface (GUI)
Available since 2001, approved by more than 500 customers in over 40 countries
Modular, reusable tests in combination with user-friendly handling and a competitive price lead to a high return on investment (ROI)
Powerful, Robust, Cross-Platform, Cross-Browser:
Automated regression and load tests for Swing, SWT, Eclipse plugins and RCP applications, ULC, CaptainCasa, Java applets and Java WebStart – on Windows and Unix
Cross-bowser web testing of static and dynamic (web2.0/AJAX) pages with Internet Explorer and Mozilla based browsers Firefox and SeaMonkey – on Windows and Unix (co-developed and cross-licensed with itCampus/web2test)
Reliable recognition even of complex and dynamic UI components; Tests are tolerant to GUI changes and thus require little maintenance
Various mechanisms of sequential control and modularization allow development of sophisticated tests
Configurable reports and test documentation
Further details can be found in our feature checklist
User-Friendly, Comprehensively Documented, Perfectly Supported:
Easy to learn for both testers and developers thanks to an intuitive user interface and capture/replay
Extensive documentation (manual , tutorial), further resources like mailing list with archive.
Standard training at QFS, on-site or as webinar.
Individual consulting for quick setup or optimized usage.
Quick and competent support directly from the authors
New Releases
Version 3.2.2 – July 15, 2010
New features:
- Support was added for testing Eclipse/SWT version 3.6 “Helios”.
- Multiple file selection in an SWT FileDialog can now be recorded and replayed.
Bugs fixed:
- Replay performance could suffer severely if the user’s home directory was located on a network drive.
- A workaround for an AWT weakness introduced in QF-Test 3.2.1 could impact replay performance for AWT/Swing.
- Yet another performance problem resulting from very large hierarchies of Swing menus has also been fixed.
- Several special cases for uploading files with Internet Explorer are now handled correctly.
- Downloading files with Internet Explorer now works correctly in case of HTTP redirection.
Version 3.2.1 – May 11, 2010
Bugs fixed:
- With a 1.4 JDK in interactive mode QF-Test would only start if given a file to open.
- Web-testing now works again on Windows 2000.
- The QF-Test debugger used to show duplicate entries on the variable stack for ‘Procedure call’ and ‘Test call’ nodes.
- There was a memory leak in connection with interactive editing of test-suites with ‘Check image’ nodes for large images.
- In very special cases an import of components into their own suite could result in incorrectly updated references.
- Saving entries for zipped run-logs could occasionally fail on Windows due to a problem in the underlying library. QF-Test now works around that.
- Two problems were fixed for SUTs with more than one GUI engine, e.g. a WebStart application or combined SWT/Swing. In such a case QF-Test used to log more than one screenshot of the main screen after an error and sometimes connections from the second engine could fail.
- The upload dialog for web pages was not handled correctly for all browser versions and the procedure qfs.web.input.fileUpload in the standard library qfs.qft did not handle all cases correctly.
- In recent QF-Test versions there was an inofficial global Jython run-context rc available in addition to the local one. In special cases this could cause subtle namespace problems, so the (still inofficial) global version was renamed to __rc.
- Several minor problems and occasional exceptions in connection with the result list dialogs were fixed.
New features in QF-Test version 3.2
Following is an overview over the main new features that have been implemented for QF-Test version 3.2..
- Support for Web testing in combination with Java applets
- JDK instrumentation is no longer required
- Workbench view for a modern user interface
- ‘Test-step’ nodes for detailed reports
- Refactoring support with automatic update of references
- Integration with the open source test management tool TestLink
- New ‘Best Practices’ part in the manual
- Eclipse/SWT support updated for the latest versions including GEF
- Incremental search in all of QF-Test’s text fields
- Result list dialogs for complex operations
- Component method spy
- Options can be set at script level
- Relative and test-suite-local procedures
- New-style ‘Check’ nodes and support for custom Checkers
- Static validation of references
- Automatic parameterization of procedures
- Persistent bookmarks and transient marks
- New APIs: ItemResolver, Checker, ClassNameResolver and TestRunListener
Prices
For further pricing information, contact info@codework-solutions.com.
Screenshots
Download a Free Trial of QF-Test
