QF-TEST
Release Notes
QF-Test Order QF-Test download
Product Home Product Description Technical Details
This document lists changes to QF-Test since version 2.0.
Version 2.2.1 - January 24, 2008
New features:
  • QF-Test now supports Eclipse/SWT 3.4 milestone 4.
  • In addition to locating the next error, it is now possible to jump directly to the previous error in a run-log.
  • A new option has been added that limits the number of error messages that are logged in case an SUT contains code that accesses Swing components from the wrong thread and the error message itself has been further improved.
  • Progress information shown in the status-line of a test-suite window now includes information about whether the test is currently running, has been paused or has finished.
  • Mouse click events with a 'Click count' of 2 or more are now shown as "Double click" or "Multi click" in the tree for easier recognition.
Version 2.2.0 - December 5, 2007
New features:
  • The new 'Data binder' nodes 'Excel data file' and 'Database' enable data-driven testing with data read directly from an Excel file (without the CSV detour) or from a database. Excel support is provided for all operating systems.
  • Data for data-driven testing can now also be provided dynamically through a new Jython module and new 'Procedures' in the standard library qfs.qft.
  • During replay of a test, progress information is now displayed in the right side of the status bar, showing the overall state as well as the test-case statistics similar to the report. After completion of a test-run the final result will remain visible until another test is started.
  • If the 'Comment' attribute of a node contains variable references, it is now expanded at test execution time and stored in the 'Annotation' attribute of the corresponding node in the run-log. For 'Test-set' and 'Test-case' nodes the expanded value is also passed through to the report.
  • Nodes in the test-suite can now be sorted alphabetically by selecting the respective nodes, right-clicking and choosing »Sort nodes« from the context menu.
  • The new 'Package' shellutils in the standard library qfs.qft provides platform independent 'Procedures' for typical file operations like copy, move or delete and the setText 'Procedures' can now also handle multi-line text.
  • The Jython method rc.logMessage now accepts an optional second attribute that can be set to inform QF-Test that the message must not be removed even from a compact run-log.
  • QF-Test now logs a warning if it encounters components with ambiguous names. The warning can be suppressed via the option "Log warning for ambiguous name".
Version 2.1.1 - October 29, 2007
New features:
  • Eclipse/SWT version 3.3.1 is now also supported.
  • The warning message for non-unique IDs in a test-suite has been improved. Only actual component IDs are now taken into account and the warning is already shown when copying components to a test-suite that cause a duplication of IDs.
  • The warning messages for structure and feature mismatch have been improved. They are now more informative and can be suppressed via the options "Log warning for feature mismatch" and "Log warning for structure mismatch".
  • The default memory for QF-Test has been increased to 256 MB. This is now configurable via QF-Test's Java configuration dialog on Windows and when running setup.sh or setup.ksh on Unix. If the memory is specified on the command line with -J-Xmx..., the command line setting has precedence, so this change is fully backwards compatible.
  • When started on Windows with the command line argument -dbg QF-Test now opens a console window to show the debug messages in. Redirecting QF-Test's output to a file is no longer required.
  • Two new 'Procedures' - qfs.swt.sash.moveSash and qfs.swt.sash.moveSashTo - for moving an SWT Sash component by a relative amount or to a specific position are now available in the standard test-suite library qfs.qft.
Patch version 2.1.0-p3 - September 26, 2007
New features:
  • The new feature for detection of events coming from the wrong thread has proved to be very effective. For better understanding the error message has been improved to provide helpful information about the reason of the error and what to do about it. It cannot be said often enough: This feature detects potentially serious problems in the SUT and informs you about them. For additional information, please see the option "How to handle events coming from the wrong thread".
Version 2.1.0 - September 12, 2007
New general features:
  • 'Data drivers' are now also allowed inside 'Test' nodes, so data-driven testing becomes more flexible and is now available outside the strict 'Test-set' context.
  • The new 'Data loop' node greatly simplifies looping at 'Test-case' level. It and all other 'Data binders' now can also bind the iteration count for the current loop to an optional variable specified in the 'Iteration counter' attribute.
  • The 'Dependency' resolution mechanism has been rewritten from scratch. It is now possible for a 'Dependency' to have multiple 'Dependency references' to the same base 'Dependency' with different values for the 'Characteristic variables'.
  • Interaction with external editors is now much more flexible and works well with multi-file editors like JEdit or UltraEdit.
  • Interaction with Java WebStart has been improved so that QF-Test can now also handle security-related WebStart dialogs like error messages during application download or certificate confirmation requests.
  • New-style reports have been improved. They now optionally include warnings and additional options are provided for selecting whether warnings, errors and exceptions should be listed or not. Also, optional thumbnails with configurable size are now displayed for screenshots in the error listings and screenshots for individual windows are handled in addition to the main screenshot (or screenshots in case of multi-head displays which are now also handled).
  • QF-Test now tries to prevent deadlocks caused by SUT bugs where GUI components are accessed from outside the AWT event dispatch thread. An error message is issued instead, the severity of which is defined by the option "How to handle events coming from the wrong thread".
  • The rather technical names 'MPRC' and 'PTR' for mouse and key events have finally been dropped and replaced with the more intuitive 'Mouse click' and 'Keystroke'.
  • A lot of new icons for the run-log tree help improving the readability of run-logs.
  • The standard test library qfs.qft has been greatly enhanced. Please see the tutorial for an overview and its pkgdoc documentation for details.
New SWT features:
  • Image checks are now supported for SWT.
  • Drag&Drop operations for SWT can now also be recorded directly and are replayed more reliably.
  • The native SWT dialogs ColorDialog and FontDialog are now fully supported.
  • 'Selection' events have become more flexible and powerful. Instead of an integer, the 'Detail' attribute is now a string that can represent different kinds of actions and choices, including files, directories, colors or a font representation for SWT dialogs. The 'File selection' event node is now obsolete for SWT.
  • In case of errors and exceptions screenshots of individual windows of the SUT are now stored in the run-log.
New scripting features and API extensions:
  • The Jython API method rc.check has been complemented with a new method rc.checkEqual which is more convenient for comparing a dynamically determined value to an expected value.
  • Writing resolvers in Jython has been drastically simplified. The new Jython module resolvers takes care of all the cumbersome details, so a NameResolver can now be implemented and registered with only 3 lines of Jython code.
  • Output resulting from print statements in Jython 'Server script' nodes is now multiplexed and copied to QF-Test's terminal view.
  • The daemon API has been extended with methods to query running daemons about the objects created by them and the tests currently or recently being executed. Thus it is possible to re-connect to daemons and continue managing them after some kind of system or network failure without having to restart all daemons.
Version 2.0.5 - August 16, 2007
Bugs fixed:
  • Incompatible change: The 'Procedure' qfs.swing.popupmenu.selectItem in the standard library suite qfs.qft is now named correctly (it was previously misspelled as selecItem).
  • Replay of a 'File selection' event for SWT could cause an exception.
  • Multiple concurrently opened modal SWT dialogs or shells are now handled correctly.
  • The special variables ${qftest:client.output.} and ${qftest:client.exitcode.} now also work for multi-thread tests.
  • New-style reports for multi-thread tests were not created correctly.
  • Error messages from a failed rc.check call were not listed in new-style reports.
  • Test counts in the test-suite summary of a new-style report could be wrong.
  • Installing QF-Test in a directory with non-7-bit characters, e.g. German umlauts, could cause problems during SUT startup.
  • Auto-saving is now turned off in runtime mode. Because test-suites cannot be written in runtime mode, the auto-saver could lead to empty temporary files being created.
  • Closing a run-log while creation of a report for the log was still in progress could cause an exception.
  • Starting an SUT with Java version 1.3 could cause an exception.
  • The server-side-only plugin directory .../qftest/plugin/qftest was not properly included on the classpath on Windows.
Version 2.0.4 - July 3, 2007
New features:
  • Added support for SWT/Eclipse version 3.3 "Europa".
  • The tutorial has been revised to better conform with QF-Test version 2.
  • When updating checks from the run-log of a failed test-run, regular expressions are now preserved where possible. A warning is issued if a regular expression cannot be retained because it does not match the new value.
Bugs fixed:
  • Several report problems were fixed: The same test-cases could be displayed multiple times in the report details, the legend for 'skipped' and 'failed' tests was swapped and the test-case count and resulting percentage in the overall summary was wrong in case of skipped tests.
  • JMenuItems are now excluded from the recently introduced focus fix for Swing buttons.
  • Replay of key events on SWT Text and Combo widgets now also works correctly with Gtk version 2.10.
  • Reuse of running QF-Test instances via the -reuse command line argument now also checks for matching user and QF-Test version.
  • In 'SUT script' nodes rc.getComponent(...) now also works correctly for sub-items of SWT components.
Version 2.0.3 - May 16, 2007
New features:
  • Instrumentation of Eclipse/SWT based applications has been greatly simplified and can now be performed automatically as part of a test before starting the SUT. This step has also been integrated into the "Quickstart Wizard".
  • Support for Eclipse 3.3 was upgraded to the latest milestone 3.3M7.
  • Selecting or closing a tab in an SWT CTabFolder control is now captured and replayed as a 'Selection' event node. This makes it possible to select a currently invisible tab in a CTabFolder with many items and closing a tab is now independent of geometry. Additionally, 'Procedures' for generically selecting or closing CTabFolder items are now provided in the standard library qfs.qft.
  • New special variables for accessing client information have been added: ${system:clients}, ${system:clients.all} and ${system:client.exitcode.<name>}.
Bugs fixed:
  • For Swing applications, replay of an MPRC event on a button can happen so quickly that the focus doesn't get transferred to the button between the PRESSED and RELEASED events. In that case the current focus owner doesn't lose the focus before the action on the button is triggered which can lead to subtle problems in case the application relies on a FocusListener being invoked first. QF-Test now prevents the problem by explicitly transferring focus to the button first.
  • The placeholders '%b', '%p' and '%P' for use in command line arguments did not work correctly when creating reports.
  • Fixed a rare NullPointerException caused by updating the title of a run-log window that is just about to be closed.
  • The tree in the run-log did not display 'Test-set', 'Test-case' and 'Dependency' nodes correctly.
  • Synchronizing tests across multiple machines with rc.syncThreads did not work correctly for tests started in a QF-Test daemon with TestRunDaemon.createContext().
  • Decimal numbers are now supported for SWT Spinner widgets.
  • When manually executing multiple selected nodes in one go, binding the result of a 'Procedure call' node as a local variable could temporarily interfere with the global variables.