Logo QF-Test

The testing tool for people who
are excited by perfection.

 

Free Trial  Download  Buy

Martina Schmid, QFS Director

Subscribe to our Release Notes: Send "Subscribe newsletter" to newsletter@remove-this.qfs.de.

Martina Schmid,
QFS Director

Manual | Tutorial | Standard Library | Release Notes

Release Notes

B
Release notes
B.1
Version 4.0.11 - April 05, 2016

New features:

Bugs fixed:

  • QF-Test now again starts correctly with early access versions of Java 9. This was broken after changing the Java 9 versioning scheme. The value "9-ea" for the system property java.version does not contain the '.' character that QF-Test expected to find after the main version.
  • In some cases the record button could remain active even after the last SUT client terminated.
  • Web A few keystrokes for certain characters - e.g. '.' - were not replayed correctly as single events in QF-Test's Chrome browser.
  • Web When trying to launch a WebStart application in QF-Test's Chrome browser, the download dialog for the JNLP file appeared instead.
  • Automatically restoring a minimized SWT or web browser window before replay on Linux could trigger a Gtk error that caused the SUT to crash.
B.2
Version 4.0.10 - January 28, 2016

New features:

  • Web Support for the AJAX toolkits ICEfaces and PrimeFaces was updated for ICEfaces version 4.1 and PrimeFaces version 5.3.
  • Automatic handling of security dialogs in Java WebStart and applets now includes support for a new dialog that was added in Java 8 update 72.
  • JavaFX The new package qfs.autoscreen.fx in the standard library qfs.qft provides procedures for image based component resolution in a JavaFX application.

Bugs fixed:

  • Exceptions in the toString method of a component in the SUT could prevent component recognition and lead to a ComponentNotFoundException.
  • During QF-Test startup or when saving or loading a file, the list of recently opened files gets updated. If that list contained entries from slow or no longer valid network drives this could take an unreasonably long time during which QF-Test was blocked.
  • The procedures in the package qfs.autoscreen now throw a TestException with detailed information in case an invalid algorithm syntax is specified by the caller.
  • QF-Test now correctly handles images with a width or height greater than 8192 pixels and handling of large PNG images is faster.
  • Occasional exceptions that were thrown when sorting a column in a result list have been fixed.
  • A search in the - rarely used - separate debugger window could cause an exception.
  • Web Using rc.overrideElement in a web based SUT could cause a NullPointerException in some special cases.
  • Web Thanks to miscellaneous performance fixes, tests for large web pages should run a bit faster, most notably on Firefox.
B.3
Version 4.0.9 - December 17, 2015

New features:

  • Web Support was added for Firefox version 43.

Bugs fixed:

  • QF-Test now cleanly handles exceptions caused by Excel files with functions that are not directly supported by Apache POI.
  • JavaFX When checking the image of a JavaFX component QF-Test now makes sure that the target is scrolled into view first and that geometry changes from focus borders are compensated.
  • JavaFX Synchronization with JavaFX events during replay has been further improved.
  • Web Text input in a browser could get recorded as a mix of text input and keystroke events.
  • Web For the AJAX framework ZK it is now possible to check the enabled/disabled state of TabFolder items.
  • Web Recognition of web components was broken in case of leading or trailing whitespace in the name of a FRAME node.
  • Web Setting the browser's user agent during startup now also works for Chrome.
B.4
Version 4.0.8 - November 4, 2015

New features:

  • Web Support was added for Firefox version 42.
  • Web Some web components with Javascript code that handles events in special ways do not react to "soft" mouse events. Besides "hard" events that actually move the mouse cursor, QF-Test also implements "semi-hard" events by sending events at OS level to the browser window. The new procedure qfs.web.general.clickIncreasinglyHard in the standard library qfs.qft makes it easier to choose the best method and keep the tests robust.

Bugs fixed:

  • Reading the output of a client process via ${qftest:client.output.<name>} immediately after the process terminated could occasionally fail and return an empty value.
  • The option settings for whether to record generic classes and system classes should have no impact on test replay. However, there was one special exception in case of Swing and SWT: If the 'Feature' attribute of ComboBox popups and lists was of the form 'Invoker class: ...', it was matched only against the class resulting from the current setting of the above options. Now the match is correctly performed against all classes of the invoker component.
  • The extra feature 'qfs:class', which holds the most specific class name of a component, is now always recorded and not only if recording of generic classes is activated.
  • When performing a successful search operation and starting to edit the highlighted attribute, the modification was lost when continuing the search without confirming the changes.
  • When reading data from a custom formatted cell in an Excel sheet that references a non-existing worksheet or file, the custom format was not applied correctly. Also, handling of cells that contain errors has been improved.
  • JavaFX JavaFX Tables and TreeTables with nested column headers are now handled correctly. Also, automatic horizontal scrolling for hard events and image capturing was not quite accurate for these components.
  • JavaFX QF-Test now works around a Java issue where capturing an image of a JavaFX component can mess up the internal geometry of a JavaFX client.
  • JavaFX Recording events in an embedded WebView browser has been improved. Most notably the first event after a page navigation and in general navigation in frames were not handled correctly.
  • Web In special cases registration of the Ext JS resolver could delay startup of a web application up to 20 seconds.
  • Web Even when specifying a dedicated Java program in the 'Executable' attribute of the 'Start browser' node, QF-Test still took some definitions from its own Java version which might cause problems with applets running in the embedded browser.
B.5
Version 4.0.7 - August 27, 2015

New features:

  • Web Support was added for Firefox version 41.
  • Web Support for the AJAX toolkit Ext JS was updated for Ext JS version 6.

Bugs fixed:

  • Memory usage for creating an XML or HTML report from a split run-log has been further reduced.
  • Step-by-step replacement of parameters or variable definitions could replace all matching values of a node instead of just the ones chosen.
  • JavaFX For some JavaFX components ItemName- and ItemValueResolver were either not separated cleanly or had no effect.
  • Swing Changes in the Java 9 API were causing problems with forced raising of windows and with replay of a file selection on the AWT FileDialog.
  • SWT Replay of a selection event on a CCombo element used inside a Tree or Table cell could fail due to focus issues.
  • Web Internet Explorer 10 and older could crash, deadlock or weirdly misbehave when running in quirks mode on pages with many nested IFRAMEs.
  • Web QF-Test's embedded Internet Explorer now treats Javascript code in href attributes in the same way as the normal Internet Explorer.
B.6
Version 4.0.6 - July 16, 2015

New features:

  • Windows 10 is now officially supported. Internet Explorer in particular was causing a number of problems, ranging from crashes to broken documentMode, userAgent or language settings which should all be fixed now.
    Note Microsoft's new browser Edge is not supported yet.
  • SWT Support for Eclipse/SWT 4.5 has been updated for the final release of Eclipse 4.5 "Mars".
  • Web Experimental support was added for Firefox version 40.
  • Web Support for the AJAX toolkit RAP was updated for RAP version 3.0. For this version - and back to RAP 2.2 - names set by development via widget.setData("name", ...) can now be retrieved automatically by QF-Test, similar to handling names in SWT. See subsection 38.2.2.9 for further information.

Bugs fixed:

  • JavaFX For JavaFX on Mac OS X QF-Test is now able to force the focus onto the SUT's windows, which is a prerequisite for stable and reliable test execution.
  • JavaFX JavaFX Tables and TreeTables with invisible columns are now handled correctly.
  • JavaFX Sequences recorded for editable JavaFX ComboBoxes were missing the popup Button and thus not replaying correctly. The Button and TextField inside the editable ComboBox are now automatically addressed as combo@:Button and combo@:TextField. Value checks for ComboBoxes were also improved.
  • JavaFX Custom headers in JavaFX table columns are now handled correctly.
  • Web On Windows the final release of Firefox 39 crashed with QF-Test 4.0.5 due to a change in the memory management of Firefox.
  • Web Firefox version 38.1 ESR was not recognized correctly by QF-Test 4.0.5.
  • SWT Geometry of SWT Widgets inside a titled Group was incorrect for SWT versions 4.4. and 4.5 on Linux.
B.7
Version 4.0.5 - May 12, 2015

New features:

  • Web Support was added for Firefox versions 38 and 39.
  • A new standard check for tool-tips has been added.
  • JavaFX For JavaFX the synchronization of QF-Test event replay with the JavaFX toolkit and its event handling and repaint mechanism has been significantly improved, which makes test replay more robust.
  • The new option Use font with support for international characters can be activated to enable support for display of international characters in case QF-Test doesn't detect that requirement automatically.
  • The new 'Procedure' qfs.utils.dumpComponents in the standard library qfs.qft logs a component (sub-)hierarchy including geometry and class information which may be helpful during test development.
  • Drag&Drop operations between components of different GUI engines, independent applications or the SUT and the desktop can now be performed with the help of the 'Procedure' qfs.utils.dragAndDrop.

Bugs fixed:

  • Creating a thread dump of the SUT is also working for 64 bit Java VMs on Windows now.
  • When recording procedures with a template file that contained an empty parameter list for container procedures, the resulting procedure calls were broken so badly that the test-suite could no longer be saved.
  • Memory usage for creating an XML or HTML report from a run-log containing externalized logs has been significantly reduced.
  • Swing Event replay for Swing, which was noticeably slower in QF-Test version 4.0.4, is now back to normal speed.
  • JavaFX In a few special cases the replay of mouse events on JavaFX menus was broken with Java 8 update 40.
  • JavaFX SUT connection with the FX engine now is being delayed until the FX toolkit has been fully initialized. This enables support for applications with embedded FX components that create the FX bridge during startup but initialize the FX toolkit later when the first FX component is shown.
  • JavaFX A possible deadlock for combined Swing and FX applications with a shared event dispatch thread has been fixed.
  • Web Class resolution despite compressed or obfuscated Javascript has been significantly improved so that web applications based on the AJAX toolkit GWT are running much faster now.
  • Web In some cases, the check recording mode in the Chrome browser was not exited cleanly so that subsequent event recording failed.
  • Web Due to a rounding issue, image checks in the Chrome browser were sometimes one pixel off.
  • Web When checking text in web applications, combinations of NBSP and normal space were not always resolved correctly.
  • Web The QF-Test browser was leaking memory when a nested FRAME or IFRAME was unloaded during page navigation.
B.8
Version 4.0.4 - March 5, 2015

New features:

  • Web QF-Test now supports testing 64bit versions of Firefox on Linux.
  • Web Dedicated support was added for the AJAX UI framework jQuery EasyUI.
  • Web Support for Firefox has been updated to match the public release of Firefox version 36 and support for Firefox version 37 has been added.
  • SWT Support for Eclipse/SWT 4.4 "Luna" has been updated for the Eclipse 4.4 SR2 release.
  • Web The Java version for starting QF-Test's browser wrapper is no longer limited to the one QF-Test itself is using. It can now be set in the attribute 'Executable' of the 'Start browser' node. This makes it easier to mix 32bit and 64bit Java versions or to use the System JRE for the browser in order to support embedded Java applets.
  • The special variable syntax ${qftest:32} (or its alias ${qftest:32bit}) can be used to test whether QF-Test is running in a 32bit Java VM, with the obvious counterparts ${qftest:64} and ${qftest:64bit} to check for 64bit VM.
  • The new command line argument -daemonrmiport <port> can be used to run the QF-Test daemon behind a firewall by specifying a dedicated port for the daemon's RMI communication in addition to the daemon lookup port that is set with -daemonport <port>.
  • The default value of the option Wait for non-existent component (ms) is now temporarily set to at least 30000 ms during SUT startup. Adding a 'Wait for component to appear' node to the SUT startup sequence is still recommended, though less emphatically.

Bugs fixed:

  • When automatically updating references after refactoring, multi-level sub-item syntax was cut off after the second item level.
  • The new command 'Find/Remove unused callables' treated procedures called only from dependencies as unused.
  • Swing The workaround for the Java 8 focus issues on Windows now handles the root cause instead of trying to keep the side effects under control.
  • Web The standard library procedures in the package qfs.web.browser.settings now explicitly check the browser parameter for validity instead of failing silently with no effect.
  • Web Chrome is now able to record 'Server HTTP request' and 'Browser HTTP request' nodes.
  • Web Chrome could crash when navigating to a previously visited page anew.
  • Web In some cases auto-expansion of tree nodes in Chrome could cause a deadlock.
  • Web When creating a new startup sequence with the quickstart wizard for the AJAX toolkit GWT the version for the GWT resolver was incorrectly set to 1 instead of 2. The same problem affected auto-detection for GWT.
  • Web The AJAX toolkit jQuery UI was not handled by the auto-detection mechanism for AJAX resolvers.
B.9
Version 4.0.3 - January 29, 2015

New features:

  • Web Support for Firefox has been updated to match the public release of Firefox version 35 and support for Firefox version 36 has been added.
  • Web The resolver for the AJAX framework GWT has been rewritten from scratch and supports a far wider range of GWT components based on GWT version 2.7.
  • SWT Support for Eclipse/SWT 4.5 "Mars" has been added based on Eclipse version 4.5M4.
  • JavaFX Recording of Drag&Drop is now implemented for JavaFX also.
  • JavaFX In addition to JavaFX components embedded in Swing, hybrid applications that work the other way round and embed Swing components in JavaFX are now also supported. This includes support for sharing the same event dispatch thread between JavaFX and Swing.
  • The new operation "Find/Remove unused callables" has been introduced in order to get rid of procedures which are never used in your test suites.
  • The new procedure qfs.check.compareDates in the standard library qfs.qft can be used to compare two date strings in arbitrary format.
  • The procedure qfs.utils.xml.compareXMLFiles has two new parameters for stripping white space and for handling namespace definitions.
  • The diagnostic information logged for every error and exception now also includes a full thread dump of the SUT as well as the SUT's Java memory usage and the current system load.
  • When executing QF-Test in batch mode for report generation or other commands that don't run any tests, QF-Test now runs in AWT headless mode if the command line argument -nomessagewindow is specified. This is useful when using such commands from a continuous integration server that runs without a display.
  • 'Server HTTP request' nodes can now use the syntax http://user:passwd@mydomain.com to send requests to secured servers.
  • The default Java memory setting for QF-Test is now 512 MB and the default Java memory for QF-Test's browser wrapper has been increased to 256 MB.
  • The new ResetListener extension API can be used to influence the behavior of the command »Run«-»Reset everything«, e.g. to prevent a certain client process from being killed or to perform additional cleanup like deleting Jython or Groovy variables. See section 39.6 for details.

Bugs fixed:

  • Changing the order of 'Catch' nodes under a 'Try' node was broken by the addition of the optional 'Else' node in QF-Test version 4.0.2.
  • Display of large amounts of output from the SUT in the terminal could slow down QF-Test and the test execution if rich text formatting was activated for the terminal.
  • In very rare cases test execution in batch mode could hang on Windows when the SUT ran into a deadlock.
  • Depending on timing, QF-Test sometimes did not kill all process clients when exiting.
  • Importing test-suites could be very slow if tolerant class matching was activated.
  • If an Excel sheet contains too deeply nested functions, QF-Test will now throw a TestException instead of ignoring those cells. Handling such Excel files requires an increased thread stack size which can be achieved by starting QF-Test with the command line argument -J-Xss512k.
  • When recording procedures, some placeholders in nested sequences in the template were not replaced correctly.
  • The procedure recorder is now able to create container procedures with standard event nodes and sequences without relying on component-specific procedures.
  • If an HTTP exception was thrown from a 'Server HTTP request' node due to to status code > 399, the variables 'responseDate' and 'statusCode' were not set correctly.
  • The horizontal scroll bar of the internal script editor was not set correctly when hard TAB characters were contained in the code.
  • Waiting for the absence of a multi-level sub-item now works correctly.
  • For WebStart applications QF-Test now also automatically handles the German version of a possible HTTPS certificate warning.
  • HTML reports, testdoc and pkgdoc documents could get scrambled by HTML comments split across several lines if HTML pass-through was activated.
  • The declaration and encoding of XML reports, testdoc and pkgdoc documents were inconsistent if the default file encoding of QF-Test's Java VM was not ISO-8859-1.
  • The tool for the "QF-Test Java Configuration" could not save values to the Windows registry if setup.exe was never run before.
  • Swing When recording in Swing applications with a great number of deeply nested components, performance could suffer severely.
  • Swing In Swing applications running on Java 8, bringing up the menu for check recording could subsequently block input into text fields.
  • Swing The workaround for focus issues in Java 8 on Windows when changing the topmost state of a window has been improved to handle another special case.
  • JavaFX For hybrid JavaFX and Swing applications replaying an event on an embedded component now correctly raises and activates the surrounding window of the other toolkit which improves the reliability of such tests.
  • JavaFX Replaying a file selection in JavaFX for a save dialog now also sets the ExtensionFilter to match the chosen file's extension.
  • SWT Trying to record a check directly on the header of an SWT Table caused an exception.
  • Web Third-party plugins and extensions were not initialized correctly for Firefox 30 and above.
  • Web Resolving list items now also works for <SELECT> nodes and generic ComboBox elements that are located in another list.
  • Web The resolver for the AJAX framework ZK has been updated to version 1.1.1 which fixes a few minor issues and improves handling of MenuItems.
  • Web Playback of semi-hard mouse events with modifiers like [Ctrl] has been fixed.
  • SWT Checks for table cells in KTable components were not recorded correctly.
B.10
Version 4.0.2-p2

New features:

  • Web Support for Firefox has been updated to match the public release of Firefox version 34 and support for Firefox version 35 has been added.

Bugs fixed:

  • Web In QF-Test version 4.0.2-p1 the user agent string returned by Firefox browsers was incomplete.
B.11
Version 4.0.2-p1

Bugs fixed:

  • Web Support for Firefox version 33 has been updated to cope with the new Firefox versioning scheme introduced with Firefox 33.1.
B.12
Version 4.0.2 - October 22, 2014

New features:

  • Web Support was added for Firefox versions 33 and 34.
  • SWT Support for Eclipse/SWT 4.4 "Luna" has been updated for the Eclipse 4.4 SR1 release.
  • JavaFX Support for JavaFX has been updated for some FX changes in the Java update 8u20.
  • The QF-Test Agent mechanism is now compatible with the tighter security restrictions introduced with Java updates 8u25 and 7u71/7u72.
  • JavaFX JavaFX Charts are now fully supported with improved representation of the component parts and various dedicated checks.
  • Web Support for the AJAX toolkits Ext JS and PrimeFaces has been updated to include support for Ext JS version 5 and PrimeFaces version 5 (see subsection 38.2.2.1 and subsection 38.2.2.7).
  • The backwards compatibility for recording components with generic classes into test-suites with pre-QF-Test-4.0 components has been extended to include support for merging such components via the import feature.
  • The 'Try'/'Catch'/'Finally' construct has been extended to support an 'Else' node which is executed in the case when the contents of the 'Try' are executed cleanly without throwing an exception.
  • 'Window' nodes now also support 'Extra feature' attributes, just like 'Component' and 'Web page' nodes.
  • It is now possible to override the way how QF-Test determines generic classes by implementing a GenericClassNameResolver as described in subsection 39.1.3.
  • Web There is now a dedicated section in the manual explaining how to quickly implement resolvers for AJAX web toolkits that are not yet supported out-of-the-box: section 38.3.

Bugs fixed:

  • In some cases the record button could remain active even though no SUT client was connected to QF-Test anymore.
  • On a Windows machine with only a 64bit Java installed, QF-Test now explicitly searches for the 64bit Java installation in "C:\Program Files" in case it does not find a javaw.exe program on the default PATH.
  • The procedures in the qfs.utils.ssh package did not use the correct default known_hosts file.
  • The 'Excel data file' node now handles the character encoding of old-style .xls files correctly.
  • The runid was not stored correctly in a run-log in case a batch test was run with split run-logs disabled via the command line argument -splitlog=false.
  • Check visible tests for items could incorrectly fail with an IndexNotFoundException instead of reporting a passed or failed check.
  • The QF-Test editor for the proc-builder configuration file could get corrupted while recording new procedures and editing the file in parallel.
  • The context diff for a failed 'Check items' was incomplete in some rare cases.
  • Swing Startup for WebStart and applets has been made more robust, including a fix for a ClassCastException occasionally seen in applets.
  • Swing The newly introduced support for custom tab components assigned via JTabbedPane.setTabComponent could break replay of existing recordings.
  • SWT Cells of a Nebula Grid component can now be recorded correctly from a scrolled location and also addressed via negative indexes.
  • JavaFX Recording of events on FX controls embedded in an SWT based SUT no longer produces duplicates and checks can now be recorded normally for such FX controls.
  • Web The default compatibility mode for Internet Explorer 10 and up has been fixed and the user agent returned by IE for document.documentMode now always correctly reflects the current compatibility mode.
  • Web Waiting for a dynamically inserted FRAME and its document to be loaded now works correctly in all browsers.
  • Web QF-Test now uses a different method for determining the geometry of TEXT nodes in all browsers that is less invasive and more efficient. The old method could occasionally interfere with Javascript code in web pages.
  • Web There was a tricky race condition mostly seen in connection with a special kind of download, triggered by opening a temporary web page which automatically closes immediately. QF-Test now handles such situations and the respective download cleanly.
  • Web The Chrome browser now displays a confirmation dialog when a window gets closed and an onbeforeunloadhandler is defined.
  • Web Component and procedure recording in the Chrome browser is considerably faster.
  • Web The embedded Chrome browser can now show videos.
  • Web Double click events are now correctly recorded in the Chrome browser.
B.13
Version 4.0.1 - August 28, 2014

New features:

  • JavaFX The JavaFX TreeTableView component, which was introduced with Java 8, is now fully supported.
  • Swing QF-Test now supports recording and checking of tabs for JTabbedPane components which use the setTabComponent method to implement some or all tabs as actual components.
  • If the 'File encoding' attribute of a 'CSV data file' node is set to "UTF-8", QF-Test now tries to determine itself whether the file starts with a Byte Order Mark (BOM) or not and handle it accordingly. QF-Test also treats an 'File encoding' attribute with "x-UTF-8-BOM" or "x-UTF-8-No-BOM" correctly, even though Java has no direct support for these encodings.
  • When moving the mouse over any image stored in a test-suite or run-log, QF-Test now displays the (X,Y) coordinates and color values of the associated pixel.

Bugs fixed:

  • The timeout value of the option Wait for non-existent item (ms) was ignored in some cases, e.g. when performing checks with a timeout.
  • An 'Extra feature' using variables for a regular expression value could mistakenly trigger a BadRegexpException.
  • In QF-Test version 4, leading and trailing whitespace is removed from sub-item names. Playback compatibility was provided for most cases, but not all. This should now work consistently.
  • The context diff for a failed 'Check selectable items' node in the run-log now includes visual representation for the expected and actual selected states and is shown correctly also in cases where there are differences only in the selected state.
  • Formulas in Excel files that return boolean values or that switch cell types more than once are now handled correctly by the 'Excel data file' node and the procedure qfs.utils.files.readExcelFile.
  • Swing In a hybrid Swing and JavaFX application, handling of Swing JTable components was partly broken due to interference from the JavaFX ItemResolver for tables.
  • JavaFX Recording of items in a multi-rooted JavaFX tree (i.e. a tree with its primary root node hidden) is now correct.
  • SWT Component highlighting was broken when recording checks in an Eclipse / SWT application.
  • SWT There were still dependencies on a newer version of glibc left in the instrumentation files for 64bit versions of Eclipse, causing failures on some Linux systems with an old version of glibc - for example RHEL 6.5.
  • Web Tests with Firefox versions 27 and 28 did not work correctly.
  • Web Text checks for table headers were broken in some web tables.
  • Web A proxy auto-config (PAC) file defined in a procedure call of qfs.web.browser.settings.setProxy is now interpreted correctly.
  • Web The Chrome browser now displays a confirmation dialog when a window gets closed and an onbeforeunload handler is defined.
  • Web Javascript errors in the Chrome browser are no longer printed to the terminal but written to the run-log.
  • Web In the Chrome browser coordinates inside an IFRAME were displaced if the frame had a border defined, leading to offsets when highlighting components and to image check failures caused by insufficient automatic scrolling.
  • Web Drag&Drop via the procedure qfs.web.general.dragFromTo now also works with Chrome.
  • Web Clearing the browser cache did not work with Firefox version 32.
  • Web The procedure qfs.web.table.getRowCount could fail in the rare case when the first column of a table is invisible.
B.14
Main new features in version 4

Note For a detailed list of new features please see the release notes for QF-Test versions 4.0.0-beta1 through version 4.0.0 below.

The following major new features have been implemented for QF-Test version 4:

Description Further info
New GUI engine: JavaFX Full support for JavaFX based applications
Support for Chrome browser Currently Windows only
Improved support for Java WebStart and applets Fast and reliable startup and connection via Java agent
Support for the AJAX framework jQuery UI Special support for various AJAX toolkits
Generic classes for components Uniform classes for all GUI engines (subsection 5.4.1)
Multi-level sub-item concept QPath concept, similar to XPath (section 6.4)
Support for embedded browsers JavaFX WebView and JxBrowser 4
Improved user interface with colored syntax highlighting Option Syntax highlighting for tree nodes, Terminal options
New package for client-side ssh connections Standard library qfs.qft, package qfs.utils.ssh
Table B.1:  Highlights in QF-Test version 4

Changes that can affect test execution:

  • The 'Wait for component to appear' node implicitly waits for the respective SUT client to connect for the required GUI engine. In case the wait fails, a ComponentNotFoundException is thrown with a message that explains whether the component was not found, the respective SUT client is not connected or whether there is no matching GUI engine available for that client. The 'Expected message' attribute of a 'Catch' node can be used to differentiate between those causes.
    In absence of a suitable client there was an inconsistency in older QF-Test versions, causing either a ComponentNotFoundException or a ClientNotConnectedException to be thrown, depending on whether such a client was previously connected or not. In case your test still expects a ClientNotConnectedException you either need to change the 'Catch' node, add an additional 'Catch' or prepend the 'Wait for component to appear' node with a 'Wait for client to connect' node.
  • The new option How to handle disabled components defines what to do when a disabled 'Component' node is referenced during test execution. In previous versions of QF-Test the disabled state was ignored which sometimes led to confusion. The default now is to log an error. Consequently, disabled 'Component' nodes are no longer re-used when recording.
  • There is a new option called Default timeout for checks (ms) that - as its name implies - defines a default timeout for checks that have no 'Timeout' attribute set. It increases general stability of check execution. If your tests include a lot of 'Check' nodes without 'Timeout' that are expected to fail, test execution time may increase. In this case you may want to set this option back to 0, the old default or, preferably, update the respective nodes and set their 'Timeout' attribute to 0.
  • Web The AJAX toolkit RAP does not use the 'ID' attribute of DOM nodes to define IDs, so the option Eliminate all numerals from 'ID' attributes had no effect for RAP. This has been fixed, so that with the option activated, numerals are now removed from IDs generated for RAP elements. In case this causes problems with existing tests, simply deactivate the option Eliminate all numerals from 'ID' attributes.

Software that is no longer supported:

Note Please see section 1.1 for a detailed list of system requirements and supported technology versions.

QFS is taking pains to support even very old software. QF-Test still runs, for example, under Windows XP or with an SUT based on Java 1.5 or 1.6 but for systems that are no longer supported by their own vendors we cannot provide full support.

Libraries that are required for the Firefox and Eclipse/SWT versions listed below are no longer part of the default installation of QF-Test. The majority is still being maintained, albeit with limited testing. If you need support for such a system, please get in touch with QFS via support@qfs.de.

Official support has been dropped for Java 1.5, Internet Explorer 7 and older, Firefox 25 and older (except Firefox 24 ESR) as well as Eclipse/SWT 3.6 and older.

B.15
Version 4.0.0 - July 31, 2014

New features:

  • Web Support was added for Firefox versions 31 and 32.
  • A more user-friendly way of updating a QF-Test license is now available via the menu »Help«-»Update license...«.
  • When opening a Jython or Groovy terminal for an SUT client, the command history from the most recently created Jython or Groovy terminal is copied. This makes it easier to try out the same scripts when repeatedly restarting the SUT.
  • When importing QF-Test results into TestLink it is now possible to use the 'QF-Test ID' for associating test-cases and to omit the platform.
  • After starting QF-Test the record button now has a help icon that leads to the quickstart wizard for launching an SUT. This feature is intended to assist first-time users that often wonder why they cannot start recording right away.
  • Web The procedure qfs.web.ajax.installToolkitResolver now allows specifying default versions for automatically detected AJAX toolkit resolvers. This prevents inadvertent updates to versions with potential incompatibilities in newer QF-Test versions.
  • Web The default severity level for Javascript errors in web pages has been changed to 'Warning'. Current browsers simply ignore Javascript problems by default so that treating those as an error caused too much irritation. The setting can be changed via the option How to handle Javascript errors in a Web application.

Bugs fixed:

  • SWT On Linux systems like RHEL 6.5 with an old version of glibc, instrumented 64bit versions of Eclipse failed to start. This dependency on a newer version of glibc has been removed.
  • SWT When the QF-Test agent was enabled, an Eclipse / SWT application with embedded Swing components connected as two SUT clients instead of one client with two GUI engines.
  • JavaFX Column header cells in JavaFX tables are now addressed correctly.
  • JavaFX CheckBox elements inside JavaFX table cells or tree nodes are now recorded with the new @:CheckBox item syntax.
  • Web The check for the editable state of TextField, PasswordField and TextAreas nodes was missing for web clients.
  • Web A selection in a ComboBox that initiated a navigation to another page could cause Internet Explorer to crash.
  • Web Check recording in the browser did not work in an area covered by an invisible IFRAME.
  • Web Event synchronization for the AJAX toolkit Ext JS now handles modal dialogs correctly.
  • Web Replay of text input for INPUT elements of type "number" has been fixed.
  • Web When defining proxy settings for Internet Explorer via the qfs.web.browser.settings.doStartupSettings procedure, proxy.pac files were not handled correctly.
  • Swing In newer Java and Browser versions the startup behavior of applets has changed, sometimes causing two JRE versions to start up simultaneously. Depending on timing, this could cause the real applet to connect as $(client):2 instead of $(client). QF-Test now works around this problem by connecting to an applet only after it has become visible.
  • Swing The "All lines" check for Swing JTextArea components was not recorded correctly when clicking below the first line of text.
  • Swing There are now two different text checks for JEditorPane components that display HTML, "Text" and "HTML source". In many cases the check against the plain, displayed text is more useful than the former default check for the HTML source code. Also, the text check for JEditorPane components that display RTF has been fixed.
  • When canceling an edit in the detail view or adding of a new node, QF-Test now checks whether modifications were made and asks for confirmation before discarding those. This confirmation dialog can be suppressed via the option Ask before discarding detail modifications.
  • When toggling the disabled state of the selected node, modifications made but not confirmed in the detail view were silently discarded.
B.16
Version 4.0.0-rc1

New features:

  • QF-Test now supports multi-level sub-items for addressing components within an item. A typical example is a TextField within a table cell that can now be addressed as table@Header&row@:TextField. The syntax is extremely powerful with the potential to mix XPath-like syntax with QF-Test's component representation (see section 6.4).
  • The former 'Id' attribute of 'Window' and 'Component' nodes is now called 'QF-Test ID' in order to disambiguate it from the various kinds of IDs used by the supported GUI engines.
  • Web Generic classes are now also implemented for standard HTML nodes even without a dedicated AJAX resolver.
  • Web Support for the AJAX toolkit RichFaces was updated to RichFaces version 5.
  • SWT Support for Eclipse/SWT has been updated for Eclipse version 4.4 "Luna".
  • SWT The Nebula Grid component is now supported by default and automatically recognized.
  • It is now possible to define a directory for saving temporary run-logs in interactive mode via the option Directory for run-logs. During QF-Test startup this directory can be specified on the command line via -runlogdir <directory>.
  • The new option Directory map for test-suites can be used to map directories for test-suites. This is very useful when working with a run-log from a machine with a different file layout (e.g. Windows vs. Unix) because with the correct directory mapping QF-Test can locate a test-suite without manual help.
  • There are two new special variable groups to conveniently escape special characters. ${quoteitem:...} deals with characters like '@' or '&' in a textual sub-item index and ${quoteregexp:...} handles '.', '(', '[' etc. in a regular expression.
  • It is now possible to specify a directory as a bookmark (see subsection 29.1.3). When such a bookmark is selected, the file selection dialog is opened directly for this directory.

Bugs fixed:

  • Web Multiple instances of the Chrome browser can now run simultaneously on one machine.
  • Web Performance, stability and supported feature set for browsers embedded via JavaFX WebView and JxBrowser were improved.
  • Web The AJAX toolkit RAP does not use the 'ID' attribute of DOM nodes to define IDs, so the option Eliminate all numerals from 'ID' attributes had no effect for RAP. This has been fixed, so that with the option activated, numerals are now removed from IDs generated for RAP elements. In case this causes problems with existing tests, simply deactivate the option Eliminate all numerals from 'ID' attributes.
  • With support for JavaFX and its Swing InterOp embedding capabilities as well as support for embedded browsers, SUT clients often have more than one GUI engine. This caused problems with 'SUT script' nodes in the standard library qfs.qft which were relying on the default GUI engine. All procedures with 'SUT scripts' now have an optional parameter named guiengine which is predefined correctly, so that for example a 'Procedure' in the 'Package' qfs.web automatically works correctly in an embedded browser. In the exceptional case of an SUT client with more than one GUI engine of the same kind you can define the guiengine parameter to address a particular engine.
  • After introducing generic classes, replay was broken in case an anonymous inner class was manually assigned for a component.
  • During dependency resolution, 'Parameter default values' of 'Dependency' nodes were not correctly bound.
  • Performance of test execution in interactive mode suffered from repaint issues caused by the new syntax highlighting in the tree view.
B.17
Version 4.0.0-beta3

New features:

  • Web Support was added for Firefox version 30.
  • JavaFX Procedure recording is now fully supported for JavaFX.
  • Web For web applications based on the AJAX framework ZK QF-Test now resolves the original developer-assigned IDs and uses them as names for components.
  • Web Support for the Chrome browser is continuously improving. Up- and download are now fully supported as well as login dialogs, closing of browser windows, key and text input including modifiers and cursor position. Also, there now is a custom profile folder to separate testing from normal use with support for cookie and cache cleanup, locale and proxy settings.
  • Web Embedded browsers in JavaFX WebView or via JX Browser are also making headway and multiple embedded browsers in one window are now handled correctly.
  • Simple but very useful: The dialog shown when an error or exception occurs during a test now has an additional button for jumping directly to the respective node in the run-log.
  • JavaFX A check was added for the checked state of a CheckBox in JavaFX table cells, tree nodes and list entries.
  • The new procedure qfs.web.general.dragFromTo supports HTML5 style drag and drop operations without blocking the application, alternatively at Javascript level or via hard events.

Bugs fixed:

  • SWT The introduction of generic classes for SWT caused a serious performance issue that has been fixed.
  • SWT For SWT QF-Test refused to replay hard events on negative coordinates which, however, are necessary to reach a window on a second monitor placed to the left of the main screen on Windows.
  • Web The print dialog is now shown correctly in Firefox.
  • In very special cases running a test in a QF-Test daemon could fail due to a missing engine license even though the license was available.
B.18
Version 4.0.0-beta2

New features:

  • Generic classes are now also implemented for Swing and SWT.
  • QF-Test records generic class, custom class and system class as extra features named qfs:genericclass, qfs:class and qfs:systemclass respectively. This is useful information and can be used to switch individual components to a more specific or less specific class. In case the generic class also has a more specific sub-type QF-Test also records the extra feature qfs:type, e.g. "PanelTitle" for a Label that is the title of a TitledPanel.
  • Web Supported standard functionality for Chrome now includes support for downloads, handling prompt and confirm dialogs as well as getting and setting the cursor position in text fields which is required for recording mouse events relative to a character position and for 'Text input' nodes which insert text into the middle of existing text.
  • Support for embedded browsers now includes JavaFX WebView and JxBrowser 4. Though this is still work in progress, basic capture and replay for mouse events already works.
  • Web When started from QF-Test Chrome now also automatically accepts SSL certificates for HTTPS connections.
  • It is now possible to choose between different layouts of the test-suites in the selection dialog for 'Procedures'.

Bugs fixed:

  • JavaFX Thanks to improved focus management replay for JavaFX on Linux should be more reliable now, especially selection of menu items.
  • JavaFX Replaying hard mouse click for the middle or right button did not work correctly with JavaFX.
  • An Excel 2010 sheet with a cross-sheet reference to a pure number is now handled correctly by the 'Excel data file' node.
B.19
Version 4.0.0-beta1

New features:

  • JavaFX JavaFX is the successor of Swing as the standard UI Toolkit in Java 8. QF-Test version 4.0 introduces the new product line QF-Test/fx that fully supports testing JavaFX applications. This GUI engine is nearly complete. Missing at this point is recording of procedures and support for handling the embedded WebView as a full-featured QF-Test Web engine is incomplete.
  • Support for the Chrome browser on Windows is well advanced and mostly stable. As before with Internet Explorer and Firefox the goal is to hide the browser differences and enable a single test to run unchanged on all three browsers. Not implemented at this point are various browser dialogs as well as file up- and download. Another current restriction is that only one instance of Chrome can be run by QF-Test in parallel.
  • The concept of generic classes, initially available for the web engine only, has been extended to support JavaFX and soon all GUI engines. It is the basis for interoperable tests that work for different GUI engines, provides a higher level of abstraction and more flexible and robust component recognition. Recording of generic classes is configured via the option Record generic class names for components.
    See the video Dealing with the explosion of complexity in web test automation for a vivid demonstration of the explosion of complexity in AJAX user interfaces. This applies just as well to JavaFX which shares the automation problems of a UI built from a large number of small GUI elements and for which QF-Test's approach with generic classes fits perfectly.
  • Tolerant class matching when recording: Existing nodes in QF-Test's component hierarchy will be reused as long as they match one of the classes of the recorded component. This means that when switching to/from generic class recording, no components will be forcibly re-recorded. This has no impact on the 'Update components' feature which always updates the respective components according to the current recording option settings.
  • Connection with the SUT is now implemented via the Java agent mechanism by default. It is faster, more stable - especially for Java WebStart and Applets - and much more flexible and powerful. In case of problems the Java agent mechanism can be disabled via the option Connect via QF-Test agent.
  • During SUT startup Jython and Groovy are now loaded on demand, leading to faster and more reliable startup. Jython in particular was one of the main reasons for problems with Java WebStart. This also reduces the overhead and memory footprint if either of the languages is not used at all.
  • Web Support was added for the AJAX framework jQuery UI.
  • SWT Eclipse/SWT support was added for the Eclipse 4.4 "Luna".
  • SWT The Nebula NatTable component is now supported by default and automatically recognized.
  • Colored syntax highlighting of tree nodes was added which significantly improves readability of test-suites.
  • The shared terminal now provides coloring of different message types. The new group of Terminal options encloses a bunch of new settings to adjust text display in the shared terminal. Font size and type can be defined as well as a number of regular expressions to highlight and/or filter arbitrary text in the output.
  • It is now possible to set breakpoints on 'Component' nodes so as to enter the debugger as soon as the node gets referenced.
  • For a failed 'Check items' node both run-log and report now contain a context diff of the expected and actual values so that all deviations can quickly be identified.
  • Relative 'Test calls' with a leading '.' in the 'Test name' attribute are now supported.
  • In places where QF-Test supports regular expressions, e.g. 'Text', 'Feature' or 'Items', normal text can now be turned into a properly quoted regular expression by right-clicking and selecting 'Escape text for regular expressions' from the context menu.
  • Handling of items with multi-line text, e.g. tree nodes, table headers or cells, list items etc. has been improved.
  • Search and replace operations for variables can now be limited further to cover only variable names or variable values.
  • The manual chapter on integration with HP ALM - QualityCenter was rewritten from scratch: section 19.1.

Changes that can affect test execution:

  • The 'Wait for component to appear' node implicitly waits for the respective SUT client to connect for the required GUI engine. In case the wait fails, a ComponentNotFoundException is thrown with a message that explains whether the component was not found, the respective SUT client is not connected or whether there is no matching GUI engine available for that client. The 'Expected message' attribute of a 'Catch' node can be used to differentiate between those causes.
    In absence of a suitable client there was an inconsistency in older QF-Test versions, causing either a ComponentNotFoundException or a ClientNotConnectedException to be thrown, depending on whether such a client was previously connected or not. In case your test still expects a ClientNotConnectedException you either need to change the 'Catch' node, add an additional 'Catch' or prepend the 'Wait for component to appear' node with a 'Wait for client to connect' node.
  • The new option How to handle disabled components defines what to do when a disabled 'Component' node is referenced during test execution. In previous versions of QF-Test the disabled state was ignored which sometimes led to confusion. The default now is to log an error. Consequently, disabled 'Component' nodes are no longer re-used when recording.
  • There is a new option called Default timeout for checks (ms) that - as its name implies - defines a default timeout for checks that have no 'Timeout' attribute set. It increases general stability of check execution. If your tests include a lot of 'Check' nodes without 'Timeout' that are expected to fail, test execution time may increase. In this case you may want to set this option back to 0, the old default or, preferably, update the respective nodes and set their 'Timeout' attribute to 0.

New packages and procedures in the standard library qfs.qft

Software that is no longer supported:

QFS is taking pains to support even very old software. QF-Test still runs, for example, under Windows XP or with an SUT based on Java 1.5 or 1.6 but for systems that are no longer supported by their own vendors we cannot provide full support.

Libraries that are required for the Firefox and Eclipse/SWT versions listed below are no longer part of the default installation of QF-Test. The majority is still being maintained, albeit with limited testing. If you need support for such a system, please get in touch with QFS via support@qfs.de.

Official support has been dropped for Java 1.5, Internet Explorer 7 and older, Firefox 25 and older (except Firefox 24 ESR) as well as Eclipse/SWT 3.7 and older.

B.20
Version 3.5.5

New features:

  • Web Support for Firefox version 27 was updated and new support added for Firefox version 28.
  • SWT Eclipse/SWT support was updated for service release 2 of Eclipse version 4.3.
  • The driver test-suites and documentation for the integration with imbus TestBench were updated.
  • Web QF-Test is now less restrictive when comparing document URLs or href attributes, so a simple change of a hostname, IP address or port no longer requires working with regular expressions in the 'Feature' attribute.

Bugs fixed:

  • Focus handling for replay with Java 8 has been improved and QF-Test now works around a bug in Java 8 when setting a window topmost on Windows systems.
  • Web Proxy settings for Internet Explorer are now application-local, so even after a crash the system proxy settings remain unchanged.
  • Web The user agent for Internet Explorer 11 is now reported correctly by QF-Test's embedded browser.
  • Web Firefox confirmation dialogs for closing or navigating away from a web page are now handled correctly and can be interacted with.
  • SWT Input of Unicode characters from 'Text input' nodes with 'Replay single events' set was not replayed correctly on some Linux systems.
  • Closing the QF-Test main workbench with a run-log still open, then jumping from that run-log to a test-suite caused the saved session of opened test-suites to get lost.
B.21
Version 3.5.4

New features:

  • Web Support was added for Firefox versions 26 and 27.
  • Web Support for the AJAX toolkit ZK was updated for ZK version 7.
  • Web Synchronization with AJAX HTTP requests was improved for the toolkits ExtJS, ICEfaces, PrimeFaces and ZK.
  • Web On Windows the one-time installation of the QF-Test Javascript bridge for Firefox no longer requires starting QF-Test once with administrator privileges.

Bugs fixed:

  • WebStart applications are still a moving target. Various fixes for special cases were implemented to make startup of WebStart applications more reliable.
  • Mouse events with variables for the X or Y coordinate that expand to empty values were not replayed to the middle of the target but to the relative coordinate 0.
  • In case of deep component hierarchies QF-Test no longer logs excessive component information which, in extreme cases, could cause the SUT to run out of memory.
  • A memory and thread leak in the DaemonLocator class has been plugged.
  • The JNA library included in Jython no longer triggers stackguard warnings.
  • Web An exception caused by a special kind of HTML table with no columns in the header has been fixed.
B.22
Version 3.5.3

New features:

  • Web Support was added for the AJAX toolkit ICEfaces. See section 38.2 for further information and a list of the supported AJAX toolkits and their versions.
  • Web QF-Test can now automatically detect whether a web page is based on one of the supported AJAX toolkits and installs the respective resolver.
  • Web Support was added for Firefox versions 24 and 25.
  • The QF-Test demo video on the welcome dialog now links to the updated video on the QFS home page which is fully redesigned, including spoken explanations.
  • It is now possible to copy and paste table cells back and forth between QF-Test tables and Excel or OpenOffice spreadsheets.
  • When changing the name of a parameter in callable nodes like a 'Procedure' QF-Test now offers to automatically update the variable name in all calling nodes.
  • The standard library qfs.qft contains several new procedures for working with standard Swing dialogs based on the JOptionPane class in the package qfs.swing.optionpane.

Bugs fixed:

  • Stability of startup of WebStart based clients and compatibility with older WebStart versions was further improved.
  • Canceling a long search did not work reliably and could even lead to a deadlock in some cases.
  • Replace operations for the regular expression ".*" could lead to double replacements in some cases.
  • The associated label for components was sometimes not determined correctly if the label was placed to the right of the component.
B.23
Version 3.5.2

Important changes:

  • Handling of the security dialogs for Java WebStart and applets had to be changed again.
    Security warnings are now closed implicitly before connecting to QF-Test and it is possible to permanently accept a certificate during this step. The details for this operation can be configured via the procedure qfs.swing.startup.setSecurityDialogSpec.
    The default delays for WebStart and applets also changed as documented in the procedure qfs.swing.startup.setDelays.

New features:

  • SWT Eclipse/SWT support was updated for the final Eclipse version 4.3 "Kepler".
  • Web Support was added for Firefox version 23 and updated for version 22.
  • Testlink support was updated for Testlink version 1.9.7.
  • 'Wait for component to appear' nodes now automatically handle waiting for the respective GUI engine in addition to implicitly waiting for the SUT to connect.
  • Nodes for 'Procedures' and 'Packages' marked as "@deprecated" are now crossed out in the tree view.
  • Web The new procedure qfs.web.general.integrateFirebug in the standard library qfs.qft loads Firebug Lite into the running browser which can be very helpful when writing resolvers.
  • The keyboard shortcut [Shift-Control-I] can now be used to quickly pack one or more steps into an 'If' sequence.

Bugs fixed:

  • The Windows executables qftest.exe and qftestc.exe failed to read the configured Java version, memory and language from the Windows registry.
  • Saving test-suites and run-logs and other IO operations are now significantly faster on slow network shares.
  • When changing the currently executed node via 'Continue execution from here' in the test debugger, QF-Test is now smarter in keeping as much of the current state of execution as possible, including the previously broken case when continuing from a 'Procedure' node.
  • Web On Linux systems Firefox would crash when terminated while a dialog was still showing.
  • Web The recently added support for ZK and PrimeFaces was fine-tuned and fixes subtle problems with specific Trees, TreeTables and other components.
  • Swing Associated labels of Swing components, recorded as "qfs:label" extra feature, are now used for generating the 'QF-Test ID' attribute. For web and SWT components this was already the case.
  • In the QF-Test daemon DaemonTestRunListener instances were not unregistered correctly which could slow down daemon execution after a call like
    qftest -batch -calldaemon -verbose ...
  • The SUT can now implement an RMIClassLoaderSpi without interference from QF-Test's RMI communication.
B.24
Version 3.5.1

Important changes:

  • The Jython version provided with QF-Test was rolled back to Jython 2.5.1 because Jython 2.5.2 caused strange but reproducible problems with some SUTs. Jython is mainly used as glue code, so stability and non-interference with the SUT are far more important than compatibility with newer Python language features and modules, so the Jython version for QF-Test will remain frozen at 2.5.1 for the foreseeable future.

New features:

  • Web New support was added for the AJAX toolkits PrimeFaces and ZK and support for Eclipse RAP was updated to RAP version 2.0. See section 38.2 for further information and a list of the supported AJAX toolkits and their versions.
  • SWT Eclipse/SWT support was added for Eclipse version 4.3 "Kepler".
  • Web Support was added for Firefox versions 21 and 22.
  • The new procedure qfs.swing.filechooser.selectFiles can be used to select several files in a multi-select enabled Swing JFileChooser.
  • The new 'Browser HTTP request' node can be used to replay HTTP GET or POST request directly in the running browser. In contrast to the existing 'Server HTTP request' node, which interacts directly with the server, the 'Browser HTTP request' can be combined with event and check nodes.
  • HTML reports now contain pie charts to visualize the number of successful, failed and skipped tests. A click on the chart brings up a more detailed graph. The directory structure of reports has been cleaned up by moving all images and screenshots to sub-directories.
  • Web When started from QF-Test Firefox now automatically accepts SSL certificates for HTTPS connections, limited to the current session.
  • Testlink support was updated for Testlink version 1.9.4.

Bugs fixed:

  • The initial connection sequence for applets and WebStart based applications had to be updated after security restraints were again tightened in recent JRE updates from Oracle. The stability of applet and WebStart startup should now be less dependent on timing and the procedure qfs.swing.dialogs.handleSecurityWarning is now able to handle all current security warnings for applets and WebStart.
  • Exceptions caused by CSV or Excel files with inconsistent data are now handled cleanly.
  • Updating components with 'Item' nodes could cause an exception.
B.25
Main new features in version 3.5

Following is an overview over the main new features that have been implemented for QF-Test since the last production version 3.4.

Description Further info
Grouping and managing test-suites in projects chapter 10
Support for AJAX toolkits ICEfaces, PrimeFaces, Vaadin and ZK section 38.2
Better abstraction with generic classes for web pages section 5.4
Full sub-item support for several AJAX toolkits section 38.2
Secure daemon communication via SSL section 16.2, chapter 40
Improved component recognition without names thanks to associated label Attribute 'Extra feature'
Integration with test management tool QMetry section 19.3
Several extensions to the standard library qfs.qft Standard library, list of changes
Groovy updated to version 2.1.0  
Table B.2:  New features in QF-Test version 3.5
B.26
Version 3.5.0

New features:

  • Web Support was added for Firefox version 20.
  • SWT Eclipse/SWT support was updated for Eclipse versions 4.2.2 and 3.8.2.
  • Groovy was updated to version 2.1.0.
  • Explicit references between test-suites belonging to the same project are now resolved automatically provided that those test-suites have been saved with QF-Test version 3.5.0 or higher.
  • Multi-line values can now be edited directly in QF-Test's table cells.
  • Extra mouse buttons can now be used to move backwards/forwards between recently selected nodes.
  • Double-clicking on nodes that reference other nodes now navigates to the target, e.g. from 'Procedure call' to 'Procedure'.
  • Test-suite and run-log files can now be dragged onto QF-Test's main window to open them.
  • The new procedure qfs.swing.dialogs.handleSecurityWarning in the standard library qfs.qft closes the security dialogs displayed by current JREs during startup of applets or WebStart based applications.
  • The procedure qfs.web.browser.general.startAsNewProcess was updated to include security dialog handling.
  • Another new procedure named qfs.swing.startup.startWebstartSUT can be used to run WebStart and connect to the SUT, also handling the security dialog automatically.
  • The new procedure qfs.utils.files.readExcelFile can be used to read data from an excel sheet into Jython or QF-Test variables.
  • Web The 'Server HTTP request' node now offers an optional timeout and can return the HTTP status code. Parameters are now encoded during replay instead of recording, making it easier to specify values manually. Older test-suites are converted automatically during loading to reflect this change.
  • SWT The default names recorded for GEF items are now more meaningful and result in improved recognition.
  • QF-Test now integrates with the test management tool Klaros. See section 19.4 for further information.
  • The error list for a run-log now includes a timestamp column and shows information about expected errors.
  • When pausing a batch test via [Alt-F12], input to the SUT is no longer blocked.
  • If the new command line argument -dontkillprocesses is specified in batch mode, QF-Test will not explicitly terminate processes started as part of the tests.

Bugs fixed:

  • A memory leak in case of large projects with many test-suites and complex includes has been plugged.
  • A workaround has been implemented for a bug in recent JRE security updates that could cause batch tests to simply stop in the middle of execution.
  • Variables could accidently be removed from QF-Test component IDs when fixing references automatically.
  • In special cases externalized run-logs could be missing from run-logs saved as .qzp.
  • When opening an externalized log on its own, split logs contained therein could not be accessed correctly.
  • A race condition during automatic project refresh could mess up the project tree view.
  • The native file chooser for Windows is now implemented based on SWT instead of XFileDialog. This fixes issues when opening directories and when changing the file filter during "Save as..." operations.
  • In batch execution of multiple test-suites, global variables and resources are no longer cleared before the execution of each test-suite unless the new command line argument -clearglobals is specified.
  • Web Firefox on Linux no longer crashes on shutdown.
  • Web For some MIME types downloading files did not work correctly with Firefox.
  • Web Checks for the enabled state could fail in Internet Explorer if the state was set via Javascript.
  • Web Waiting for the absence of an element could fail if the element just became invisible instead of being removed completely.
  • Variables in 'Data binder' nodes are now expanded immediately during execution of the containing 'Data driver' node so that local variables bound in the 'Data driver' are evaluated correctly.
  • A 'Return' in a 'Finally' node could hide an exception thrown in the containing 'Try' node.
  • Using Java 7 on Mac systems could cause an exception during startup of QF-Test.
  • In case a process simply refuses to be killed, the 'Stop client' node did not remove the process from the »Clients« menu, thus preventing starting a new process under the same name.
  • Image checks based on algorithms were not always shown correctly in the report.
  • In case dependency resolution fails due to an exception during setup even after unwinding the complete dependency stack for error escalation (see section 12.3), QF-Test now cleans up after the final attempt so that the next test-case starts with a clean slate.
  • Changes to the location of the search dialog and other dialogs were often ignored instead of automatically saved to the user preferences.
B.27
Version 3.5M3

New features:

  • Web Support was updated for Firefox versions 18 and 19.
  • The project concept now includes support for sub-projects. See chapter 10 for further information.
  • Web Javascript error filters defined in the option Errors that should be ignored are now applied to the complete message including the URL and line number of the source of the error.
  • SWT Several checks were added for Eclipse JFace components like FormText, Link or Hyperlink.

Bugs fixed:

  • The responsiveness of QF-Test severely suffered when opening many test-suites.
  • Refresh of large projects on slow filesystems like Windows network shares is now significantly faster.
  • If several projects were opened, automatic refresh of the project hierarchy could mess up the project tree.
  • SWT Geometry of events relative to an SWT Shell now includes the window title and borders.
  • SWT Highlighting widgets inside CTabFolders in Eclipse 4.2 now uses the correct offset.
  • Errors happening outside a test-case were not listed correctly in the report if the containing test-set contained several test-cases.
  • Web Downloading files with Firefox could cause a Javascript error if the file mimeTypes.rdf was missing from QF-Test's Mozilla profile. This file is now created on the fly if necessary.
  • Web Closing the browser window of Internet Explorer 10 could cause the browser to deadlock instead of terminate.
  • Web QF-Test's embedding of Internet Explorer 10 caused the browser to run in IE9 mode. Now it starts up in IE10 mode by default with the usual settings for compatibility mode enabled.
  • Web Replaying [Tab] keystrokes on Firefox did not always trigger the correct focus traversal.
  • Conflicts caused by an SUT using a Groovy 2 version other than the version provided with QF-Test are now resolved.
B.28
Version 3.5M2

New features:

  • SWT Eclipse/SWT support was updated for Eclipse versions 4.2.1 and 3.8.1.
  • Daemon communication is now secured via SSL. See chapter 40 about how to increase security by creating an individual keystore or how to disable this feature in case you need daemon interaction with older QF-Test versions.
  • QF-Test generated JUnit reports now contain <skipped> tags, enabling build tools like Hudson/Jenkins to correctly report skipped tests.

Bugs fixed:

  • License usage for idle QF-Test daemons was not determined correctly.
  • Swing Replaying certain events in batch mode could switch QF-Test into recording mode, causing weird problems and significant loss of performance.
  • Swing Timing for startup of Java WebStart based SUTs has been further improved to significantly increase the stability of this setup.
  • Web Some focus transitions were not triggered correctly when replaying events in a browser.
  • Web The filename shown in a download dialog was not always correct.
  • Web Downloads in a Vaadin based SUT could cause an exception.
  • Web Internet Explorer 10 now reports the correct version information.
  • SWT Recording of drag and drop operations on CTabFolders in Eclipse 4.2 was broken.
  • SWT In some cases the height of SWT List items was not calculated correctly, leading to the wrong item being addressed in case of large lists with many items.
  • The new 'Extra feature' attribute qfs:label was sometimes not determined correctly in the presence of Swing JSlitPane or SWT SashForm components.
  • Handling of an SUT with combined SWT/AWT GUI was broken. Due to an error introduced in version 3.4.11 QF-Test was treating this as two SUT clients instead of one client with two GUI engines.
B.29
Version 3.5M1

New features:

  • With the introduction of projects (see chapter 10), large sets of test-suites become much more manageable and updating reverse includes is now mostly a thing of the past.
  • Web The increasingly popular AJAX toolkit Vaadin is now fully supported.
  • Web The integration of QF-Test with various AJAX toolkits has been brought to a new level. Generic classes provide a unified view that abstracts from the technical details, focusing on typical UI elements like Tree or Table that users are familiar with. This even includes the concept of sub-items so that addressing table cells or tree nodes is now just as easy as with Swing or SWT. This level of support is currently available for Ext JS 4, RAP, RichFaces and Vaadin.
  • Web Support was added for Firefox version 18.
  • For SUTs where only few components are named - if any - component recognition has been improved by adding a new 'Extra feature' called qfs:label. It represents a best match for a label, based on various algorithms including a search for the nearest label for components that don't have one of their own. Classical forms consisting of text fields with labels next to them benefit most from it.
  • Handling the opposite case, where the same component name is assigned to more than one component, is now also handled via via the new option Validate component recognition during recording.
  • QF-Test now integrates with the test management tool QMetry. See section 19.3 for further information.
  • Components in QF-Test's detail view are now sized dynamically depending on the contained data. Combined with improved scrolling this vastly improves creating and maintaining test-suites.
  • The menu item »Replay«-»Reset all« can be used to stop the test, reset dependencies and global variables and kill all clients with a single action.
  • On Windows QF-Test now uses the native file chooser by default, configurable via the option Use native file chooser on Windows systems.
  • There are new operations to search for various kinds of duplicates, empty tests or illegal characters. The result dialogs for these and similar operations as well as searches have more options and exported results can now be read back.
  • Search and replace operations now cover whole projects and can be interrupted in case they take too long.
  • Tables holding variable definitions or parameter lists can now be sorted.
  • It is now possible to navigate from a QF-Test component ID specified in a variable table directly to the component by right-clicking the respective table cell.
  • Parameters of procedures can now be added to or removed from the variable definitions of all callers via the context menu of the parameter table.
  • Recording procedures for windows with many components now works significantly faster.
  • Whitespace at the beginning or end of variable names is now generally removed to avoid confusion.
  • There is a new hotkey (configurable via Hotkey for recording, default [F11]) to start and stop recording directly in the SUT. The previous default binding for [F11], component recording, has been moved to [Shift-F11].
  • There's a new kind of check for tree nodes that can handle whole (sub-)hierarchies at once, including indentation.
  • Highlighting components in the SUT for event nodes now works even if the 'Component' node for the event is not located in the same test-suite.
  • Killing the SUT and other processes now works much faster.
  • Leading and trailing whitespace in 'Feature' attributes is now generally ignored. This implementation is fully backwards compatible, so it doesn't hurt if features were recorded with whitespace before.
  • Line numbers are now displayed for tables where this is useful, for example in 'Data table' or 'Check items' nodes.
  • In places where accidentally inserted TAB or line-break characters can do harm, most notably in variable definitions or checks, they are now represented as graphical symbols. This can be turned off via the option Show symbols for tabulator and linebreaks.

New packages and procedures in the standard library qfs.qft

Bugs fixed:

  • The modified connection mechanism still crashed Java WebStart on some occasions and has been further fine-tuned to prevent that.
  • The option settings for Errors that should be ignored were not saved to the system configuration file.
B.30
Version 3.4.11

New features:

  • QF-Test is now compatible with Java applets running on JRE version 1.6.0_35 or higher or JRE version 1.7.0_7 or higher. A security fix from Oracle broke the existing applet connection mechanism. The new mechanism should also improve stability of Java WebStart based SUTs.
  • Web Support was added for Firefox version 17.
  • Web Via the new option Errors that should be ignored it is now possible to ignore specific Javascript error messages while still treating others as an error.
  • When copying multiple lines of a table in the detail view of QF-Test these are now also copied to the system clipboard as a list of TAB-separated values, thus enabling pasting into a spreadsheet.
  • The new procedure qfs.utils.logNativeMemory in the standard library qfs.qft can be used to get information about the native memory use of an SUT client.
  • Windows executables and installers created by QFS are now signed with an official certificate for smoother integration with Windows 7 and Windows 8.

Bugs fixed:

  • Web Downloads of large files were sometimes truncated.
  • Web The new <INPUT> types in HTML 5 are now mapped to INPUT:TEXT so that tests remain independent of whether the browser supports them.
  • The command line argument -runlogdir <directory> now also works for daemon calls via qftest -batch -calldaemon.
  • Empty formatted cells in an Excel 2010 sheet are now handled correctly by the 'Excel data file' node.
  • Web Toolbar icons for QF-Test's browser wrapper are now transparent and no longer look horrible on Windows 7.
B.31
Version 3.4.10

New features:

  • Web Support was added for Firefox versions 15 and 16.
  • The performance of complex QF-Test operations like finding references has been significantly improved for large projects on slow filesystems like network shares.

Bugs fixed:

  • Web Crashes of IE and Firefox were further reduced.
B.32
Version 3.4.9

New features:

  • SWT Eclipse/SWT support was added for Eclipse "Juno" versions 4.2 and 3.8.
  • Web Support was added for Firefox version 14.
  • Several new transformation options for nodes in the test-suite were introduced.

Bugs fixed:

  • Web A significant memory leak in QF-Test's browser wrapper was plugged.
  • Web Several causes for browser crashes were fixed, both for Internet Explorer and Firefox.
  • Web Component recognition now also works correctly with components recorded in a flat hierarchy, even if the web page contains <FRAME> nodes.
  • Web The progress bar in Internet Explorer always remained visible even when a page was completely loaded.
  • Web If the path for the Firefox installation directory contained special characters, Firefox could not be started correctly from QF-Test.
  • SWT On Windows, popup menus in an Eclipse/SWT application were sometimes mistakenly considered to be invisible.
  • Files are no longer overwritten without asking when an image is saved from a 'Check image' node.
  • 'Component group' and 'Window group' nodes are now handled and integrated correctly when importing components from a test-suite.
  • Another special case for escaping '$' characters in component names has been fixed.
B.33
Version 3.4.8

New features:

  • Web Support was added for the current Firefox version 13.
  • SWT Eclipse/SWT support was added for Eclipse versions 3.8M7 through 3.8RC2 and experimental support for Eclipse version 4.2M7 through 4.2RC2.
  • Web Support for the Richfaces toolkit was improved.
  • The 'Excel data file' node now also handles Excel files with the '.xlsm' extension.

Bugs fixed:

  • Escaping of '$' characters in component names was broken in the component and procedure recorder.
  • Web Enabled checks did not work correctly with Internet Explorer 9 running in IE 7 compatibility mode.
  • Web Firefox could crash when closing a browser window.
  • Web When recording procedures the calls for <SELECT> elements were created incorrectly.
B.34
Version 3.4.7

New features:

  • Web Support was added for the current Firefox version 12.
  • The new 'Procedure' qfs.swt.ctabfolder.openViewMenu can be used to generically open the ViewMenu of a CTabFolder based on the tab name, both for Eclipse 3.x and Eclipse 4.

Bugs fixed:

  • Script errors were not formatted correctly when shown in the error dialog. In the run-log those errors were shown correctly.
  • Excel 2010 files used in a data driver with an 'Excel data file' node were not closed correctly.
  • Web There's a new workaround for the workaround for the missing MSVC manifest in a DLL from Firefox 10 and higher. Problems with another missing MSVC DLL on Windows XP and deadlocks when loading a Flash component in Firefox on Windows have been fixed.
B.35
Version 3.4.6

New features:

Bugs fixed:

  • The fix for SUTs that use RMI with a custom implementation of the Service Provider Interface (SPI) could cause a subtle class loading problem that has been fixed.
  • Deleting the last row in a variable table in QF-Test could lead to an exception when subsequently trying to move a table row.
  • Web QF-Test's handling of Javascript errors could cause Internet Explorer to crash.
  • Web If QF-Test was accidently started with the bin directory of an older QF-Test version as its working directory, starting a browser on Windows could fail due to conflicts between DLL versions.
  • Web Use of a special API in Internet Explorer can lead to very subtle deviations in Javascript execution. QF-Test no longer uses this interface.
  • Web On some systems the workaround for the missing MSVC manifest in a DLL from Firefox 10 and higher could cause a problem with another DLL and prevent QF-Test from starting Firefox.
B.36
Version 3.4.4

New features:

  • Web Support was added for current versions of Firefox 9 and 10.
  • SWT Eclipse/SWT support was added for Eclipse version 3.8M5 and experimental support for Eclipse version 4.2M5.
  • SWT New checks were introduced for SWT Decorations, small icons typically shown next to a text field. You can now check the visibility, icon and tool tip of a Decoration.
  • Iteration ranges can now also be used when setting up data at script level via the databinder module or by calling one of the 'Procedures' qfs.databinder.bindList or qfs.databinder.bindSet in the standard library qfs.qft. See section 14.4 for further information.
  • The thumbnail images shown for screenshots in the HTML report are now of higher quality.

Bugs fixed:

  • A small change in QF-Test version 3.4.3 regarding the RMI communication between QF-Test and the SUT was undone because of possible side-effects when the SUT was using RMI itself.
  • When using 'Check image' nodes with an advanced algorithm and a timeout QF-Test always used up the full timeout even when the image matched immediately.
  • When a 'Check' node with a timeout fails, QF-Test used to show the initial state of the target component in the run-log. Now it shows the state at the end of the timeout period instead.
  • When using Drag&Drop to move nodes within QF-Test the tree could jump erratically in some cases.
  • Trying to remove the same node twice from a search result dialog could lead to an exception.
  • In the standard test-suite library qfs.qft the 'Procedure' qfs.shellutils.touch now correctly updates the timestamp for existing files and the 'Procedure' qfs.autowin.getURLFromIE now also works with Internet Explorer version 6.
  • SWT When recording a mouse click on an SWT ToolItem that opens a drop down menu QF-Test now records the coordinates so the event can replay correctly.
  • Web If an alert dialog was shown after closing a modal browser window, the main browser window could remain blocked after closing the alert.
  • Web Javascript errors in Internet Explorer were not logged correctly in QF-Test's run-log.
  • Web In some cases the initial loading of a web page did not succeed.
  • Web Highlighting the selected component in a browser on Linux has been improved.
  • Web Web pages with a Flash element were sometimes not displayed correctly on Linux.
  • Web The name recorded for file upload on Linux contained the Windows file separator character '\'
  • Web There were problems with browser startup on special Windows versions if QF-Test was installed below a directory with blanks in its name, e.g. "C:\Program Files (x86)"
B.37
Version 3.4.3

New features:

  • Web Support was added for current versions of Firefox 8 and 9.
  • The 'Excel data file' node now supports reading .xslx files in Excel 2010 format.
  • The performance of some advanced image check algorithms was significantly improved.
  • It is now possible to fetch option values in a script via the new method rc.getOption. See section 37.6 for details.

Bugs fixed:

  • When switching test-suites by clicking a suite tab the keyboard focus was not correctly restored.
  • The keyboard shortcut [Ctrl-D] for setting a bookmark did not work.
  • Jumping from a node in the debugger window to the same node in the test-suite now works again.
  • In some special cases QF-Test could kill the wrong process on Windows when trying to terminate the SUT.
B.38
Version 3.4.2

New features:

  • Web Full support was added for Firefox 6 and experimental support for Firefox 7.
  • For easier integration with continuous integration tools like Hudson/Jenkins or TeamCity the exit code of a batch run can be forced to 0 even in case of warnings, errors or exceptions with the help of the command line arguments -exitcodeignorewarning, -exitcodeignoreerror and -exitcodeignoreexception.
  • Web If the option Replace no-break space with normal space is activated, QF-Test now represents no-break space characters in a web page as normal space characters in checks and 'Component' node attributes to avoid confusion.
  • SWT QF-Test now supports capture and replay of "expand" and "collapse" events for SWT ExpandItems.

Bugs fixed:

  • SWT The integrated help viewer of Eclipse uses a separate SWT Display on Windows which caused problems during replay. It is now consistently represented with 'GUI engine' "swt1".
  • Web Direct execution of Javascript code now also works in Internet Explorer 9 despite stronger security restrictions.
  • Web The AJAX resolver for GWT has been updated to version 1.4.0 to fix filtering of <DIV> nodes from the component hierarchy. See section 38.2 for details about AJAX resolvers and their versioning scheme.
  • Web Opening a modal popup window could crash Firefox 6 on Windows.
  • Web Double clicks are now recorded correctly in Internet Explorer.
  • Web A 'Fetch text' node for a <SELECT> node now retrieves the text of the selected <OPTION> node and 'Fetch text' nodes for <OPTION> elements represented as items are working correctly.
  • Printing unicode strings in Jython could cause problems when running in batch mode.
  • The content of 'Data table' nodes was missing in the run-log.
  • A 'Wait for client to connect' node with a very short timeout did not throw a ClientNotConnectedException when single-stepping in the debugger.
  • The QF-Test daemon was leaking threads when starting a remote SUT process for use with the procedure qfs.daemon.startRemoteSUT.
  • When updating failed image checks from the run-log the size of the image was not always updated correctly.
  • When recording procedures, QF-Test failed to create a procedure in case the respective component had no value for a placeholder like <COMPFEATURE>.
B.39
Version 3.4.1

New features:

  • Web Full support was added for Firefox 5 and experimental support for Firefox 6.
  • SWT Eclipse/SWT support was updated for Eclipse version 3.7 Indigo.
  • Groovy was updated to version 1.7.10.
  • Error messages for errors in Groovy scripts now show proper context and line numbers.
  • SWT QF-Test can now handle custom SWT components that hide their child Widgets by overriding getChildren() to return an empty array.
  • Web Support was added for ExtJS version 4 and for RichFaces version 4. See section 38.2 for details about the support AJAX toolkits and versions.
  • The 'As regexp' attribute of 'Window' and 'Component' nodes can now be defined as a variable value.
  • Web The startup sequence created by the quickstart wizard for web applications now has a smarter layout and is easier to adjust.
  • On Windows systems QF-Test now makes use of the always-on-top attribute to force SUT windows to the front even if normally prevented by Windows. To disable this feature, deactivate the option Force window to the top when raising.
  • A new check was added to directly check the icon of a component instead of having to capture the whole component and define a check region.

Bugs fixed:

  • When loading the test-suites to restore the last session upon startup, QF-Test did not check for auto-save files.
  • It was possible to start parallel tests in the same context by hitting [Return] at the right time. This could lead to confusing results in the run-log and even to exceptions.
  • Swing Swing applications started via Java WebStart have two independent application contexts, a user context and a security context. Unless the 'GUI engine' attribute of a 'SUT script' node explicitely defines the engine, the script is now always correctly executed in the user context and not in the security context.
  • Swing Special support for JSlider components was missing.
  • The special variable ${qftest:runid} did not expand to the correct value if the runid was specified explicitly via -runid <ID> in batch mode.
  • Web A forced download triggered via a special PHP construct could cause Internet Explorer to crash.
  • Web Clearing the cache for Firefox did not always work correctly.
  • Web Trying to record a check for an XML document displayed in Internet Explorer could crash the browser.
  • Web It is now possible to record checks for applets even when they are embedded in QF-Test's browser wrapper.
  • The Groovy implementation of qf.logError was broken.
  • In a workbench view with many open test-suites and some test-suite tabs scrolled out to the left, coordinates for dragging test-suite or node to different test-suites were off, leading to surprising results.
  • SWT QF-Test was leaking resources when taking Screenshots in an Eclipse/SWT SUT.
  • SWT Calling Display.asyncExec from a timer could crash Eclipse on Linux Gtk with 64bit.
  • SWT The order of SWT.Activation events could show very subtle differences between manual replay and automatic replay with soft events.
  • A very long search string could mess up the size of the search and replace dialog.
  • Markers in run-logs did not propagate beyond 'External log' nodes.
  • Fallback to lazy binding did not work for not-yet-bound properties.
B.40
Main new features in version 3.4

Note Support for Java 1.4.2 was dropped by both Jython and Groovy so QF-Test now requires at least Java version 1.5 for itself and the SUT.

Following is an overview over the main new features that have been implemented for QF-Test since the last production version 3.2.

Description Further info
Jython updated to version 2.5.1 section 13.6
Groovy updated to version 1.7.6  
Support for Eclipse/SWT 3.6.2 and 3.7  
Web testing support for Firefox 4 and Internet Explorer 9  
Integration with Continuous Integration tool Jenkins/Hudson section 20.3
Fault-tolerant image checks chapter 44
Advanced search and replace section 2.3
Iteration ranges for data drivers 'Iteration ranges'
Direct interaction with web servers 'Server HTTP request' node
Extended import functionality section 17.3
Debugger integrated into the workbench  
Ability to create a test-suite from a run-log subsection 8.1.6
Automatic splitting of run-logs and graceful handling of OutOfMemoryErrors Option Minimum size for automatic splitting (kB).
Improved backwards/forwards navigation  
Improved pkgdoc and testdoc documentation Command line arguments -testdoc.teststeps, -testdoc.nodeicons and -pkgdoc.nodeicons
Improved coordinate abstraction for mouse events Option Record MouseEvents without coordinates where possible , 'Mouse event'
Variables with default values and many additional special variables section 7.5
Table B.3:  New features in QF-Test version 3.4
B.41
Version 3.4.0

New features:

  • SWT Support for testing Eclipse/SWT version 3.7 was updated.
  • All 'Data binder' nodes now have an attribute named 'Iteration ranges' that can be used to limit the iteration to a single element or one or more intervals, which is very convenient when implementing tests, continuing a test that had to be stopped or performing a retest with a limited subset.
  • In workbench mode the current session with the currently open test-suites and the positions therein is now saved when QF-Test is closed and restored upon startup, provided the option Restore last session on startup is active. Also added to the workbench view were the ability to save all modified test-suites via the »File« menu and switching between recently active test-suites via [Control-F6].
  • Moving backwards/forwards between selected nodes has been unified and should now work consistently even for special cases. After recording components you can jump directly to the recorded node by moving forwards, even if no node was actually recorded and the existing node is in a different test-suite.
  • Filter capabilities were added to the search/replace result and other multi result dialogs.
  • Marks can now also be set for nodes in a run-log, so multi-step search operations are now also available in run-logs.
  • The quickstart wizard has improved support for launching applets in a browser and for setting the compatibility mode in internet explorer, backed by the procedures qfs.web.browser.general.startAsNewProcess and qfs.web.browser.settings.enableCompatibilityMode in the standard library qfs.qft.
  • When started in batch mode with the command line argument -verbose [<level>], QF-Test now displays exception, error and warning counts for each 'Test-case'.
  • The new package qfs.autowin.acrobat in the standard library qfs.qft contains methods to save a PDF document showing in an Acrobat window or to copy its text content to a file via the clipboard (Windows only). These are complemented by the qfs.utils.files package with procedures to verify the content of a text file.
  • The new methods setProperty and getProperty in the generic scripting module qf (see section 37.7) can be used to associate arbitrary data with a GUI element, e.g. to cache some resolved feature or name values or other information that is too expensive to compute every time a resolver method is called.
  • The TestRunListener API (see section 39.5) has been extended to provide the number of exceptions, errors and warnings that occurred below a given node in the TestRunEvent of a call to nodeExited.
  • Web The AJAX resolver for GWT has been updated to version 1.2.0. It now filters irrelevant <DIV> nodes from the component hierarchy and has improved support for obfuscated GWT class names. See section 38.2 for details about AJAX resolvers and their versioning scheme.

Bugs fixed:

  • Early checking to handle OutOfMemoryErrors more gracefully could impact test execution speed significantly with JDK 1.5 on Windows. Tests should now run at full speed again with all JDK versions.
  • Some of the advanced image check algorithms did not work correctly with JDK 1.5. All algorithms are now fully supported for JDK 1.5 and higher and return consistent results, independent of the JDK version, except for resizing, which is implemented differently in the various JDK versions and can lead to minor deviations in the resulting probability.
  • The procedure qfs.shutil.copy in the standard library qfs.qft was broken. It now copies files and directories correctly, recursively if necessary and handles special cases like copying a directory into itself.
  • Web 'Check image' nodes now work correctly in Firefox 4.0.
  • Web Scrolling an element visible was not always possible in IE9 and some special cases with a deeply nested hierarchy.
  • Web In IE9 nodes were not highlighted properly and highlighting could interfere with recording image checks.
  • Web Browser settings for IE9 did not always take effect.
  • Web A download operation triggered from a popup window could crash the browser.
  • A running test in the QF-Test daemon can now be interrupted and stopped cleanly via -stoprun even if the test is currently waiting for something.
  • The structure of the JUnit XML report is now compatible with Atlassian Confluence.
  • In Groovy the method rc.getProperties() was not implemented correctly.
B.42
Version 3.4M2

New features:

  • SWT Support was added for testing Eclipse/SWT versions 3.6.2 and 3.7 Milestone 5.
  • The search and replace dialogs are now integrated so it is possible to start with a search and continue replacing, based on the same criteria. Also, the replace dialog is no longer modal so it can be kept open while editing.
  • Integration of the debugger functionality into the workbench view is now complete. The current variable bindings are displayed automatically whenever the debugger is entered unless the option Show variable bindings automatically is turned off.
  • The keyboard shortcuts [Alt-1] through [Alt-9] navigate directly to the respective test-suite tabs in the workbench view.
  • Pressing [F2] in the test-suite tree now moves focus directly to the details field that is most relevant for the display name of the node.
  • The new 'Procedure' qfs.client.renameClient in the standard library qfs.qft can be used to rename an SUT client after it connects. This is especially useful for an SUT that launches multiple sub-processes that connect as client:2, client:3 etc.
  • The new special variable $_{qftest:skipnode} can be used to skip execution of a node. Please see section 7.5 for details and applicability.
  • SWT Hyperlinks in the Eclipse FormText widget are now recognized as sub-items.
  • Advanced image checks are now also available to scripts via the new run-context method rc.checkImageAdvanced. Please see section 37.6 for details.
  • The various rc.check* methods in the run-context now return the result of the evaluated condition. Please see section 37.6 for details.
  • The image of a 'Check image' node in the test-suite and the run-log as well as screenshot images can now be opened in a separate window by double-clicking the image (run-log only) or clicking the respective button above the image.
  • There is a new utility module for scripting called qf, documented in section 37.7. It contains variants of commonly useful methods like isInstance and the ability to add messages to the run-log even when no run-context is available, e.g. in TestRunListener, Checker or Resolver implementations.
  • Templates for procedure recording have become more powerful. Procedures can now be created conditionally by placing a @CONDITION tag with an arbitrary Jython or Groovy script in the comment. Please see chapter 41 for details.
  • Web The 'Procedure' qfs.web.browser.settings.setProxy in the standard library qfs.qft now also supports passing a URL for automatic proxy configuration.

Bugs fixed:

  • Switching execution to a different node in the debugger could unbalance the parent/child relationships of the associated nodes in the run-log.
  • Setting and unsetting options at script level could mess up default option values.
  • SWT Improved double click replay for SWT on Windows.
  • SWT Some selection events for SWT now receive special treatment for focus handling.
  • SWT Empty lines at beginning of an SWT StyledText widget are now handled correctly on Linux.
  • Errors in nested test-cases are now listed correctly in the report.
  • Web Proxy server settings for Internet Explorer 9 are now working correctly.
  • Web Image checks are now working correctly with Firefox 4.
  • Web Javascript and authentication dialogs are now working correctly in Firefox 4.
  • QF-Test now issues a warning each time you first try to modify a write-protected test-suite.
  • Doctags for 'Dependency' nodes are now listed correctly in pkgdoc documentation.
B.43
Version 3.4M1

New features:

  • Groovy was updated to version 1.7.6.
  • QF-Test now actively monitors the memory available in the Java VM for running tests. When available memory runs low, the test is aborted cleanly and the run-log is saved. This also prevents extreme slow-down when memory gets tight.
  • To prevent running out of memory in the first place, QF-Test now splits run-logs automatically by default, based on the option Minimum size for automatic splitting (kB).
  • Managing test-suites in the workbench has been improved. The tab for the active suite is now shown with a bold font, you can drag tabs to re-order test-suites and double-clicking to the right of existing tabs creates a new suite.
  • The search dialog now has additional options for limiting the search and it is also possible to search all loaded test-suites at once. To prevent visual overload for the common case, the search dialog can now be toggled between simple and advanced mode.
  • The debugger has been mostly integrated into the workbench, except for the variables view which still requires the separate debugger window.
  • Web There is a new recording mode for web applications that tells QF-Test to ignore individual events and record entire GET or POST requests instead, which are then represented by the new 'Server HTTP request' node. Upon replay QF-Test interacts directly with the HTTP/HTTPS server without requiring a browser. This can be useful for load testing or mass data entry.
  • For Swing and SWT components with an icon QF-Test now records a hash value derived from the icon image as an 'Extra feature'. As long as the icon remains stable this should lead to improved recognition, especially for toolbar buttons without a label. The default state of the image hash extra feature is 'Should match'. You can change it to 'Ignore' for components where the icon is not reliable and to 'Must match' for components where the image is the best way to identify the component.
  • There is a new special variable syntax that allows specifying a default value for a variable. This is extremely useful for things like generic components or really every place where a variable has a reasonable default, because that default value is then tightly coupled with the variable lookup itself and doesn't have to be specified at 'Sequence' or test-suite level. The syntax is ${default:varname:defaultvalue}.
  • Additional special variables are now available to retrieve the name of the currently executing 'Test-set' or 'Test-step' in addition to the already available 'Test-case' name. Also, counters were added for the number of test-cases executed so far, failures etc. Please see section 7.5 for details.
  • Where available, the dialog showing the methods available for a component now also displays the results of calling those methods that represent Java Bean values.
  • The option Log successful advanced image checks can be activated in order to store the results of a successful advanced image check in the run-log. This can be useful while tuning the parameters for an advanced image check algorithm.
  • The new command line option -verbose [<level>] for batch execution with or without accessing a daemon causes QF-Test to print progress information during a test-run.
  • The new 'Procedure' qfs.utils.dumpHeap in the standard library qfs.qft can be used to trigger a heap dump for the Java VM of the SUT when it uses too much memory. This can be detected with the help of the 'Procedure' qfs.utils.logMemory which now returns the amount of memory used.

Bugs fixed:

  • When replaying mouse events without coordinates on items, QF-Test no longer targets the center of the item, but the position 5 pixels from the left, vertically centered. Apparently some events are sensitive to whether the click hits the text of an item and not just its bounding box, so short items in a broad column could cause problems.
  • Calling stored procedures in a database could fail using the default Jython bindings.
  • If the debugger was turned off for normal use, debugger-stepping after hitting a breakpoint could occasionally fail so the test simply continued.
  • A positive search result for the type of an extra feature could cause an exception.
  • Blank characters in names for saving external run-logs are now turned into an underscore because Windows doesn't handle trailing blanks in directory names gracefully.
  • The input file for a 'CSV data file' node is now closed immediately after reading the data.
  • Recursive procedure calls could cause problems when importing procedures or analyzing references.
B.44
Version 3.3.0

Incompatible changes:

  • Support for Java 1.4.2 had to be dropped in order to update Jython and Groovy. QF-Test now requires at least Java version 1.5.
  • Interaction between Jython and Java has changed slightly between Jython 2.1 and 2.5 so occasionally scripts that worked in QF-Test may now fail or behave differently. We try to maintain compatibility where possible and provide a list of things to look out for in section 13.6.

New features:

  • Jython was updated to version 2.5.1. Most scripts should continue to run without problems. Incompatibilities may arise due to the changes in character encoding and because Java strings are now uniformly treated as unicode strings in Jython. Please see section 13.6 for further information.
  • Groovy was updated to version 1.7.2.
  • SWT Support was added for Eclipse/SWT version 3.6.1.
  • Web Experimental support was added for Firefox 4 and Internet Explorer 9.
  • QF-Test now integrates well with the increasingly popular Continuous Integration system Hudson/Jenkins. This includes JUnit as an additional target format for QF-Test reports. Please see section 20.3 for further information.
  • Image checks are no longer restricted to testing for exact pixel-by-pixel equality. Several flexible algorithms now allow image checks with a configurable degree of deviation from the expected image. Please see chapter 44 for details.
  • Besides components you can now also import test-cases and procedures from one test-suite into another as described in section 17.3.
  • When coordinates for mouse events are irrelevant, QF-Test now removes them altogether instead of setting them to (1,1). Upon replay the event is then aimed at the center of the target component or item. See also option Record MouseEvents without coordinates where possible .
  • By combining search and replace operations with marks it is now possible to narrow searches in several steps, giving very fine-grained control over where to perform replacements. Instructions and examples are provided in subsection 2.3.3.
  • Moving backwards or forwards between selected nodes now works across test-suites and even run-logs. Thus a single mouse click or keystroke is now sufficient to return when following a procedure call to its target in a different test-suite or when jumping from a run-log to the respective node in the suite.
  • Several new toolbar buttons were added and all the buttons now look much better. The menu structure also was cleaned up with operations on tree nodes now collected under the new »Operations« menu, among them many new node transformations. Also, several new keyboard shortcuts were introduced. A summary of all keyboard shortcuts is provided in appendix C.
  • The layout of pkgdoc and testdoc documentation now equals that of reports, including node icons and support for test-steps. These can be configured via the command line arguments -testdoc.teststeps, -testdoc.nodeicons and -pkgdoc.nodeicons or the respective options in the dialog for interactive creation of those documents.
  • 'Skipped' and 'Not implemented' tests can now be ignored in the report via the command line argument -report.ignoreskipped or the respective option in the interactive dialog.
  • Daemon tests can now be stopped at the command line via the new argument -stoprun.
  • The comment of a 'Procedure', 'Test-case' or 'Dependency' node can now be filled automatically with doctags for parameters, characteristic variables and author by right-clicking the node and selecting »Additional node transactions«-»Fill comment« from the context menu.
  • The TestRunListener API now also provides information about whether a test-run was terminated normally (with or without exceptions) or aborted. See section 39.5.
  • The new method rc.callTest in the run context can be used to call a 'Test-case' or 'Test-set'. In contrast to callProcedure, callTest can only be called from 'Server script' nodes. It returns the exit status of the called test.
  • The content of QF-Test configuration files is now sorted which significantly improves handling of those files in a version control system.
  • Several procedures were added to or refined in the standard library qfs.qft. Its documentation is now also available online and indexed by the full text search engine on the QFS website. A link to the online text search covering all technical material is provided via the menu »Help«-»Online search...«.
  • It is now possible to create a test-suite from a run-log.
  • It is now possible to pass GUI elements from an SUT script as individual targets to QF-Test's component recognition mechanism via the new run context method overrideElement. See also subsection 13.3.11.

Bugs fixed:

  • Web When started from QF-Test, Internet Explorer 8 always ran in IE7 compatibility mode. This is no longer the case. Compatibility mode can now be actively selected in the quickstart wizard or via the procedure qfs.web.browser.settings.doStartupSettings in the standard library qfs.qft.
  • SWT On Linux QF-Test could sometimes crash SWT/Eclipse applications with disposed Combo popups.
  • SWT Test replay for Eclipse/SWT on Linux is now much more robust, especially when handling menus.
  • SWT Trailing empty newlines in StyledText widgets are now handled correctly on Linux.
  • Creating reports with many screenshots now requires much less memory.
  • Web Downloads in Internet Explorer should now work consistently.
  • Web In case of overlapping nodes with transparent nodes on top QF-Test could pick the wrong node for check recording. It now lets the browser make the decision instead. Switching back to the old algorithm can be done via the option Let the browser determine the target element for check recording.
  • A memory leak in QF-Test resulting from SUT clients printing a lot of output to the shared terminal in workbench view was plugged.
B.45
Version 3.2.2

New features:

  • Support was added for testing Eclipse/SWT version 3.6 "Helios".
  • SWT 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.
  • Swing A workaround for an AWT weakness introduced in QF-Test 3.2.1 could impact replay performance for AWT/Swing.
  • Swing Yet another performance problem resulting from very large hierarchies of Swing menus has also been fixed.
  • Web Several special cases for uploading files with Internet Explorer are now handled correctly.
  • Web Downloading files with Internet Explorer now works correctly in case of HTTP redirection.
B.46
Version 3.2.1

Bugs fixed:

  • With a 1.4 JDK in interactive mode QF-Test would only start if given a file to open.
  • Web 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.
  • Web 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.
B.47
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. For detailed information about the differences between QF-Test 3.0 and 3.2, please see the following sections with the release notes for versions 3.2.0 and 3.1.x.

Description Further info
Support for Web testing in combination with Java applets Requires JDK 1.6.0_10 or higher
JDK instrumentation is no longer required section 35.1
Workbench view for a modern user interface
'Test-step' nodes for detailed reports section 15.1
Refactoring support with automatic update of references
Integration with the open source test management tool TestLink section 19.6
New 'Best Practices' part in the manual part II
Eclipse/SWT support updated for the latest versions including GEF section 39.4
Incremental search in all of QF-Test's text fields subsection 2.3.1.2
Result list dialogs for complex operations
Component method spy section 5.5
Options can be set at script level subsection 13.3.9 and section 37.6
Relative and test-suite-local procedures subsection 9.3.2 and subsection 9.3.1
New-style 'Check' nodes and support for custom Checkers section 39.3
Static validation of references
Automatic parameterization of procedures subsection 9.3.4
Persistent bookmarks and transient marks subsection 29.1.3
New APIs: ItemResolver, Checker, ClassNameResolver and TestRunListener section 39.2, section 39.3, subsection 39.1.2 and section 39.5
Table B.4:  New features in QF-Test version 3.2
B.48
Version 3.2.0

New features:

  • SWT Support for Eclipse/SWT has been brought up-to-date with the current versions 3.5.2 and 3.6M6.
  • Swing Swing components are no longer highlighted by exchanging their foreground and background color but by painting a rectangle, similar to SWT and Web. Target sub-items are now highlighted as well.
  • The new 'Boolean check' node with 'Check type identifier' attribute 'visible' is similar to 'Wait for component to appear' node, but in contrast to the latter is is listed in the report as a check and it has different default settings for the result handling.
  • The most recently accessed component and possibly item in the SUT can now be retrieved in Jython and Groovy 'SUT script' nodes via rc.getLastComponent() and rc.getLastItem().
  • Web Selecting a file for upload in a web form can now be recorded and replayed directly on Windows. For a cross-platform implementation it is still necessary to call the procedure qfs.web.input.fileUpload from the standard library qfs.qft.
  • Additional features were added to the result lists for complex operations. For example, you can now perform actual replacements in the result list for the replace dialog or you can update multiple failed checks at once from the error list in a run-log. Besides, the result list for an operation that takes time is now filled continuously and the operation can be aborted if necessary.
  • Recent search expressions are now saved in the user configuration.
  • 'Dependency' nodes inside 'Packages' are now listed in the pkgdoc documentation unless disabled via the command line argument -pkgdoc.dependencies or the respective interactive option.

Bugs fixed:

  • Web Right-clicks for Javascript-based popup menus no longer need to be replayed as hard events in order to trigger the popup reliably.
  • Web When recording checks the z-order of DOM nodes is now properly taken into account so that QF-Test no longer records nodes that are actually in the background, covered by other nodes.
B.49
Version 3.1.4

New features:

  • Swing It is no longer necessary to instrument standard JDKs or JREs, though it doesn't hurt to keep existing instrumentation. Please see the option Connect without JDK instrumentation (Swing) for further information.
  • SWT Support was added for the latest Eclipse/SWT version 3.6.
  • Web QF-Test now supports Firefox 3.6.
  • The new part II 'Best Practices' in the manual describes recommended procedures based on lessons learned from several customer projects and user feedback that will hopefully help you to find the best strategy for using QF-Test in your own projects.
  • Reports have been restructured and further extended. 'Check' nodes now have an optional 'Name' attribute for their representation in the report. Besides, the performance of report creation has been drastically improved and its memory impact reduced.
  • The tree display in run-logs now shows expanded values instead of variables. This can be toggled via the »View« menu.
  • Compactification for run-logs is now more efficient and special placeholder log entries show where nodes were removed during compactification.
  • SWT Support for the Eclipse Graphical Editing Framework (GEF) is now included by default and works correctly with multiple concurrent GEF editors. See section 39.4 for further information.
  • Web The new procedure qfs.web.input.fileUpload in the standard library qfs.qft handles <INPUT:FILE> nodes for the various browser variants.
  • TestLink integration has been simplified (section 19.6).
  • For Swing and SWT tables and multi-column trees it is now possible to check a whole row at once.
  • ExtraFeatureResolvers can now also be used for SWT and Swing. These are described in subsection 39.1.7.
  • The standard library qfs.qft now includes wrapper procedures for the autowin module in the package qfs.autowin. These can be used to check for the existence of a window and to close it on Windows systems.
  • The runid of the current test-run now is now available via ${qftest:runid}.
  • Special variables or properties of type group:name can now be used for 'Characteristic variables'.
  • For nodes like 'Test-step' or 'Test-set' with several tabs for variable bindings the number of bound variables is now displayed in the tab which makes it much easier to locate those bindings.

Bugs fixed:

  • Web Several causes for IE crashes were fixed.
  • Web Wait for absence now works correctly for invisible nodes.
  • QF-Test doesn't get blocked as easily when the SUT generates a lot of output and the JTextArea for the shared terminal cannot keep up.
  • The internal variable stack of QF-Test could get messed up in some special cases.
  • The procedure builder now correctly handles '_' characters in package or class names.
B.50
Version 3.1.3

New features:

  • The new 'Test-step' node can be used to provide further structure and document tests below 'Test-cases'. 'Test-steps' are listed individually in the report unless deactivated with -report.teststeps. Similar effects can be achieved by marking arbitrary nodes with the doctag @teststep, optionally followed by a name for the step.
  • The report now also can list checks (off by default) and warnings (excluding component recognition warnings, on by default) integrated into the test-step listing and also shows icons for nodes. The respective settings can be changed via -report.checks, -report.warnings and -report.nodeicons in batch mode or the respective options in the dialog for interactive report creation.
  • In the workbench view there is now a context menu for the test-suite tabs.
  • All 'Comment' attributes can now be edited in an external editor similar to scripts.
  • There are new toolbar buttons in the run-log window for navigating to the next/previous error or warning.
  • The incremental search feature now has more intelligent scrolling for hits and also allows scrolling the component being searched via the [Up], [Down], [Page up] and [Page down] keys.
  • 'Dependencies' can now optionally be resolved in a namespace which allows having different sets of dependencies for different parts of a test so that the dependencies don't interfere with each other. See the 'Dependency namespace' attribute for details.

Bugs fixed:

  • Due to the JIDE libraries used, the new workbench view does not work with JDK 1.4. It now gets deactivated automatically when starting QF-Test with a 1.4 JDK.
  • Several exceptions caused by the new workbench view and the multi result dialogs were fixed.
  • In the new workbench view QF-Test could lose track about which suites are currently loaded, causing a suite to get loaded more than once, leading to confusing behavior and sometimes an exception.
  • The new mechanism for on-the-fly SWT instrumentation only handled one SWT plugin, so that in case of a multi-platform Eclipse based application with several SWT plugins the correct plugin for the current platform could remain uninstrumented.
  • Calling stopRun could cause the shared run-context in the QF-Test daemon to become unusable.
  • SWT Text checks for SWT Group widgets were missing.
  • Web Fixed automatic scrolling of web pages for image checks and replay of hard events.
  • The popup sub-menu for setting and removing marks was sometimes empty.
B.51
Version 3.1.2

New features:

  • SWT Support was added for the latest Eclipse/SWT version 3.5.1.
  • Web We have started work on special support for several AJAX web toolkits, including Ext GWT, Ext JS, GWT, qooxdoo and RAP. Instead of deeply nested hierarchies of <DIV> nodes QF-Test now operates in terms of the actual rich interface of buttons, labels, trees etc. For information on how to activate this feature in its current state, please get in touch with QFS.
  • QF-Test now comes with support for interacting with the open source test management tool TestLink. Please see section 19.6 for details.
  • By default QF-Test now starts with a "Workbench View" where all open test-suites are arranged as tabs in a single window. This feature is work in progress. In case it causes problems or if you prefer the old style, you can switch back to multiple windows via the »View« menu.
  • The new function »Analyze references« in the context menu of a node can be used to statically validate the correctness of a test-suite by verifying the existence of the target nodes of 'Procedure calls', 'Test calls', 'Dependency references' and references to 'Components'.
  • Operations that search for or result in changes to multiple nodes now bring up a mass result dialog listing the affected nodes. You can either navigate to specific nodes directly from that dialog or use it to set marks on some or all of the resulting nodes.
  • Nodes in a test-suite can now be marked with markers in four different colors for easier reference and quick navigation. Marks can be set either individually via the menu »Edit«-»Marks« or the context menu, or from a mass result dialog.
  • All text fields, terminals etc. in QF-Test's user interface can now be searched locally by pressing [Ctrl-F] when the field owns the keyboard focus. Details are described in subsection 2.3.1.2.
  • The new Component Method Spy retrieves and displays fields and methods of Swing or SWT components as well as the Javascript properties of a DOM node in the web client (see section 5.5).
  • After recording a new sequence and transforming it into a 'Procedure' you can select »Parameterize node« from its context menu to tell QF-Test to automatically extract parameters for it from the contained nodes.
  • SWT The Eclipse/SWT instrumentation performed by the 'Procedure' qfs.qft#qfs.swt.instrument.setup now operates on-the-fly, building a new plugin from an existing plugin and the QF-Test specific add-ons. Thus it is now possible to instrument custom SWT plugins or plugins for unofficial Eclipse versions for which QF-Test doesn't provide an exactly matching instrumented plugin.
  • Event nodes can now be transformed into a 'Wait for component to appear' node.
  • The keyboard shortcut for the 'Redo' operation was changed from [Ctrl-R] to [Ctrl-Y]. Over the last years the latter has become a de facto standard.
  • The warning about nested 'Test-case' execution can now be suppressed via the option Log warning for nested test-cases.
  • Web Where scrolling a web page is required to perform a hard event or an image check, QF-Test now tries to scroll a web page itself via Javascript calls instead of relying on the browser's internal mechanism which often completely messes up the display.
  • Component recognition based on geometry can now be suppressed by setting the coordinate and size attributes of a 'Component' to '-'.
  • It is now possible to specify just the 'Class count' or 'Class index' of a 'Component' node and ignore the other.

Bugs fixed:

  • Using the replace dialog to replace a regular expression with an empty string caused an exception.
  • The function to make 'Procedure calls' or 'Dependency references' relative did not work reliably.
  • When moving several 'Procedures', the automatic correction of 'Procedure calls' could fail in some special cases.
  • Procedure recording now works correctly for custom classes with a special ClassLoader.
  • When creating reports, warnings can be suppressed entirely by specifying -report.warnings=false for batch mode or deactivating the respective option in the dialog for interactive report generation.
  • SWT Recording a click on an editable table cell could cause the cell editor to get activated in the wrong table row.
  • SWT 'Fetch index' nodes were not implemented for SWT.
  • Removing or marking unused components, importing and other complex component operations could fail if the test-suite contained a 'Data table' node with no columns or empty table cells.
B.52
Version 3.1.1

Incompatible changes:

  • The changes to the check system described below are fully backwards compatible. However, once a test-suite has been saved with QF-Test version 3.1.1 it cannot be run correctly with an older QF-Test version except for QF-Test version 3.0.3 which has explicit bidirectional compatibility support for this feature. Once you introduce QF-Test version 3.1.1 you can safely continue to work with QF-Test 3.0.3, but you should not use older versions like 3.1.0 or 3.0.2.

New features:

  • The transition to the new check mechanism is now complete. Custom Checkers are now fully documented (section 39.3) and can be created for all check data types. All 'Check' nodes now have a 'Check type identifier' attribute and the old 'Check editable', 'Check enabled' and 'Check selected' nodes were replaced with 'Boolean check' nodes with a matching 'Check type identifier'.
  • It is now possible to bookmark test-suites, run-logs and individual nodes in a test-suite so they are directly accessible via the new sub-menu »File«-»Bookmarks«. Please see subsection 29.1.3 about how to create and manage bookmarks.
  • Web The new ClassNameResolver (see subsection 39.1.2) - though also useful for SWT and Swing applications - is an important milestone for AJAX web testing. With its help and the new pseudo class hierarchy for DOM nodes (see section 5.4) a deeply nested hierarchy of <DIV> nodes can be turned into a concise component hierarchy with expressive class names that vastly improve component recognition.
  • 'Procedures' can now automatically be parameterized via the sub-menu »Parameterize node« in the popup menu for the 'Procedure' node. This feature is work in progress and will need more fine-tuning so we hope for your feedback.
  • When creating testdoc documentation it is now possible to follow 'Test call' nodes and include the target 'Test-case', 'Test-set' or test-suite into the generated documentation by activating the respective option in the dialog for interactive use or via the command line argument -testdoc.followcalls in batch mode.
  • Several more variants for converting and (un)packing nodes were added.

Bugs fixed:

  • Several problems with split run-logs were fixed. Log entries could get lost in compact logs, when the split run-log was not saved as a zip file or when split run-logs were disabled but the attribute 'Name for separate run-log' was defined.
  • DaemonTestRunListeners did not work correctly in asynchronous mode.
  • When creating a report, screenshots for failed 'Check image' nodes were always saved regardless of whether the failed check actually represented an error or was just a part of a conditional construct.
  • Use of the new Java regular expressions in QF-Test's replace dialog was not correct so that some replacements based on regexps were not possible.
  • Web When determining uniqueness of 'ID' attributes for use as names, QF-Test was too strict so that in some cases potential names were not assigned.
  • Instrumenting an OpenJDK directory now works.
  • Web Waiting for a new document did not handle the window name attribute correctly.
  • Web Waiting for a download to finish always waited for the full timeout.
  • SWT In very rare cases replaying text input could crash an SWT application on Linux.
  • Option settings from rc.setOption() in the SUT were reset whenever options were changed in the option dialog.
  • SWT Event replay for SWT MenuItems with Gtk 2.4 on RedHat Enterprise Linux 4 was not reliable.
  • SWT The ktable and gef Jython modules for the respective SWT components were not correctly updated for the new ItemResolver and Checker mechanisms.
  • SWT QF-Test now properly discerns the most modal SWT Shell in case multiple modal Shells are opened simultaneously.
B.53
Version 3.1.0

Incompatible changes:

  • QF-Test now uses standard Java regular expressions by default which are much more powerful than the old GNU regexp package. One major difference is that '{' and '}' are special characters for Java regexps and may need to be escaped with a '\'. If necessary, you can switch back to the old GNU regexps via the option Use old-style GNU regexps (from before QF-Test version 3.1). See also section 36.4.
  • Web In contrast to Mozilla, Internet Explorer reports a local navigation to an anchor on the current page as a normal navigation event, so up to now a 'Wait for document to load' node was recorded which failed when replaying the same test on Mozilla. QF-Test now treats this situation uniformly by ignoring the extra navigation from IE so no 'Wait for document to load' node is recorded with either browser. Consequently, old 'Wait for document to load' nodes for local navigation will now fail and need to be removed from your tests.

New features:

  • Web QF-Test's embedded browser for web testing now supports Java applets with JDK 1.6.0_10 and up, so QF-Test can now test the interaction of a web application with its embedded Java applet.
  • Many of QF-Test's options, specifically those with an impact on test execution, can now be changed at run-time via the new run-context method rc.setOption described in subsection 13.3.9 and section 37.6.
  • When moving 'Procedure', 'Dependency' or 'Test-case' nodes, all references to these nodes can now be updated automatically. Similar updates are now performed when changing the name of such nodes or QF-Test IDs of 'Components' via the replace dialog. As an additional feature the new special Variable group ${id:...} (see section 7.5) and the run-context method rc.id (see section 37.6) can be used to mark arbitrary text as the definition of a QF-Test component ID that will be updated whenever the referenced component changes.
  • 'Procedure calls' from one 'Procedure' to another 'Procedure' in the same 'Package' hierarchy can now use a relative procedure name. Also, 'Procedures' and 'Packages' can now be made local to their test-suite by prefixing the name with an '_'. See subsection 9.3.2 and subsection 9.3.1 for details.
  • The selection dialog for a 'Procedure', 'Dependency' or 'Test-case' node now also shows the comment of the selected node. Also, it is now possible to select multiple nodes in order to insert multiple calls at once.
  • A 'Procedure call' to a specific 'Procedure' can now be created by copying the 'Procedure' node and pasting it to a place where insertion of the 'Procedure' is not allowed, which is basically everywhere a 'Procedure call' is allowed except for the 'Extras' node. Dragging and dropping a 'Procedure' with the same effect is also supported.
  • Web It is now possible to interact directly with the Javascript engine of the browser and execute arbitrary scripts via the methods DomNode.toJS, DomNode.evalJS and DocumentNode.evalJS, described in section 38.1.
  • When an error or exception occurs, the run-log now contains a stacktrace node, showing all nodes on the execution stack including their variable bindings, similar to the variables view in the debugger window.
  • There is a new API for various kinds of resolvers and checkers, including an ItemResolver interface for implementing your own sub-items of custom components and a Checker interface for custom checks that can be captured and replayed just like QF-Test's standard checks. See section 39.2 and section 39.3 for further information.
  • The new TestRunListener API, described in section 39.5, can be used to monitor a test-run from a script. Its variant DaemonTestRunListener supports the same remotely via QF-Test's daemon API. It is documented in subsection 40.2.5.
  • SWT Support for Eclipse/SWT now includes the latest Eclipse milestone 3.5M7.
  • Web The run-context method rc.callProcedure now also works from an 'SUT script' in a web application.
  • Execution of a 'Test-case' or 'Test-set' can now be aborted or skipped via the run-context methods rc.skipTestCase, rc.skipTestSet, rc.stopTestCase and rc.stopTestSet, e.g. to prevent wasted time and irrelevant error messages in case a dependency cannot be resolved. See section 37.6 for details.
  • The name of the currently executing 'Test-case' is now available via the special variables ${qftest:testcase.name}, ${qftest:testcase.qname} and ${qftest:testcase.reportname} (see section 7.5).
  • Web Via the new methods setProperty and getProperty in the class Node from QF-Test's pseudo DOM API for web applications, arbitrary data can be associated with DOM nodes without affecting the web application.
  • The new command line argument -ping for qftest -batch -calldaemon can be used to check whether a QF-Test daemon is up and running.

Bugs fixed:

  • In QF-Test version 3.0.2 hard TAB characters in Jython or Groovy scripts were replaced with blanks when showing the script, immediately causing the respective node to become modified. This change has been taken back.
  • Mac For SUTs running on Mac OS X QF-Test disables use of the screen menu bar to allow proper capture/replay of menu actions.
  • With JDK 1.6 some of QF-Test's dialogs were not displayed with the correct size.
  • Activating an engine license in the option dialog now works as expected.
  • When recording procedures, a new root 'Package' is always created instead of merging the procedures into a possibly existing 'Package' named "procbuilder".
B.54
Version 3.0.2

New features:

  • SWT Support was added for Eclipse/SWT versions 3.5M6 and 3.4.2.
  • The method callProcedure was added to the class DaemonRunContext of QF-Test's daemon API. This method and the existing method runTest now also support direct passing of parameters to this call. See chapter 40 for details.

Bugs fixed:

  • Web 'Wait for document to load' nodes for web clients did not work reliably in case of multiple browser windows.
  • Web Checking the enabled/disabled state of components is now also implemented for web clients.
  • Web Capture and replay of MOVED and SIZED events is now also supported for browser windows of web clients.
  • QF-Test now performs regular explicit garbage collections to prevent running out of memory in the PermGen Space, a special Java memory region that causes trouble for a lot of Java applications. For the SUT these extra garbage collections can be turned off via the option Automatically perform garbage collection in the SUT.
  • SWT Disposal and recreation of an SWT Display is now handled correctly.
  • SWT Custom SWT Widgets implemented as an anonymous local class were not treated correctly, possibly leading to a ComponentNotFoundException.
  • For checks with a very long timeout deadlock detection is now adjusted accordingly.
  • The demonstration test-suite for integration with the Imbus TestBench was updated to the latest TestBench version and now handles split run-logs correctly.
B.55
Version 3.0.1

New features:

  • The Jython and Groovy run context rc now provides the convenience methods getBool, getInt, getNum and getString for simplifying lookup of typed variable values in scripts.
  • It is now possible to specify proxy settings for a web SUT directly in the quickstart wizard or via the procedure qfs.web.browser.settings.setProxy in the standard library test-suite qfs.qft.
  • An entry for Swing JInternalFrame components has been added to the template file for automatic procedure creation.

Bugs fixed:

  • Web-testing with Mozilla on Linux no longer requires using a 1.4 JDK.
  • Using the "Update component" feature for web pages with deeply nested tables could lead to duplicate component IDs.
  • Left-to-right binding in 'Data table' and other data nodes has been fixed.
  • SQL statements in 'Database' nodes did not work with Oracle databases, due to an automatically appended ';' character. This has been fixed. If your database engine requires that SQL statements are terminated with a ';' you have to specify it yourself.
  • The procedure qfs.swt.instrument.setup now always picks the SWT plugin with an exact version match for instrumentation, if available. This is important for SWT 3.4, where versions 3.4.0 and 3.4.1 are mutually incompatible.
  • When recording procedures, a '$' character displayed in one of the fields of the SUT could lead to an exception.
  • Groovy class loading and script parsing in the SUT should now be faster, in some cases - specifically applets - drastically.
  • A caught exception in the 'Finally' node of a 'Try' node could mess up the state of an exception caught earlier in a 'Catch' node.
  • The demo test-suite swt_addressbook.qft was still based on SWT 3.1, support for which is no longer distributed with QF-Test. The suite is now based on SWT 3.4.
B.56
New features in QF-Test version 3

The following new features have been implemented for QF-Test version 3:

Description Further info
Support for Web testing Pseudo DOM API and many other places
Interoperation with HP/Mercury Quality Center and Imbus TestBench Interaction with Test Management Tools
Groovy as a second scripting language Scripting, Scripting with Groovy
New Jython version 2.2.1 Scripting
Improved Jython and Groovy script editor with syntax-highlighting Fundamentals of the Jython integration
Automated creation of basic procedures Automated Creation of Basic Procedures
Extended and unified functionality for 'Check...' and 'Wait...' nodes Checks, 'Wait for component to appear', 'Wait for client to connect' etc.
Direct support for negated checks Checks
Split run-logs and IO redirection - no more OutOfMemoryErrors Split run-logs, Log SUT output individually, Maximum size of client terminal (kB)
Extensions and an external driver for the daemon API Test execution, Daemon mode
New concept: "Expected failure" for 'Test-case' nodes 'Test-case'
Directing and documenting manual tests Executing Manual Tests in QF-Test
Extended undo support Self explanatory
Immediate vs. lazy variable bindings Immediate and lazy binding
Image API for creating and saving screenshots Image API, Image API extensions
Crypting of text input for password fields Salt for crypting passwords, 'Text'
Recursive sorting and transformation of nodes Self explanatory
Revised search with highlighting of results Self explanatory
Extensions to the standard library test-suite qfs.qft pkgdoc
New tutorial chapters for advanced features Advanced features
Table B.5:  New features in QF-Test version 3
Videos Downloads Documentation Buy Free Trial