QF-Test Changelog

What's new in QF-Test 7.1.2

Mar 14, 2024
  • New features:
  • QF-Test now supports tests for applications based on Eclipse/SWT 4.31 alias "2024-03".
  • Improved detection of new windows in Electron applications.
  • For improved clarity the interactive terminal windows for the various script languages in QF-Test and the SUT are now labelled as consoles.
  • Bugs fixed:
  • The recording button in the toolbar is now correctly displayed when changing the toolbar icon size.

New in QF-Test 7.1.1 (Feb 27, 2024)

  • The only change to this version is the removal of three executable files from the embedded cdp4j library that were suddenly flagged as malicious by various scanners. Those files were part of QF-Test since version 6.0.4 (November 2022), have never been used by QF-Test and should be harmless. Further information will be provided when we know more.

New in QF-Test 7.1.0 (Feb 20, 2024)

  • New features:
  • QF-Test now also provides a high contrast theme in light and dark mode.
  • The visualization of steps in the trees for test suites and run logs has been freshened to a more condensed style that is highly configurable. See Display for the various new options.
  • Support was added for testing applications based on Java 22.
  • Web applications built with modern Vaadin frameworks (from 14 on) are now supported out of the box. Also included is support to enable basic testability for Flutter Web based applications as well as generic component recognition for web applications the WCAG ARIA guidelines for accessibility.
  • Swing The visual UI Inspector is now also available for Windows and Swing/AWT applications, as well as web views embedded in Java applications (see subsection 5.12.2).
  • The UI inspector now provides an easy way to copy a suggested SmartID.
  • Conditions in 'If' and other nodes can now be implemented in any scripting language, not just Jython. The default scripting language for new nodes can be defined in the option Default script language for conditions.
  • The steps 'Error', 'Warning' and 'Message' can now optionally print the message to the QF-Test terminal.
  • Empty arguments in steps starting an SUT client are now ignored by default (see option Ignore empty arguments when starting a client for details).
  • Windows-Tests The Windows installer for QF-Test now directly supports uninstalling older QF-Test versions.
  • The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.10.
  • Groovy was updated to version 4.0.18.
  • The embedded Chrome browser used for QF-Driver mode was updated to CEF version 120.
  • The embedded cdp4j library was updated to version 7.0.1. This also updates the Chrome Devtools Protocol API to r1245094.
  • The bundled GeckoDriver was updated to version 0.34.0.
  • The various CarConfigurator applications used for demos and trainings have been filled with new data and updated to a new look. The demo test suites for these applications now contain further examples of SmartID usage.
  • Added newer mobile devices specifications to mobile emulation mode.
  • The attribute 'Method' in the 'Server HTTP request' node now also supports variable values and the new attribute 'Additional headers' can be used to define additional headers on a textual basis which is easier to address at script level than the 'Headers' table.
  • The new package qfs.utils.json in the standard library qfs.qft provides utility procedures for comparing JSON files.
  • The mail handling procedures in the package qfs.utils.email.pop3 of the standard library qfs.qft now support SSL encrypted connections.
  • With the new package qfs.autoscreen.android it is now possible to create image based tests for Android applications.
  • The recording button in the toolbar now indicates whether SmartID recording is active.
  • The new class ImageRepDrawer adds support for simple drawing operations on ImageRep objects at script level (see subsection 52.10.3).
  • The flexibility of the CustomWebResolver configuration has been improved in the categories "redirectClasses", "abstractCoordinatesClasses", "ignoreTags", and "browserHardClickClasses", for example it is now more often possible to use regular expressions in the definitions.
  • Calls to the procedure qfs.web.ajax.updateCustomWebResolverProperties can now also be converted into 'Install CustomWebResolver' nodes.
  • It is now possible to use a procedure with an installCustomWebResolver call as "base" of an 'Install CustomWebResolver' step configuration.
  • The QF-Test pseudo DOM API was extended by the callJS method to execute JavaScript code in the web document context without implicitly calling window.eval().
  • Bugs fixed:
  • When replaying events the timeout values from the two options Wait for non-existent component (ms) and Wait for non-existent item (ms) are now taken into account individually and not just as a simple summation.
  • It is now possible to use a 'QF-Test component ID' as String parameter for the ImageWrapper.grabImage method.
  • After a tabulator character was pasted into a script editor field, moving the cursor could lead to an exception.
  • A modal JavaFX window is now recorded with class name 'Dialog'.
  • It is now possible to send MOVED and SIZED events to the HTML component of a web page (using the 'Component event' step) to define the position and size of the inner browser area.
  • In component recording mode for web applications QF-Test now ignores invisible DOM nodes. The old behaviour can be restored via rc.setOption(Options.OPT_WEB_RECORD_INVISIBLE_ELEMENTS, true).
  • In some cases automatic Chromedriver download failed due to Chrome printing an unexpected error message during version detection.
  • Regular expressions in the CustomWebResolver category "ignoreTags" are now correctly parsed.
  • Elements with CSS class "visually-hidden" are now treated as invisible components in QF-Test.
  • In some special cases QF-Test could not connect to the Edge browser upon start.
  • CSS styling informationen contained in STYLE tags could mistakenly get interpreted as text content.

New in QF-Test 7.0.8 (Dec 5, 2023)

  • New features:
  • QF-Test now supports tests for applications based on Eclipse/SWT 4.30 alias "2023-12".
  • Support for JxBrowser version 7.36 was added.
  • Bugs fixed:
  • nodes created with an empty @teststep doctag are now shown with expanded variable values.
  • On macOS QF-Test was sometimes freezing during startup in case the WebP image compression library was not available.
  • In electron applications, popup menu item clicks could not be replayed unless a pulldown menu item was clicked beforehand.
  • The Microsoft Edge browser crashed when a new empty tab was opened manually.
  • The SUT client for android did not terminate automatically after closing the emulator if the recording window was open at that time.

New in QF-Test 7.0.7 (Oct 11, 2023)

  • New features:
  • The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 117 which fixes the WebP security vulnerability.
  • The embedded websocket library was updated to Undertow 2.2.26.
  • The script method rc.overrideElement now also supports overriding nested SmartIDs. It is now complemented by the new method rc.getOverrideElement. See subsection 11.2.7 and section 48.5 for details.
  • Bugs fixed:
  • Test reports created in batch mode with QF-Test versions from 7.0.4 to 7.0.6 could show broken HTML when opened by navigating from the summary to a detail report.

New in QF-Test 7.0.6 (Sep 29, 2023)

  • Bugs fixed:
  • The embedded WebP library used for image compression in testsuites and run logs was updated to version 1.3.2. In this version a severe security vulnerability (CVE-2023-4863) was fixed.

New in QF-Test 7.0.5 (Sep 20, 2023)

  • New features:
  • The procedures qfs.autowin.acrobat.savePDF and qfs.autowin.acrobat.saveAsText in the standard library qfs.qft were updated for Acrobat Reader versions 23 and higher.
  • Web Support for JxBrowser version 7.35 was added.
  • Web QF-Test now supports capture and replay of clicks on popup menus in Electron applications.
  • Bugs fixed:
  • Interactive QF-Test failed to start if a plugin contained an incompatible version of org.w3c.css.sac helper classes.
  • Web QF-Test now uses the new headless Chrome mode also on Linux. Without that headless Chrome version 117 and higher failed to start.

New in QF-Test 7.0.4 (Aug 30, 2023)

  • New features:
  • The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.8.1_1.
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.29 alias "2023-09".
  • Web Support for JxBrowser version 7.34 was added.
  • Mac On Apple Silicon devices, browsers connected via CDP-Driver are now launched with native ARM support, noticeably improving performance.
  • Most toolbar buttons now have a "What's this?" entry in their context menu, leading to the respective documentation in the manual.
  • Bugs fixed:
  • The jackson.jar library for YAML and JSON parsing no longer creates conflicts if another Jackson library is added to the QF-Test plugin directory.
  • Highlighting the scope component via the context menu of the node or the @scope doctag now works correctly again.
  • Web Automatic download of ChromeDriver and WebDriver binaries for Google Chrome and Microsoft Edge now works again. In both cases the respective URL and/or site layout changed.
  • Electron When starting an Electron application, QF-Test occasionally waited for the full timeout even if the connection could be established quickly.

New in QF-Test 7.0.3 (Jul 13, 2023)

  • Bugs fixed:
  • In rare cases a test run was aborted with an exception when QF-Test tried to save a split run log and encountered an incorrectly created empty screenshot.
  • Recognition of components via the old qfs:label algorithm could fail in special cases where an ExtraFeatureResolver was registered.
  • Variables in doctags of 'Execute shell command' nodes are now expanded correctly.
  • Swing: In rare cases addressing a line as a sub item in a JTextArea could cause a NullPointerException.
  • Web: When replaying a 'Fetch geometry' node on a non-existing sub item in a web application, the geometry of the parent component was mistakenly returned. Now the correct IndexNotFoundException is thrown instead.
  • Android: The procedure qfs.android.adbUtils.appPackage.getCurrentPackage in the standard library qfs.qft now also works on Android devices that don't provide a grep program.

New in QF-Test 7.0.2 (Jun 23, 2023)

  • New features:
  • Support for JxBrowser version 7.33 was added.
  • Bugs fixed:
  • When starting QF-Test version 7.0.1 to only show a run log and later opening a test suite the previous session was not restored.
  • On Windows with a scaled monitor the PDF client now displays a scaled document with frames and check highlights correctly aligned. Image checks are created at 100% resolution and thus should remain compatible with image checks from a non-scaled monitor.
  • Web The installation of a CustomWebResolver lead to an exception in case it contained erroneous JavaScript commands. Now an error is logged instead.
  • Web The 'Install CustomWebResolver' node failed if some jar file in the plugin folder provided a conflicting Jackson library.

New in QF-Test 7.0.1 (May 31, 2023)

  • New features:
  • QF-Test now supports tests for applications based on Eclipse/SWT 4.28 alias "2023-06".
  • Support for testing clients running with an ARM java on macOS was added.
  • Support for JxBrowser version 7.32 was added.
  • Startup of QF-Test is now noticeably faster, in interactive mode as well as batch mode.
  • The new special variable ${qftest:suite.name} expands to the name of the test suite as defined in the root node.
  • New CWR node mappings and categories are now inserted at the cursor position instead of at the very end.
  • When using compact run logs (see option Create compact run log) it is now possible to exclude nodes from compactification via the doctag @dontcompactify (see chapter 60).
  • Bugs fixed:
  • QF-Test now starts with the system property -Dsun.io.useCanonCaches=true to enable canonical filename caches for Java version 17 in order to avoid performance degradation caused by large projects on slow file systems. This restores the behavior of previous Java versions.
  • Some procedures in the standard library failed when called with a SmartID due to use of ${qftest:engine.$(id)}. SmartIDs that don't include an explicit GUI engine now use the GUI engine "default".
  • Entries in configuration files were no longer sorted if QF-Test was running with Java 17.
  • Occasionally check mode remained activated in a Browser even after stopping recording, thus blocking further interaction.
  • If a website was used as scope for a SmartID, the scope was not updated correctly when navigating.
  • Deleting a file via the File System Access API could throw an exception in special cases.
  • Duplicated categories in a CWR configuration are no longer ignored and trigger an error instead.
  • Swing Screenshots of Swing windows are now taken with higher quality.
  • On Windows with a scaled monitor the PDF client now displays a scaled document with frames and check highlights correctly aligned. Image checks are created at 100% resolution and thus should remain compatible with image checks from a non-scaled monitor.

New in QF-Test 7.0.0 (Apr 27, 2023)

  • New features:
  • The new dark mode is just the most visible aspect of the streamlined UI with slightly larger fonts and icons and more spacing in general. See menu »View«-»UI Theme« and options Minimum font size (pt) and Terminal font size (pt).
  • The development of SmartIDs has left the preview stage. Based on the reimplementation of the algorithm for finding the associated or nearest label of a component, they combine simplicity with precise and efficient component recognition in many situations. The new qfs:label* variants also apply to classic 'Component' nodes. For detailed information please see section 5.6 and subsection 5.4.4.1 as well as the various options described in section 39.4.
  • The new 'Install CustomWebResolver' node for implementing a CustomWebResolver for web applications replaces the rather cryptic 'Procedure call' to qfs.web.ajax.installCustomWebResolver. Existing calls will of course continue to work, but can also easily be transformed into the new node via the context menu item »Transform node into« as described in subsection 49.1.2.
  • There is now a visual UI Inspector for web and Android applications (see subsection 5.12.2).
  • With the help of the new nodes 'Error', 'Warning' and 'Message' it is now possible to directly log errors, warnings or plain messages anywhere in the test suite with the added bonus of configurable screenshots and diagnostic logs.
  • QF-Test based tests can now easily be integrated into JUnit 5 tests. This simplifies the execution of QF-Test based tests from an IDE like IntelliJ or Eclipse. Also, a Gradle plugin is now available for including QF-Test based tests in build pipelines controlled by Gradle. See section 27.5 for details.
  • The XML format for saving test suites is now configurable. For example, new test suites are now saved with UTF-8 encoding by default and with longer lines. Existing suites are not changed by default, but can be converted in one go. The new format can still be read by older QF-Test versions. Further information is provided in subsection 39.1.2 and section 42.1.
  • XML reports are now saved with UTF-8 encoding by default.
  • Support was added for testing applications based on Java 21.
  • Groovy was updated to version 4.0.11.
  • The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 108.
  • Web Support for JxBrowser version 7.31 was added.
  • The embedded JUnit library was updated to version 5.9.2.
  • Support was added for the web framework Fluent UI React version 8.
  • QF-Test now supports accessing local files from tested web applications using the File System Access API in WebDriver and CDP-Driver connection mode so that capture and replay for this use case should now work out-of-the-box.
  • Web Pseudo attributes can be used to simplify resolvers using JavaScript to retrieve values from a browser. In certain cases they can improve performance. For a closer look see Web – Pseudo Attributes.
  • QF-Test now provides readily accessible templates for frequently used scripts like resolvers via the 'Templates' popup in 'Server script', 'SUT script' and 'Unit test' nodes. It is also possible to define additional templates that show up in the list.
  • Via the new option Show step types for named tree nodes it is possible to hide redundant parts of the tree node descriptions in test suites and run logs.
  • Clicking on a line number in a script step now selects the whole line.
  • If the new option Automatically open created nodes is activated, new nodes are already expanded after insertion.
  • The name of the result variable of a 'Procedure call' node is now shown in the tree. The result of the call can also be displayed in the run log after the name of the procedure by activating the new option Show return values of procedures.
  • The buttons in the QF-Test toolbar can now be rearranged by dragging with the mouse. The original layout can be restored via the menu »View«-»Toolbar«.
  • The new special variable ${qftest:language} expands to the current language of the QF-Test user interface.
  • The new special variable ${qftest:project.dir} expands to the directory of the project to which the current test suite belongs.
  • Tree items in the SUT can now be addressed by a combination of numerical, textual and regular expression indices.
  • A 'Data driver' node below a 'Test step' node can now be packed into a nested 'Test step'.
  • A 'Comment' node can now be inserted above the currently selected node via the »Insert« menu or the keystroke [Shift-Ctrl-7].
  • If a 'Wait for client to connect' node is used to wait for a dedicated engine, that engine is now displayed in the tree.
  • The QF-Test application icon for macOS was adapted to modern standards.
  • Many new mobile device specifications were added for mobile emulation mode.
  • Bugs fixed:
  • An exception was thrown in the procedure qfs.utils.xml.compareXMLFiles if one of the two files was empty.
  • Jython scripts that rely on the system property python.security.respectJavaAccessibility=false for accessing private class members now also work with Java 9 and higher.
  • Check and component recording could not be properly activated in parallel in web tests with CDP-Driver or WebDriver connection mode.
  • Running a mobile emulation test with CDP-Driver connection mode was updated for newer Chrome versions.
  • In special cases the execution speed of tests for web applications can be noticeably improved via MainTextResolver or WholeTextResolvers variants without default parameter.
  • In rare cases, use of the @:: syntax in the genericClasses parameter of the procedure qfs.web.ajax.installCustomWebResolver could lead to a CSS class being inadvertently mapped to the class of the node.
  • Text input has been improved for Android devices with API level 33 and higher.

New in QF-Test 6.0.5 (Mar 15, 2023)

  • New features:
  • Support was added for testing applications based on Java 20.
  • QF-Test now supports tests for applications based on Eclipse/SWT 4.27 alias "2023-03".
  • The JRE distributed with QF-Test has been updated to Zulu OpenJDK Version 8_362.
  • Groovy was updated to version 4.0.10.
  • The embedded JUnit library was updated to version 5.9.2.
  • QF-Test now uses the "new headless mode" of Chromium based browsers.
  • Support for JxBrowser versions 7.29 and 7.30 was added.
  • The bundled GeckoDriver was updated to version 0.32.2.
  • QF-Test can now also intercept starting an external browser via Desktop.open().
  • Bugs fixed:
  • Jython now also works with Java 9 or higher if the system property python.security.respectJavaAccessibility is set to false in order to directly access private class members.
  • The SAX variant of the procedure qfs.utils.xml.compareXMLFiles in the standard library qfs.qft now ignores leading and trailing whitespace in the noCheck parameter.
  • When using the WebDriver connection mode, alert dialogs originating from IFRAMEs might not have been displayed.
  • With CDP-Driver connection mode on Windows QF-Test did not switch browser tabs correctly before replaying a hard mouse event. Also, empty tabs from downloads could remain open.
  • It is now possible to set the working directory for the start of an Electron application.
  • The module qf is now also available in JUnit Groovy Scripts.

New in QF-Test 6.0.4 (Nov 29, 2022)

  • This maintenance release comes with many version updates, among them JRE version 8_352, Eclipse / SWT 4.26 alias "2022-12" as well as JxBrowser 7.28. Besides a few bug fixes it also introduces some smaller new features, including an option for prefixing classes when recording SmartIDs or the new rc methods pushOption and popOption.

New in QF-Test 6.0.3 (Sep 6, 2022)

  • New features::
  • The JRE distributed with QF-Test has been updated to Zulu OpenJDK version 8_345.
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.25 alias "2022-09".
  • Web Support for JxBrowser version 7.27 was added.
  • The methods getFirstChild, getNextSibling, getPreviousSibling, getFirstElementChild,getNextElementSibling and getPreviousElementSibling were added to the QF-Test pseudo DOM API. See subsection 50.11.1 for details.
  • Bugs fixed:
  • Web When performing an upload with CDP-Driver connection mode, a TestException is now thrown in case the specified file does not exist.
  • Web In rare cases the information about sub-items was lost when recording a mouse click in a web application.
  • Web In some cases a browser window was mistakenly closed in case of a WebDriver timeout triggered for a different frame.
  • Web Overlays in web applications driven by the Angular framework might not have been recognized correctly.
  • SWT For SWT applications on Linux, replaying a selection on a ToolItem in a vertical ToolBar could trigger the wrong item.

New in QF-Test 6.0.2 (Jul 20, 2022)

  • New features:
  • Clean shutdown of running QF-Test instances - especially in batch mode - has been greatly improved. With the new command line arguments -allow-shutdown [<shutdown ID>] and -shutdown <ID> it is now possible to target individual QF-Test processes based on their process ID or a previously specified shutdown ID. The former command line arguments -allowkilling and -kill-kunning-instances still work but are now deprecated.
  • The command line argument -clearglobals now also works for calldaemon mode (see subsection 22.2.2). To that end the DaemonRunContext API has two new methods, setGlobals and clearGlobals (see section 51.2).
  • Web Support for JxBrowser version 7.26 was added.
  • The faster variant of the procedure qfs.utils.xml.compareXMLFiles in the standard library qfs.qft now also supports sorting.
  • For SmartIDs the prefix of special features like "Tab: some tab" or "Label: some label" is now optional. See section 5.6 for details about SmartID syntax.
  • Bugs fixed:
  • When logging screenshots of individual windows, QF-Test mistakenly also used to create images for embedded windows from different GUI engines.
  • When editing options, assigning duplicate hot keys is no longer allowed.
  • Web The pseudo DOM method DomNode.getElementsByTagName now also returns slotted elements.
  • Web Text from slotted elements was not taken into account when determining the feature of web components.
  • Web In direct download mode existing files are no longer overwritten by default but saved with a unique name.
  • SWT Replay of TAB keystrokes is now significantly faster for SWT on Windows.

New in QF-Test 6.0.1 (Jun 9, 2022)

  • New features:
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.24 alias "2022-06".
  • There is a new variable group to conveniently escape special characters in SmartIDs. ${quotesmartid:...} deals with the item syntax characters '@', '&' and '%' as well as the SmartID special characters ':', '=', '<' and '>'.
  • Bugs fixed:
  • Android Replay of text input for android applications has been improved.
  • Web In web applications a GenericClassNameResolver registered on "DOM_NODE" was not called correctly.
  • SWT Replaying text input as single events for SWT applications running on Ubuntu 22 could lead to garbled text with the order of some characters changed. QF-Test now replays these events with improved synchronisation.

New in QF-Test 6.0.0 (May 17, 2022)

  • New features:
  • The new Android engine adds support for testing Android applications in an emulator or a real device. See chapter 15 for further information.
  • Though the embedded JRE of QF-Test is still version 8 - currently at relase 8_332 - QF-Test can now also be started with Java 17 (see command line argument -java <executable>). This provides crisp display on scaled monitors and enables support for plugins that require newer Java versions.
  • Support was added for testing applications based on Java 19.
  • In order to reduce the chances of creating screenshots showing sensitive data during a test-run QF-Test now takes screenshots only from relevant monitors that show a window that belongs to QF-Test or a connected SUT. While this default setting is useful for personal workstations it may be preferable to turn it off for dedicated test systems via the new option Limit screenshots to relevant screens.
  • The HTML report has undergone a major overhaul. Readability is improved thanks to many subtle details with a more pleasant design and screenshots and error messages are shown as an overlay when clicked, including navigation between screenshots.
  • Report creation can now also be triggered via a new toolbar button in the run-log window.
  • In reports, the name of a test suite, which can be specified in the 'Name' attribute of the root node, is now used in place of the file name of the test-suite. This can be configured in the report creation dialog or in batch mode via the new command line argument -report-include-suitename.
  • Display of duration indicators for a better understanding of the run-time behaviour of a test-run can be turned on for run-logs via a new toolbar button and the »View« menu. See subsection 7.1.3 and the options Show relative duration indicators and Duration indicator kind for further information.
  • Activating the new option Create screenshots for warnings causes screenshot creation for warnings in the run-log in addition to those for errors and exceptions.
  • It is now possible to link nodes in a test-suite to external resources or documents via the @link doctag. Via a right-click the target can then be opened in a browser or the application associate with the file type. See Doctags for reporting and documentation for further information.
  • Groovy was updated to version 4.
  • The new parameters warningDelay and errorDelay in the procedure qfs.utils.logMemory in the standard library qfs.qft are used to introduce a short delay in case the warningLimit or errorLimit are exceeded, followed by an additional garbage collection and another check.
  • The performance and memory consumption of the qfs.qft procedure qfs.utils.xml.compareXMLFiles have been improved.
  • Web Display and responsiveness of the highlights in check mode were significantly improved for CDP-Driver and WebDriver connection mode.
  • Web The handling of WebComponents using ShadowDOMs and slots has been improved for testing web application in CDP-Driver or WebDriver connection mode (QF-Driver support is still pending): The shadow root node is now accessible as the only child of its host node and slotted nodes are referenced as children of their assigned slot node.
  • Web Text retrieval with CDP-Driver connection mode has been greatly improved and the DOM hierarchy is now consistent with other connection modes.
  • Web Performance of image checks in headless browsers has been improved.
  • Web QF-Test now supports multiple parallel downloads in web-tests with CDP-Driver connection mode.
  • Web The new procedure qfs.web.browser.settings.setDirectDownload in the standard library qfs.qft allows to download files directly into the directory provided, suppressing the download dialog. Currently for CDP-Driver connection mode only.
  • Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 100.
  • Web Support for JxBrowser versions 7.23 and 7.24 was added.
  • Web The bundled cdp4j library has been updated to version 5.5.0.
  • Web The bundled GeckoDriver was updated to version 0.31.0.
  • Web The method FrameNode.getFrameElement() was added to the pseudo-DOM API of QF-Test.
  • Web Via the parameter consoleOutputValue in the procedures qfs.web.browser.settings.doStartupSettings and qfs.web.browser.settings.setTerminalLogs in the standard library qfs.qft it is now possible to also set the type of the terminal logs.
  • Windows-Tests The embedded UI automation library has been updated to version 0.7.0.
  • Mac On macOS the occasionally showing message dialogs about Safari browser automation are now handled automatically by QF-Test and no longer block test execution.
  • Preview features:
  • The following features are not yet complete, but development has reached a point where they are already of great use and the released functionality can be relied upon without concerns about backwards compatibility.
  • SmartIDs enable a flexible, easy recognition of components directly from the 'QF-Test component ID' without recording component information first. Please see section 5.6 and 'Component' nodes versus SmartID for detailed information.
  • Thanks to the new integration with Robot Framework, QF-Test procedures can be used as Robot Framework keywords.
  • Bugs fixed:
  • The mini-installer files for Windows - minisetup.exe and minisetup_admin.exe - can now be run in silent and very-silent mode, similar to the full installation.
  • Mac QF-Test might crash when replaying hard key events on macOS.
  • When using split run-logs, the maximum number of screenshots for a run-log was not always respected, if the option Count screenshots individually for each split log was turned off.
  • The procedure qfs.autowin.acrobat.saveAsText in the standard library qfs.qft now also works for Acrobat Reader version 22.1 and up.
  • A call of rc.clearTestRunListeners() in a server script in batch mode broke the output resulting from the command line argument -verbose [<level>].
  • Web Detection of the Chrome window for semihard clicks has been improved.
  • Web For current Opera versions in WebDriver connection mode QF-Test now supports automatic download of the required ChromeDriver version.
  • Electron The window of an electron application was inadvertently resized upon startup when tested with CDP-Driver connection mode.
  • Electron Popups were not recognized when testing an Electron application in CDP-Driver connection mode.

New in QF-Test 5.4.3 (Mar 11, 2022)

  • New features:
  • QF-Test now supports tests for applications based on Eclipse/SWT 4.23 alias "2022-03".
  • Support for JxBrowser 7.22 was added.
  • Bugs fixed:
  • In very special cases instant rerun of a failed node, triggered via the @rerun doctag, could lead to wrong values on the variable stack.

New in QF-Test 5.4.2 (Feb 18, 2022)

  • New features:
  • Web QF-Test now supports testing with Opera 84.
  • Web The Kendo UI and Smart GWT Custom Web Resolvers have been updated for the latest release of the respective framework.
  • Web The bundled cdp4j library has been updated to version 5.5.0.
  • Web The method FrameNode.getFrameElement() was added to the pseudo-DOM API of QF-Test.
  • Web In the procedure qfs.web.browser.settings.setTerminalLogs in the standard library qfs.qft it is now possible to set the type for terminal logs via the consoleOutputValue.
  • Bugs fixed:
  • Web Cookies were not properly reset upon browser start for Chrome and Edge version 98 and higher on Windows.
  • Web When elements of a webpage were reordered QF-Test sometimes failed to synchronize them correctly with the new order.
  • The procedure qfs.daemon.startRemoteSUT in the standard library qfs.qft did not work correctly if the QF-Test daemon was started with a keystore for securing the communication via TLS.
  • Swing Feature resolution for Swing components had a subtle bug in QF-Test versions from 5.3.4 to 5.4.1, resulting in a tool-tip having higher precedence than an explicitly associated label.

New in QF-Test 5.4.1 (Jan 20, 2022)

  • New features:
  • QF-Test now supports testing with Opera 83.
  • The bundled cdp4j library has been updated to version 5.4.1.
  • Bugs fixed:
  • When using CDP-Driver connection mode QF-Test 5.4.0 could sometimes not find elements added after page load.
  • It is now possible to display non-string console log data from a browser started in CDP-Driver connection mode in the QF-Test terminal.
  • The Chrome DevTools can now be detached when developing a web test in CDP-Driver connection mode.
  • In some situations, dialogs in Electron applications were not closed properly when using WebDriver connection mode.
  • Connection to an electron application on Windows failed in CDP-Driver connection mode in case the application was starting slowly.

New in QF-Test 5.4.0 (Dec 14, 2021)

  • Changes that can affect test execution:
  • An error was fixed in the qftest launch script on Linux. While processing command line arguments with an escaped $-expression in the value of a -variable or -option argument, the $-expression was inadvertently expanded.
  • Swing Components in a Swing JScrollPane, most notably JTree and JTable, were assigned inconsistent qfs:label extra features.
  • Web Testing with Microsoft Edge (legacy) is no longer supported because that version of Edge is generally discontinued. This does not affect support for the current Microsoft Edge browser.
  • Web Execution of the 'Wait for document to load' step has been fixed and the check for document reload improved. This may lead to errors in places where the testsuite design relied on the malfunction. In such a case it is advisable to examine the affected 'Wait for document to load' steps and possibly disable or remove them, or replace them with a 'Wait for component to appear' step. Alternatively it is also possible to reinstate the broken version via the option Reset web-document load state during rescan (before 5.4).
  • Web For web applications the attributes "aria-checked" and "aria-selected" are now automatically taken into account for 'Boolean check' nodes with check type selected or checked.
  • New features:
  • Support was added for testing applications based on Java 18.
  • Electron Electron applications can now be tested using CDP connection mode which is far more effective and works without requiring inclusion of the problematic module @electron/remote into the electron application.
  • The dialog for the option settings of QF-Test now provides search functionality.
  • It is now possible to copy and paste images from and to QF-Test, most notably for 'Check image' nodes and screenshots in a run-log.
  • 'Mouse event' nodes with a 'Modifiers' attribute of 4, designating a right-button click, are now shown in the tree as "right-click".
  • Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 95.
  • Groovy was updated to version 3.0.9
  • The JUnit library has been updated to version 5.8.1.
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.22 alias "2021-12".
  • Web QF-Test now supports testing with Opera 80, 81 and 82.
  • Web Support for JxBrowser 7.20 and 7.21 was added.
  • Web For a web application the attribute 'Check type identifier' of a 'Boolean check' node can now be set to "attribute:<name>" to check for the boolean value of the attribute <name> in the target node.
  • The new doctag @outputFilter can be used in client starter nodes in order to suppress unwanted messages in the QF-Test terminal. See section 58.2 for details.
  • If the 'Default value' attribute of a 'Set variable' is a QF-Test component ID in the form ${id:...}, it is now possible to highlight or jump to the target component by right-clicking and selecting the respective item in the context menu.
  • Bugs fixed:
  • The search for unused callable nodes sometimes missed certain references and thus could turn up nodes that were actually still in use.
  • QF-Test now tries to avoid creating non-daemon threads in the SUT, including implicitly created threads from the RMI sub-system. These threads could prevent a process from terminating completely after closing the last window of the SUT.
  • Performance and memory consumption have been improved in several places.
  • Swing The title of a JPanel with a TitledBorder is now correctly retrieved as its feature.
  • Swing The order of the components in a Swing JSplitPane seen by QF-Test could vary depending on the order of creation and replacement of those components. QF-Test now uses left->right or top->bottom order irrespective of that.
  • Web QF-Test now also supports automatic ChromeDriver download for the Google Chrome variants "Dev" and "Canary".
  • Web QF-Test sometimes failed to record events after frame navigation in CDP-Driver mode.
  • Web An exception was fixed that could cause failures during document initialization in CDP connection mode.
  • Web The "label" attribute of an OPTION element is now taken into account when determining the name of the option.
  • Web When a browser window crashes in CDP connection mode, an error is now reported and the window is automatically closed.
  • Web Handling of unload dialogs during web tests with CDP-Driver connection mode has been improved.
  • Web When running web tests on a headless browser with CDP-Driver connection mode QF-Test no longer attempts to show a temporary Swing dialog for file up- or download. As a result, headless-only web tests with CDP-Driver should now run as batch tests in a container with no X-server at all.
  • Web Synchronization with animations in web applications has been improved for CDP-driver connection mode.
  • Web By default, console output of Firefox in Webdriver connection mode was redirected to the process' standard output so that QF-Test could check it for JavaScript errors. Due to the potentially heavy load on CPU and memory this has been turned off and can be re-enabled by setting the parameter consoleOutputValue to 1 in the call to the procedure qfs.web.browser.settings.doStartupSettings in the standard library qfs.qft.

New in QF-Test 5.3.4 (Sep 30, 2021)

  • New features:
  • The bundled GeckoDriver was updated to version 0.30.0.
  • Bugs fixed:
  • A memory leak in QF-Test, introduced in version 5.3.3 has been fixed.
  • The procedure qfs.autowin.acrobat.saveAsText in the standard library qfs.qft now also works for Acrobat Reader version 21.6 and up.

New in QF-Test 5.3.3 (Sep 14, 2021)

  • New features:
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.21 alias "2021-09".
  • Web QF-Test now supports testing with Opera 78 and 79.
  • Web Support for JxBrowser 7.17, 7.18 and 7.19 was added.
  • Web The bundled cdp4j library was updated to version 5.4.0.
  • Bugs fixed:
  • The dialog for editing step details is now properly shown the range of visible screens, even when a previously attached monitor gets removed or when switching a session to RDP.

New in QF-Test 5.3.2 (Jul 21, 2021)

  • Bugs fixed:
  • Web Some websites containing custom HTML elements were not testable with CDP connection mode.
  • Web In CDP connection mode whitespace was missing from fetched text in some cases.
  • Web In CDP connection mode, the keyCode property of key events generated from text is now set correctly.
  • Web In CDP connection mode the location of elements in nested IFrames was calculated wrongly.
  • Web The 'Name of the browser window' attribute of 'Wait for document to load' nodes was ignored.

New in QF-Test 5.3.1 (Jun 15, 2021)

  • New features:
  • Support was added for testing applications based on Java 17.
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.20 alias "2021-06".
  • Performance in CDP connection mode with dynamic content updates has been improved.
  • Support for JxBrowser 7.16 was added.
  • Electron QF-Test now supports applications built with Electron 14 or newer, if the @electron/remote is bundled with the app.
  • QF-Test now supports testing with Opera 77.
  • Bugs fixed:
  • Web Validity of text input to web applications via single events has been improved through additional explicitly defined keycodes.

New in QF-Test 5.3.0 (May 20, 2021)

  • New:
  • The newly added browser connection mode CDP-Driver supplements QF-Driver and WebDriver for controlling Chromium based browsers via the Chrome DevTools Protocol. By talking directly to the browser without the intervening WebDriver protocol, speed, stability and feature set of CDP-Driver are on par with QF-Driver (and that's after the QF-Driver performance boost, see below). In addition, while QF-Driver is limited to Chrome on Windows, CDP-Driver now supports Google Chrome, Microsoft Edge and Opera on Windows, Linux and macOS, so this is a real game-changer for web test automation with QF-Test.
  • Web The performance of web tests with QF-Driver for Chrome has been significantly improved. Observed speed-up ranges from 10% to over 500%.
  • The user interface of QF-Test has been cleaned up and streamlined, using a uniform flat look with fewer lines and beautiful new icons that still maintain the existing image language and are immediately recognizable. The HTML manual and tutorial as well as report and test documentation have also received a face-lift.
  • Use of international character sets in Jython scripts is now straightforward. If the new option Literal Jython strings are unicode (16-bit as in Java) is turned on, literal strings (explicitly specified string constants like "abc") in Jython scripts are treated as 16-bit unicode and are thus equivalent to strings in Java and the other QF-Test scripting languages. Please see subsection 12.3.4 for detailed information.
  • Web Detection of errors in the browser console has been improved and, depending on the option How to handle errors in a web application, they are logged in the QF-Test run-log. Besides, the new procedure qfs.web.browser.settings.setTerminalLogs in the standard library qfs.qft can be used to define if and how messages from the browser console are to be shown in the QF-Test terminal.
  • Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 89.
  • Web The bundled GeckoDriver was updated to version 0.29.1.
  • Web Support for JxBrowser 7.14 and 7.15 was added.
  • Web QF-Test now supports testing with Opera 76.
  • The JRE ditributed with QF-Test has been updated to Zulu OpenJDK version 8_292.
  • The quickstart wizard now has its own toolbar button. This - or any other unwanted toolbar button - can now be removed from the toolbar via a right-click popup menu.
  • The 'Wait for absence' node now has a dedicated entry in the »Insert« menu and its logic when applied to sub-items has been simplified: Execution of the node is successful if either the parent component of the sub-item is absent or the sub-item itself.
  • When running a test with the command line argument -verbose [<level>], QF-Test now expands variables in node names for console output also.
  • The default setting for the available Java memory for QF-Test has been increased to 1024 MB. The configuration of existing QF-Test installations is not affected.
  • Swing Sub-items of Swing JComboBox components can now be addressed relative to the JComboBox without requiring identification of the popup list.
  • Linux The ability to bring windows of the SUT to the foreground when needed and set the input focus is crucial for automated testing. On Linux QF-Test now uses an updated, more reliable method to bring a window on top regardless of desktop settings if the option Force window to the top when raising is not deactivated.
  • Exception messages in the run-log or an error dialog are now displayed using word-wrap to break long lines. This can be turned off via the option Wrap lines in exception messages.
  • Bugs fixed:
  • Installing a resolver via the generic method resolvers.addResolver() did not work in SUT scripts with the JavaScript language.
  • Web The browser zoom level is now reset to 100% when clearing the browser cache.
  • The procedure qfs.swing.startup.startWebstartSUT now ensures proper quoting of the jnlp argument for use on the command line of Linux systems in order to avoid side-effects from special characters it might contain.
  • Windows-Tests The qfs:label extra feature for elements within a TabPanel of a native WPF application was not determined correctly.
  • Web Since QF-Test version 5.2.2 in very special cases elements in a web page were mistakenly considered to be invisible.
  • Mac QF-Test now runs again on macOS versions older than 10.14.
  • Resolution of the qfs:label extra feature for a label located above the target component is now slightly more tolerant about horizontal alignment.
  • Swing Fast replay of several mouse clicks onto the same location of a Webswing application could accidentally create double clicks when redirecting events through the browser.

New in QF-Test 5.2.3 (Mar 9, 2021)

  • New features:
  • QF-Test now supports tests for applications based on Eclipse/SWT 4.19 alias "2021-03".
  • Bugs fixed:
  • In special cases, unluckily placed comment nodes could lead to unwanted side-effects during test execution like a 'Setup' or 'Cleanup' node run just for a comment.
  • Improved timing for client shutdown when ending batch mode execution. In WebDriver connection mode mutations on a website might have gone unnoticed in case the page contained too many elements.

New in QF-Test 5.2.2 (Feb 12, 2021)

  • New features:
  • Support was added for testing applications based on Java 16.
  • Web QF-Test now supports testing with Opera 74.
  • Web The bundled GeckoDriver was updated to version 0.29.0.
  • The new shortcuts [Ctrl-/] or [Ctrl-7] can be used to insert a new comment node in the test-suite tree.
  • Bugs fixed:
  • Web Several performance bottlenecks for web tests have been fixed, most notably for Firefox on Linux with WebDriver.
  • Web In very rare situations, Chrome was closed in case a JavaScript-execution intervened with a frame reload.
  • Web Delayed attachment of a shadow DOM is now recognized correctly.
  • Swing In special cases the improved event synchronization for Swing might have missed some events, causing slower test execution.
  • If a 'Test-case' with the 'Expected to fail if...' attribute set to true does not fail, it should be treated as an error. That error was incorrectly reported as an expected error itself.
  • The sort order of parameters is now also automatically applied when changing the target procedure of a 'Procedure call' node via the chooser dialog.

New in QF-Test 5.2.1 (Dec 3, 2020)

  • New features:
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.18 alias "2020-12".
  • Support for JxBrowser 7.12 was added.
  • Bugs fixed:
  • Due to wrong file permissions on Linux machines, Jython scripts would fail when running QF-Test as a user other than the one that installed it.
  • The JRE distributed with QF-Test has been changed back to Zulu OpenJDK. The version remains 8_275.
  • In some cases, showing an alert box on a web page lead to a browser deadlock.
  • Several details for the Webswing integration have been improved, including correct filtering of KeyEvents, focus handling for embedded JavaFX components and cleaner separation of client processes in the demo test-suites.
  • Daemon connection might have failed during handshake if different java version where used on client and server side.
  • Changes that can affect test execution:
  • Testing applications running on Java 7 is no longer supported.
  • Windows-Tests Many procedures in the standard library package qfs.qft.autowin have been deprecated in favor of the much better suited Windows engine.
  • Due to the updated JRE in the QF-Test installation, graphical elements and graphs in the PDF client may be painted with slightly different anti-aliasing. This can lead to errors in 'Check image' nodes. Given that such problems cannot be ruled out for future JRE updates you should set the 'Algorithm for image comparison' attribute of affected nodes to "algorithm=similarity;expected=0.98".

New in QF-Test 5.2.0 (Nov 16, 2020)

  • New features:
  • QF-Test now supports integrated testing of Swing and JavaFX applications that are displayed in a browser using the technologies Webswing or JPro. See chapter 17 for an explantion of the concepts and the demo test-suite for Webswing, accessible via the menu »Help«-»Explore example test-suites...«, entry "Webswing SwingSet Suite".
  • Mac QF-Test is now notarized by Apple and thus starts on modern macOS systems without showing a warning message.
  • Web QF-Test now also supports testing with the Microsoft Edge browser on Linux.
  • The JRE distributed with QF-Test has been updated to Liberica OpenJDK Version 8_275.
  • Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 85.
  • Groovy has been updated to version 3.0.6.
  • Jython has been updated to version 2.7.2.
  • Web Support for JxBrowser 7.11 was added.
  • Web The embedded GeckoDriver has been updated to version 0.28.0.
  • Web QF-Test now supports testing with Opera 72.
  • Web Device specifications for many current mobile devices have been added to mobile emulation mode.
  • The JUnit library has been updated to version 5.7.0.
  • Web On Windows systems with a scaled display now starts QF-Driver browsers in compatibility mode so that scaling is transparently handled by Windows and tests work very similar to unscaled mode except for image checks.
  • It is now possible to specify options on the command line via the argument -option <name>=<value>.
  • QF-Test command line arguments can now contain "." and "-" characters in arbitrary places and upper or lower case characters at will.
  • When testing Java applications, QF-Test can now intercept calls that open a native browser window in order to launch a browser controlled by QF-Test for the given URL. An example is provided in the demo test-suites "CarConfig test project" and "CarConfig JavaFX test project", accessible via the menu item »Help«-»Explore sample test-suites...«.
  • The new procedure qfs.utils.waitForClientOutput in the standard library qfs.qft assists in synchronizing with terminal output of the SUT.
  • Several more node conversions are now possible.
  • The 'Server HTTP request' step now also supports the PATCH method.
  • The two new procedures qfs.utils.sendKey and qfs.utils.sendText in the standard library qfs.qft can be used to enter text into the currently focused element of the active window.
  • The 'No events were recorded' dialog can now be suppressed via the new option Show message if no events were recorded.
  • When merging run-logs in batch mode, the command line argument -mergelogs-masterlog [<file>] can now be combined with -mergelogs-mode [<mode>] set to "append". The appended run-logs will be stored as externalized thus minimizing memory use both during merging and when opening the resulting run-log.
  • Similar to Jython, script steps for Groovy and JavaScript can now use common exceptions without an explicit import.
  • When propagating the parameters of a callable node to its callers, there are now explicit choices for whether to add missing parameters, remove extraneous parameters and/or update the sort order.
  • Bugs fixed:
  • Opening a run-log with an automatic re-run still in progress could lead to an exception.
  • Encrypted connections to the QF-Test daemon are now also supported by the external daemon-API.
  • When generating reports, thumbnail images were created even if -report-thumbnails was not specified.
  • The 'Unit test' step now correctly supports the self.assertEqual call in Jython scripts.
  • Text input on Swing and JavaFX components was slowed down if a browser embedded into Java was detected.
  • Swing Event synchronization under heavy load for Swing based applications has been improved.
  • Swing Text input with single events on a Swing JTextArea now handles newline characters correctly.
  • Windows-Tests Elements of Windows applications may not have been scrolled visible correctly for hard events and image checks.
  • Web With a browser in WebDriver mode a failed frame focus switch could lead to a StackOverflowException.
  • Web In some cases the MSEdgeDriver was not downloaded correctly.
  • Web Checks on elements inside a shadow DOM could not be recorded.
  • Web Soft (invisible) hyphen characters are now implicitly ignored.
  • Electron In some cases, dialog boxes from Electron where displayed empty.
  • JavaFX The visibility of JavaFX components embedded in Swing was sometimes not determined correctly.
  • SWT For SWT version 4.17 on Windows highlight rectangles on Menus were not restored correctly.

New in QF-Test 5.0.2 (May 5, 2020)

  • New features:
  • The webp image compression library was updated to version 1.1.0.
  • Keyboard event input in JX Browser is now more stable.
  • Contrast of toolbar icons has been improved especially for disabled buttons.
  • QF-Test now supports testing with Opera 68.
  • Bugs fixed:
  • Angular 9 is now auto-detected correctly.
  • The 'CSV data file' node now correctly handles UTF-8 encoded files with BOM that start with an encapsulated complex expression.
  • Windows-Tests The 'Start windows application' node can again attach to a client via a given class name (-class) in the 'Window title' attribute.
  • Error handling and retry for automatic downloads of WebDriver libraries has been improved.
  • Windows-Tests Recording elements with a flat hierarchy did not work.
  • The PDF client is now able to check a Text component which contains only null "u0000" characters and treats it as an empty String.

New in QF-Test 5.0.1 (Mar 2, 2020)

  • New features:
  • A new demo test-suite was added for the Windows 10 Calculator.
  • QF-Test now supports Opera 67 with Operadriver 80.0.3987.100.
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.15 alias "2020-03".
  • Bugs fixed:
  • When recording components for the whole window, elements within a WPF TabPanel were omitted.
  • The qfs.database.executeSelectStatement procedure now works again for databases requiring an explicit db.commit() statement.
  • When executing a 'Server HTTP request' node, the returned body was mistakenly not stored in a variable in case of a server error.
  • JavaFX Processing JavaFX images in order to calculate a hash value could cause a NullPointerException; to get printed to the terminal.
  • Fixed a bug where a TextField in a Windows application might not get cleared before input.
  • Occasionally a ModalDialogException might get incorrectly thrown in WPF Windows applications.

New in QF-Test 5.0.0 (Feb 6, 2020)

  • New features:
  • With the new Windows engine QF-Test can now test native Windows applications.
  • Support was added for testing applications based on Java 14.
  • The new 'Comment' node can be used to improve the structure and readability of test-suites and run-logs.
  • It is now possible to download a file via the new 'Save response to file' attribute of the 'Server HTTP request' node.
  • A package for Windows applications has been added to the standard library qfs.qft.
  • On Windows QF-Test is now correctly displayed at scaled high resolution displays.
  • In the manual the chapter Web testing has been revised and a section (subsection 45.1.3) describing the procedure qfs.web.ajax.installCustomWebResolver of the standard library has been added.
  • The option Show message dialog after now has a setting to show a message dialog also when a test run finishes successfully.
  • If the result dialog gets shown after a search the search dialog is now closed automatically.
  • The new procedure qfs.util.click in the standard library qfs.qft can be used to click at an arbitrary position on the screen.
  • You can now create an electron start sequence in the quickstart wizard that automatically detects the required ChromeDriver.
  • When copying a 'Procedure call', 'Test call' or 'Dependency reference' node the name of the target node is now also copied as text to the clipboard.
  • The bundled GeckoDriver has been updated to version 0.26.0.
  • On Windows, tests with the Microsoft Edge 78 and newer are also possible in headless mode.
  • QF-Test supports now Opera 66 with Operadriver 79.0.3945.79.
  • The new variable engine.$(componentId) in the qftest special group makes it possible to find out to which GUI-engine a component belongs.
  • The project tree view in QF-Test uses now a natural sort order, respecting indexes and cases.
  • Data for several new mobile devices was added to the Mobile Emulation setup in the quickstart wizard.
  • Bugs fixed:
  • An image might have been removed from the run-log in low-memory situations.
  • Fixed a sporadic exception that could appear creating a test-suite from a run-log.
  • 'Finally' nodes inside a 'Try' now get executed even when an instant rerun gets triggered from within the 'Try' node.
  • ImageWrapper methods now log warnings whenever the method fails.
  • In very rare cases the [Ctrl] key might accidently have stayed in pressed state after finishing replay.

New in QF-Test 4.7.2 (Dec 12, 2019)

  • New features:
  • The chapters Web testing and Web in the manual were rewritten from scratch. The description of the central procedure qfs.web.ajax.installCustomWebResolver can now be found in subsection 45.1.3.
  • SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.14 alias "2019-12".
  • Web QF-Test now supports tests with Opera 64 and 65.
  • Web QF-Test now also supports Microsoft Edge version 80 and newer.
  • Bugs fixed:
  • Extending a lease from the QF-Test license server could cause delays in test execution in case of temporary networking issues.
  • Fixed a problem with setting a KeyOption via the scripting API.
  • Filtering for empty values in the search result dialog could cause an exception.
  • The bin directories of QF-Test itself and the JRE that QF-Test runs with are no longer visible on the environment variable PATH that the SUT sees when started from QF-Test.
  • Printing a test-suite could sometimes cause an exception.
  • When exporting the error list or some other search result for a run-log some node names were not exported.
  • Web XPath expressions with "-characters now work correctly.

New in QF-Test 4.7.1 (Sep 20, 2019)

  • New features:
  • SWT QF-Test now supports tests for applications, which have been developed using Eclipse/SWT 4.13 alias "2019-09".
  • Windows-Tests The defined user interface scaling of windows is now optionally taken into account when executing windows tests.
  • Electron If required, QF-Test now automatically downloads support for new versions of the Electron framework.
  • Web Improved testing perfomance of WebDriver controlled browsers on Windows systems.
  • Web Improved performance of the CustomWebResolver for Primefaces.
  • Windows-Tests During Windows-tests, it is now possible to check for table components a whole row at once.
  • Jumping from resultlist to suite now also works with "Return".
  • Web Improved item scrolling performance with WebDriver browsers.
  • Web Updated the embedded geckodriver to version 0.25.0.
  • Web Supporting tests with Operadriver 76.0.3809.132.
  • Bugs fixed:
  • JavaFX The Java FX WebView tests had problems interacting with web frames, which are fixed now.
  • Windows-Tests A hierarchy of modal windows could falsely trigger a ModalDialogException during Windows tests.
  • Web On systems without active user session, replay of web mouse clicks could lead to a NullPointerException.
  • Web Web page load was not detected when the web page or framework undefined the javascript dialog methods.
  • When extensively expanding variables outside a testrun, QF-Test might have used all available memory.
  • Fixed a rare NullPointerException which could happen when using rc.checkImageAdvanced() in combination with an image in image search.
  • The standard procedure "qfs.autowin.acrobat.savePDF" could sometimes stop with message "filename field cannot be determined" because of slow network connections when opening the save dialog and cloud targets activated.
  • Web Changed the URL for remotely loaded javascript in the "qfs.web.general.integrateFirebug" procedure.
  • Web The automation infobar of Google Chrome is now also hidden during webtests with Chrome version 76 and higher on Windows.
  • Swing If the QF-Test agent is activated two times by an erroneous client specification, the connection to the SUT is now established nevertheless.
  • The qfs.database.executeSelectStatement procedure now also works for databases that require an explicit db.commit() statement.

New in QF-Test 4.7.0 (Jul 26, 2019)

  • New features:
  • Testing of Java 13 based SUTs is now supported.
  • Support was added for Electron 6.
  • Support was added for OpenWebStart.
  • The embedded Chrome browser used for QF-Driver mode was updated to CEF version 73.
  • The Opera browser is now supported up to version 62 which uses a different scheme for the associated WebDriver.
  • For web testing on Windows in WebDriver mode, display scaling is now taken into account at Windows level as well as for browser-based zooming.
  • The new method rc.getPropertyGroupNames lists the names of non-special property groups for which values are bound.
  • Bugs fixed:
  • The profile directory for testing with Microsoft Edge had the wrong name.
  • Closing a popup window could crash the Opera browser.
  • Text input for Microsoft Edge was always positioned at the end of the field.
  • A possible deadlock in Internet Explorer when loading resources for a web page was fixed.
  • Stopping a browser controlled via WebDriver could sometimes cause an (otherwise harmless) error message in the QF-Test terminal.
  • When using a custom ItemResolver for JavaFX clicks to the center of the item were not replayed correctly.

New in QF-Test 4.6.0 (Jun 18, 2019)

  • New features:
  • Web QF-Test now supports testing web applications in Opera browser on Windows, macOS and Linux.
  • Web QF-Test now also supports the new Microsoft Edge browser based on Chromium.
  • Support was added for Eclipse/SWT version 4.12 alias "2019-06".
  • Via the new methods print and println that were added to the qf it is now possible to print messages directly to QF-Test's terminal from both 'Server script' and 'SUT script' nodes, irrespective of whether the SUT output gets redirected or not and whether there's a RunContext available or the code is part of a resolver during recording.
  • The new command line argument -license.waitfor <seconds> allows waiting for a QF-Test license to become available during startup.
  • For better conformance with regulations for protection of personal data the licenseserver.log file written by the QF-Test license server now contains hashes instead of user name, host name or IP address. This can be turned off via the new command line argument -licenseserver.hashlogentries=false.
  • A "mouseButton" parameter was added to the various clickAtImage procedures in the qfs.autoscreen package of the standard library qfs.qft.
  • The new shortcut [Shift-Ctrl-Right] can be used in the parameters table of 'Procedure call' nodes to quickly create a forward - i.e. x -> $(x) - of the current variable value for the selected table rows.
  • The embedded JUnit Jupiter library was updated to version 5.4.2.
  • Bugs fixed:
  • Importing procedures from large test-suites could lead to an OutOfMemoryError.
  • Closing QF-Test in check recording mode without killing the SUT process would leave the SUT in a completely unusable state.
  • The command line argument -killRunningInstances could inadvertently terminate QF-Test processes on other machines in the local network provided those were started with -allowkilling.
  • Auto-saving test-suites could accidentally trigger re-compression of images. For test-suites with many or large images this could slow down QF-Test noticeably.
  • Reading the license file from a slow network drive could occasionally fail.
  • Opening a test-suite in Windows explorer via the context menu of the suite tab failed in case the file name contained spaces.
  • In rare cases waiting for a component during SUT startup could trigger a ClientNotConnectedException instead of the expected ComponentNotFoundException.
  • The procedure qfs.autowin.acrobat.saveAsText was updated for Acrobat version 19.12.20034.1161 and newer.
  • Variables bound in the data driver of a 'Test-step' were lost when using "continue from here" inside the 'Test-step'.
  • Output of the -licenseserver.dump* batch commands was missing information for the JavaFX engine. In addition to fixing that, information about Windows engine licenses was added, the "AWT" columns were renamed to "Swing" and information for engines that are not available in the server license is no longer displayed. These changes all apply to the interactive license administration tool as well.
  • Web Closing a popup window in Firefox or closing a browser tab in any WebDriver controlled browser could sometimes cause the entire SUT to terminate.
  • Web Frames in a popup window were not recognized correctly if the browser was connected via WebDriver.
  • Web Performance for web tests has been improved, for both QF-Driver and WebDriver connection modes. The effects are very dependent on the specific web application.
  • Web A workaround for an Electron bug now allows testing with current ChromeDriver versions.
  • Web Arguments passed to an Electron application were accidentally prefixed with "--".
  • Web Electron applications without native menus are now handled correctly.
  • Web Cleanup of browser processes has been improved even in case a browser crashes at startup.
  • Web Original third party cookie settings were not always restored correctly after closing a browser.
  • Web In a web application 'Fetch text', 'Fetch index' and 'Fetch geometry' nodes could fail with an internal error when trying to determine the value while the target node got dynamically removed from the DOM. Now the operation is retried instead.
  • Web Navigation to an anchor within the same page in JXBrowser is now handled correctly.
  • JavaFX Event replay for JavaFX is now more resilient against unexpected window focus changes on Linux, especially for menu item selections.

New in QF-Test 4.5.2 (Mar 20, 2019)

  • New features:
  • Support was added for Eclipse/SWT version 4.11 alias "2019-03".
  • QF-Test can now automatically fetch ChromeDriver libraries in case the bundled version does not match the selected browser.
  • Bugs fixed:
  • Procedure recording did not create the compound procedures for Panel components if the recording was started at Panel level instead of for the whole window.
  • Image checks now also work if the check was recorded with image compression enabled and a SecurityManager is present in the SUT.
  • An XML or XSLT library installed in QF-Test's plugin directory could interfere with report generation.
  • If a non-existing file was specified on the command line QF-Test did not bring up its main window which looked like the process was hanging.

New in QF-Test 4.5.1 (Feb 28, 2019)

  • In QF-Test 4.5.0 an SUT would no longer start if the QF-Test agent was disabled via the option Connect via QF-Test agent.
  • The path displayed for ${qftest:java} was incorrect if QF-Test was started with the command line argument -java <executable> and the <executable> parameter did not specify an absolute path.
  • The procedure qfs.autowin.acrobat.saveAsText now also works for Adobe Acrobat Reader versions 19.010.20091 and up.
  • A partial TreeTableResolver relying on the default implementation for getTreeColumn could cause a stacktrace to get printed to the client console.
  • Web In headless Chrome hard or semi-hard double clicks were not replayed correctly.
  • Web In QF-Test 4.5.0 SUT scripts for web tests could not access plugin jars dropped into QF-Test's plugin directory.
  • In SUT scripts the jniwrapper library and the autowin module were no longer accessible.
  • On Windows 7, starting a webtest in WebDriver connection mode could trigger an exception.

New in QF-Test 4.5.0 (Feb 14, 2019)

  • New features:
  • The ability to bring windows of the SUT to the foreground as needed and set the input focus is crucial for automated testing. On Windows QF-Test now uses a new, very reliable method to bring a window on top if the option Force window to the top when raising is not deactivated.
  • New entries were added to the context menu for test-suite tabs in the QF-Test workbench view: »Copy file path to clipboard« and »Show in explorer/finder/file manager«.
  • For processes started from QF-Test it is now possible to access output to the standard output and standard error streams individually via ${client.stdout.<name>} and ${client.stderr.<name>}. Combined output remains available via ${client.output.<name>}.
  • Mutual conversion operations between 'Start process' and 'Execute shell command' have been added to the context menu for tree nodes. These are especially useful because they take care of the conversion between the table with individual arguments and quoted arguments in a single command line.
  • The new procedure qfs.shellutils.exec in the standard library qfs.qft is a convenient shortcut for running a command, waiting for it to finish and storing the output in a variable.
  • The embedded Selenium WebDriver framework was updated to version 3.141.59, ChromeDriver to version 2.46 (with support up to Chrome version 73) and GeckoDriver to version 0.24.0 (for Firefox 60esr and higher, currently up to version 65).
  • The qfs.utils.email.sendEmail procedure in the standard library qfs.qft now supports SMTP over SSL.
  • It is now possible to fetch the whole text of a PDF page via a 'Fetch text' node.
  • Bugs fixed:
  • The context help menu item »What's this?« now works again for the 'Start web engine' node and its attributes.

New in QF-Test 4.4.2 (Dec 12, 2018)

  • New features:
  • Support was added for Eclipse/SWT version 4.10 alias "2018-12".
  • ChromeDriver was updated to version 2.44 (still for Chrome up to version 71).
  • Bugs fixed:
  • The license check of QF-Test versions 4.4.0 and 4.4.1 might refuse a QF-Test 4.3 license even when that license had a valid maintenance plan.
  • An SUT based on Java 9 or higher that contains references to inner classes that were not deployed with the SUT (like inner classes used only for unit tests) is now handled correctly.
  • In case of a slow server response a 'Browser HTTP request' node could cause errors to get logged in QF-Test's terminal even when the request was executed successfully.
  • When accessing the reference manual on macOS via the 'What's this?' entry in popup menus the browser did not navigate to the correct position on the target page.

New in QF-Test 4.4.1 (Oct 26, 2018)

  • New features:
  • ChromeDriver was updated to version 2.43 (for Chrome up to version 71).
  • Bugs fixed:
  • In QF-Test version 4.4.0 PDF tests accidentally required a Swing license. Now they work again regardless of the licensed engines.
  • Running QF-Test in batch mode with multiple threads using -threads <number> now also works for PDF and unit tests.
  • The QF-Test daemon did not work when using a keystore and sharing the daemonport with the normal QF-Test port for SUT communication.

New in QF-Test 4.4.0 (Oct 12, 2018)

  • The new automac module can be used to control native macOS applications at script level. It is accompanied by procedures in the package qfs.automac of the standard library qfs.qft. See chapter 28 for further information.
  • SWT Support was added for Eclipse/SWT version 4.9 alias "2018-09".
  • The 'Unit test' node can now run unit tests using the JUnit 5 "Jupiter" engine.
  • New text checks for PDF documents add the ability to check the text of an entire page with a single 'Check text' or 'Check items' node.
  • Web GeckoDriver was updated to version 0.23.0 (for Firefox up to version 62) and ChromeDriver to version 2.42 (for Chrome up to version 69).
  • The arguments of TestRunListener methods can now easily be converted to Json objects and for a TestRunEvent a call to getNode().getComponentId() now returns the QF-Test component ID of the current step. See section 46.7 for details.
  • Bugs fixed:
  • Auto-filling the comment of a procedure could accidentally drop @author information and other doctags.
  • In special cases the call to rc.toServer in a Jython 'SUT script' node could cause a NullPointerException.
  • Web The result of a 'Fetch index' step for first-level child nodes of a Tree or TreeTable component in a web application wasn't always correct.
  • Web With Internet Explorer a download triggered in a popup window could remain incomplete.
  • JavaFX Computing the name of an embedded Swing Frame based on the containing JavaFX SwingNode now also works with JavaFX 11.

New in QF-Test 4.3.2 (Sep 11, 2018)

  • Bugs fixed:
  • Raising windows on Linux systems now works more reliably.
  • If an 'Server HTTP request' node for a POST request contains parameters encoded directly in the URL, QF-Test now keeps the URL unchanged instead of moving those parameters into the body.
  • Web Deleting cookies after the browser window was opened now works in WebDriver mode too.
  • Web With Internet Explorer replay of a 'Text input' node with very long text did not work reliably.

New in QF-Test 4.3.1 (Aug 28, 2018)

  • New features:
  • Web The embedded Selenium WebDriver framework was updated to version 3.14.0 and ChromeDriver to version 2.41 (with support up to Chrome version 69).
  • The PDF client can now detect images with a shear mapping.
  • Bugs fixed:
  • The calculation of the extra feature qfs:imagehash was broken for images with an alpha channel.
  • SWT With QF-Test version 4.3.0 tests for 32bit Eclipse/SWT version 4.5 did not work on Linux.
  • When a filter was in effect for the project tree view and a test-suite that was currently not shown in that tree got modified, display of the project tree could get corrupted.

New in QF-Test 4.3.0 (Jul 26, 2018)

  • New features:
  • Testing of Java 11 based SUTs is now supported.
  • SWT Support was added for Eclipse/SWT version 4.8 "Photon".
  • SWT On Linux QF-Test now supports testing Eclipse/SWT applications in GTK3 mode (SWT version 4.6 and higher).
  • A new demo suite was added that shows how to test REST services. It is accompanied by the new manual chapter 16.
  • With the new option Create screenshots of all client windows upon error it is now possible to always capture images of all windows of all connected SUTs regardless of where an exception or error occurred.
  • SWT The new procedure qfs.swt.tree.expandCompleteTree in the standard library qfs.qft can be used to expand all nodes in an SWT tree.
  • Bugs fixed:
  • The default viewer for opening PDF documents on Linux was changed from acroread to xdg-open.
  • The PDF client now handles XObjects even if they use a Type0 font without embedded CMap. The only exception are text checks which are not possible without a CMap.
  • The wording of error messages from rc.checkEqual calls has been improved.
  • The encoding of some German characters in scripts in the qfs.qft standard library has been fixed.
  • SWT Check highlight frames for SWT applications on Windows were drawn with an offset leaving visual clutter in case a window's size was reduced so far that the menu bar was broken into two lines.

New in QF-Test 4.2.5 (Jul 11, 2018)

  • New features:
  • Web The embedded Selenium WebDriver framework was updated to version 3.13.0 and Mozilla GeckoDriver to version 0.21.0 which adds support for Firefox 61.
  • Bugs fixed:
  • Until now, settings for a user or system option that was newly introduced by a QF-Test update were dropped from the configuration files when working with an older QF-Test version. Starting with QF-Test version 4.2.5 such option settings are now always retained.
  • Web Errors shown by Microsoft Edge in a notification bar are now automatically dismissed.
  • Placing an Oracle DB driver jar with a broken manifest in the QF-Test plugin directory could interfere with loading test-suites.
  • When running QF-Test in demo mode, activating a license did not enable the save menu item immediately.

New in QF-Test 4.2.4 (Jun 14, 2018)

  • New features:
  • Web The embedded Selenium WebDriver framework was updated to version 3.12.0 and ChromeDriver to version 2.38 (with support up to Chrome version 68). Firefox version 60 is also supported.
  • Web On Windows Insider Builds QF-Test now detects and handles the new deployment model of the Microsoft WebDriver for Edge.
  • Bugs fixed:
  • The options for interactively selecting the GUI engine licenses were deactivated even in case of a mixed engine license.
  • Data drivers for very large Excel files now need less memory.
  • When exporting a Test Project from Testlink for QF-Test an existing node_order definition is now handled correctly.
  • In the report expected errors inside nested test-cases were counted as normal errors. Also, expected errors are now easier to identify in the run-log.
  • The 'Server HTTP request' node now supports empty values for HTTP headers.
  • Stopping clients now works properly on a Windows Embedded system.
  • Web Startup of Google Chrome on Linux did not work consistently in QF-Test 4.2.3.
  • Web Trying to clear a non-existing cache folder when starting Microsoft Edge could cause an exception.

New in QF-Test 4.2.3 (May 3, 2018)

  • New features:
  • Web The embedded Selenium WebDriver framework was updated to version 3.11.0 and ChromeDriver to version 2.38 (with support up to Chrome version 67), and Mozilla GeckoDriver to version 0.20.1 which adds support for Firefox 59. The 32bit Linux version of ChromeDriver was removed from QF-Test as it is no longer supported by the Chrome development team. If needed, the last available version (2.33can be downloaded manually from the ChromeDriver archive.
  • QF-Test now supports the Shadow DOM API and thus interaction with web elements that are embedded in an open ShadowRoot.
  • To bridge the gap until a full Windows engine is available for QF-Test the qfs.autowin package in the standard library qfs.qft has been extended to make use of Windows UIAutomation. It includes several new procedures to automate simple tests for native Windows applications. Please see chapter 26 for detailed information.
  • When moving the mouse cursor over the menu entry for a connected client in the »Clients« menu, the main window of the respective client gets highlighted.
  • The new variable group ${idlocal:...} is similar to ${id:...} with the added effect of enforcing component lookup in the test-suite that is current at the time of expansion. See section 7.5 for further information.
  • The debug information for component recognition in the run-log is now more readable and - like other text fields in the run-log - can be opened in an external editor via the new new keyboard shortcut [Shift-Control-Return].
  • Bugs fixed:
  • The deprecation warning dialog for Java WebStart in Java 9 or higher is now handled automatically by QF-Test
  • When refactoring or analyzing test-suites, rc.callProcedure calls are now taken into account everywhere, i.e. in every variable attribute and not just in script nodes.
  • A data-driver iteration inside a 'Test-step' can now be interrupted via a 'Break' node like any other node iteration.
  • Web Firefox in QF-Driver mode could crash on Linux when processing certain non-UTF-8-encoded strings.
  • Web For Chrome in QF-Driver mode right button mouse clicks did not work correctly in qooxdoo applications.
  • Web A missing "http:" protocol header in a proxy auto-config URL is now gets automatically corrected.
  • JavaFX Getting the name for an embedded Swing window from the enclosing JavaFX SwingNode now also works with Java update 8u171.

New in QF-Test 4.2.2 (Mar 9, 2018)

  • New features:
  • Web The embedded Selenium WebDriver framework was updated to version 3.10.0 and ChromeDriver to version 2.36 (with support up to Chrome version 66).
  • Web Mobile emulation mode now supports device-specific insets.
  • JavaFX Support was added for JavaFX SubScene components.
  • Bugs fixed:
  • Windows On Windows the wrong qftest.exe and qftestc.exe files slipped into the release bundles so that the bin directory of the JRE was still added to the front of the PATH environment variable which could interfere with SUT startup. Also, the command line argument -plugindir <directory> no longer had any effect.
  • Web When using WebDriver connection mode with QF-Test 4.2.1 in some cases the browser could no longer receive input after highlighting a component.
  • Web The webResolvers module (see section 43.2) now also supports registering a BusyApplicationDetector.

New in QF-Test 4.2.1-p1 Build 13815 (Mar 1, 2018)

  • Bugs fixed:
  • On Windows the wrong qftest.exe and qftestc.exe files slipped into the release bundles so the bin directory of the JRE was still added to the front of the PATH environment variable which could interfere with SUT startup.

New in QF-Test 4.2.1 Build 13786 (Feb 23, 2018)

  • New features:
  • Testing of Java 10 based SUTs is now supported.
  • Web The embedded Selenium WebDriver framework was updated to version 3.9.1, ChromeDriver to version 2.35 (with support up to Chrome version 64), and Mozilla GeckoDriver to version 0.19.1 which adds support for Firefox 58.
  • Web Chrome can now be started in mobile emulation mode via the new 'Procedure' qfs.web.browser.general.openMobileEmulation in the standard library qfs.qft.
  • Web Proxy settings are now also supported for Firefox and Chrome with WebDriver connection.
  • When nesting test-cases via a 'Test call' node the new attribute 'Act like a procedure call' determines how exceptions are handled inside the call. The now obsolete backwards compatibility option "Don't treat test calls inside test-cases like procedures" has been removed.
  • The new 'Procedure' qfs.utils.waitForOneOfNComponents in the standard library qfs.qft can be used to wait for one of several components to appear.
  • The 'Procedure' qfs.utils.readTextFromFile in the standard library qfs.qft can now handle different file encodings via the optional parameter fileencoding.
  • Markers and breakpoints can now be made persistent by adding the doctags @breakpoint, @red, @green etc. See section 51.1 for further information about doctags.
  • The parameters errorlevel and newerrorlevel for the @rerun doctag are now optional. See subsection 18.3.2 for details.
  • The 'Database password' attribute of the 'Database' node can now be encrypted.
  • QF-Test now supports native full-screen mode on macOS via the menu entry »View«-»Fullscreen« and the keyboard shortcut [^?-F]
  • On macOS the keyboard shortcut for reloading test-suites was changed to [?-R]
  • On Linux systems the embedded code editor now supports pasting text via the middle mouse button.
  • Bugs fixed:
  • The PDF viewer now correctly rotates PDF documents.
  • In Groovy scripts the rc.callProcedure call was broken when trying to use keyword argument syntax.
  • In Groovy scripts the rc.getNum method call inadvertently returned long instead of int.
  • In a few cases a broken system property set by QF-Test could interfere with SUT startup.
  • The bin directory of the JRE used for running QF-Test is now appended to the environment variable PATH for the SUT and not prepended as it was in QF-Test versions before 4.2.

New in QF-Test 4.2.0 Build 13502 (Jan 10, 2018)

  • The following major new features have been implemented for QF-Test version 4.2:
  • Java 9 support
  • Testing of PDF documents
  • Additional scripting language JavaScript
  • Support for Angular
  • Support for Smart GWT
  • Dedicated nodes for static and live unit tests
  • Headless web-testing
  • Testing of REST services
  • The QF-Test tutorial was rewritten from scratch
  • Changes that can affect test execution:
  • The joint functionality in the 'Start/Open browser' node has been replaced by distinct 'Start web engine' and 'Open browser window' nodes. Conversion is automatic unless the attributes of the old 'Start/Open browser' are contradictory in which case the node remains unchanged and things will work as before. Such nodes should be manually replaced with the new nodes at some point.
  • Another somewhat surprising feature for browser startup has also been deprecated: All procedures in the qfs.web.browser.startup package now require a running web engine. For backwards compatibility you can set the new parameter 'startBrowserIfNotRunning' to true in order to implicitly start a browser if necessary.
  • The implementation of the rc scripting API was unified for all scripting languages. This can lead to subtle differences with Jython boolean values converted to strings, varying between "True", "true" and "1" or "False", "false" and "0". This can affect malformed boolean tests written as a String comparison, e.g. "$(x)" == "false" instead of not $(x).
  • Boolean attributes that can be made editable via the '$' button are now evaluated as a Jython expression, same as the 'Condition' attribute of an 'If' node. This can lead to different results or script exceptions in some cases. If this breaks existing tests in just a few places the tests should be updated as this behaviour is much more flexible and consistent. Alternatively you can activate the option Don't evaluate variable boolean attributes (before 4.2) to get back the old behaviour.
  • The old 'Test' node has been deprecated and the rest of its previously unique functionality is now available elsewhere: Data drivers below test-case level can now be implemented by placing a 'Data driver' node inside a 'Test-step' node and the @noreport doctag can be used to prevent a 'Test-case' node from showing up in the report (see chapter 51 for background information about doctags).
  • The ubiquitous warnings for not-quite-perfect component recognition have been demoted to message level. The warnings can be restored by activating the option Log warning instead of message.
  • When nesting test-cases via a 'Test call' node the called 'Test-case' is treated as a procedure which can lead to subtle differences in the handling of exceptions. In case of problems the old behavior can be restored via the option Don't treat test-calls inside test-cases like procedures (before 4.2).
  • Web When using a CustomWebResolver for web applications, 'Fetch text' and 'Check text' for TextField and TextArea components now both retrieve the same text. Besides, table, tree or list cells with entries implemented as TextField or TextArea now return the displayed text so some checks may need to be updated. This fix can be disabled via the option Don't fetch text for generic classes with generic class approach (before 4.2).
  • Swing For Swing applications all tooltips are now considered empty in case the Swing TooltipManager is disabled.
  • Software that is no longer supported:
  • QFS is taking pains to support even very old software. QF-Test should still run, for example, under Windows XP or with an SUT based on Java 6 but for systems that are no longer supported by their own vendors we cannot provide full support
  • Support for Java 5 has been dropped entirely. SUTs based on Java 6 still run by automatically switching back to older Jython and Groovy versions
  • Libraries that are required for Firefox versions 44-51 and Eclipse/SWT version 3.6 and older are not part of the default installation of QF-Test. They are still being maintained, albeit with limited testing. For Eclipse/SWT 3.5 - 3.6 simply download https://archive.qfs.de/pub/qftest/swt_legacy.zip and extract the contents into the swt directory of your QF-Test installation. For support of older browsers, please get in touch with QFS via [email protected]
  • New features:
  • QF-Test can now test applications based on Java 9. This includes support for the new Java 9 module system ("Project Jigsaw") without having to resort to the "Big Kill Switch", i.e. the command line argument --illegal-access.
  • Testing PDF documents like a normal application in a dedicated PDF viewer with textual and graphical checks for individual elements.
  • JavaScript was added as new scripting language equal to Jython and Groovy for 'Server script' and 'SUT script' nodes. This encompasses the ECMAScript 8 standard and all QF-Test scripting modules like resolvers, rc or autowin are available in JavaScript.
  • Web Support was added for the popular AJAX framework Angular, including support for the UI toolkits Bootstrap and AngularJS Material.
  • Web Support was added for the AJAX toolkit Smart GWT.
  • The new 'Unit test' node can run JUnit tests and integrate the results in the QF-Test run-log and report. Tests can be implemented in Java or as scripts and run statically or dynamically in a 'live' SUT as an alternative to writing mocks.
  • Web Support was added for headless web-testing using the headless versions of Chrome and Firefox.
  • Web The 'Server HTTP request' node now supports testing REST services via the additional methods HEAD, PUT, DELETE, TRACE and CONNECT and it is now possible to specify custom headers for the HTTP request.
  • The QF-Test tutorial was rewritten from scratch.
  • The re-implemented Quickstart Wizard combines a concise workflow with an improved design.
  • The »Help«-»Info« dialog has a new tab "System info" that shows many QF-Test settings and system information.
  • Attributes like the 'Condition' condition of an 'If' node which are evaluated by the Jython interpreter now have syntax highlighting and support for code completion.
  • Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 57.
  • The command line argument -run now also works for interactive mode to directly start test-execution when running QF-Test. This is complemented by the new -suitesfile <file> argument that can be used to specify a text-file containing the test-suites and tests to execute.
  • There are new commands available for controlling QF-Test from the command line. The new batch argument -interruptRunningInstances can be used to suspend tests running in the local machine. Similarly, -killRunningInstances will cleanly terminate running instances, including interactive ones, provided they were started with the argument -allowkilling. Cleanly here means that batch tests are stopped, dependencies rolled back and run-logs are saved.
  • Windows The new Windows setup program for QF-Test adheres to the current Windows conventions for placing different kinds of files in various locations. There's still an option to use the old layout with all files in a single place.
  • Mac On macOS, application arguments can now be configured from within QF-Test.
  • Mac You can now specify a macOS app directly as the 'Executable' attribute of an 'Start SUT client' node.
  • A 'Sequence' node can now also be transformed into a 'Loop' or 'While' node.
  • Calls to deprecated procedures or test-cases are now also stroke through in the tree view.
  • The 'Load properties' node now supports loading property files encoded as UTF-8 via its new attribute 'File encoding is UTF-8'.
  • Components in the SUT are now highlighted automatically when clicking on a component or event node in QF-Test's tree, irrespective of whether the node was already selected or not. If automatic highlighting is deactivated via the option Highlight selected component in the SUT you can now trigger it explicitly via the context menu of component, event or check nodes as well as QF-Test component IDs in parameter tables and scripts.
  • The boolean values in the 'Extra feature' attributes of a 'Component' or the 'Items' attribute of a 'Check items' node can now make use of variables. Simply double-click the respective table cell to edit the value.
  • Web The new webResolvers module enables implementing resolvers in JavaScript that run directly in the browser. See section 42.2 for detailed information and examples.
  • The extra feature qfs:label now also applies to Window and Dialog components.
  • There are several new (or newly documented) command line options for overriding the directories that are relevant to QF-Test, including -userdir <directory>, -systemdir <directory>, -jythondir <directory>, -groovydir <directory>, -javascriptdir <directory>, -plugindir <directory> and -logdir <directory>.
  • Several definitions for directories relevant for the QF-Test installation have been added to the qftest property group, e.g. ${qftest:dir.log} for the directory into which run-logs are saved automatically. See section 7.5 for a detailed list.
  • The sort order of parameter tables like the 'Variable definitions' attribute of a 'Procedure call' node can now be reset to the order of the called node via the table's context menu.
  • Bugs fixed:
  • Conversion into a regular expression used on a 'QF-Test component ID' attribute now correctly differentiates between the ID and the sub-item syntax.
  • On Ubuntu Linux taking SUT thread dumps and terminating sub-processes of the SUT did not work.
  • Unicode characters outside the Basic Mulitilingual Pane (BMP) are now handled correctly.
  • Swing TooltipResolvers are now also called for non-Swing AWT components.
  • Web The procedure qfs.web.general.integrateFirebug now loads Firebug via https instead of http which prevents issues with mixed content.
  • Web In some cases the text of a MenuItem in a web application could mistakenly include the text of its sub-MenuItems as well.
  • Web Creating many embedded WebView or SWT Browser instances could lead to a memory leak.
  • JavaFX Running a JavaFX based SUT via WebStart could cause some IllegalAccessExceptions.
  • JavaFX Names for the tabs of a JavaFX TabPanel now take possible so-called Graphic elements into account.

New in QF-Test 4.1.6 Build 12827 (Oct 27, 2017)

  • New features:
  • Web The embedded Selenium API was updated to version 3.6.0, ChromeDriver to version 2.33 (with support up to Chrome version 62), and Mozilla GeckoDriver to version 0.19 which adds support for Firefox 55 - 57.
  • Web Window and Panel nodes from the supported AJAX toolkits now have a dedicated title check.
  • Bugs fixed:
  • A workaround was implemented for a bug in the Linux JRE 8_152 that could cause QF-Test to hang during startup.
  • Swing A Swing based SUT started remotely via the procedure qfs.daemon.startRemoteSUT did not connect if the option Connect via QF-Test agent was deactivated in the daemon.
  • JavaFX Support was added for interaction with the JavaFX HTMLEditor component, including checks for its raw HTML code and the displayed text.
  • Web When recording HTTP requests, some special characters were not saved with the correct encoding.
  • SWT Handling of frames in the SWT embedded Browser now works again.

New in QF-Test 4.1.5 Build 12001 (Aug 10, 2017)

  • New features:
  • The embedded Chromedriver was updated to version 2.31 (version 2.30 for Linux; with support up to Chrome version 60), and Mozilla Geckodriver to version 0.18 which includes support for Firefox 54 and higher.
  • Bugs fixed:
  • A race condition in the load testing demo suite has been fixed.
  • The code completion window for scripts was accidentally showing up in the run-log.
  • The procedure qfs.utils.files.readExcelFile in the qfs.qft standard library now correctly handles Excel files containing empty rows.
  • A Groovy GString returned from a resolver method is now converted correctly to a Java string for further processing.
  • A regression in the performance of component recognition based on qfs:label has been fixed and performance of Swing tests has improved in general.
  • When executing manual tests based on the suite ManualTestRunner.qft the size and location of ManualStepDialog windows is now preserved.
  • JavaFX: A modal JavaFX dialog that got opened during replay of a WINDOW_CLOSING event could lead to a DeadlockTimeoutException.
  • JavaFX: The editable check was missing for JavaFX ComboBoxes.
  • JavaFX: Support for the JavaFX SplitMenuButton has been improved so that clicks on the main button and the arrow button are recorded differently.
  • Web: Creating many JxBrowser instances could lead to a memory leak.
  • Web: Waiting twice for the same web page to load did not fail as expected in case the page was not refreshed in between.
  • Web: Playback of a selection event on a list in Firefox with QF-Driver mode now triggers a change event only in case the list selection really changes.

New in QF-Test 4.1.4 Build 11359 (Jun 2, 2017)

  • New features:
  • Support for Eclipse/SWT 4.7 "Oxygen" has been added.
  • The embedded Selenium WebDriver framework was updated to version 3.4.0, ChromeDriver to version 2.29 (with support up to Chrome version 58) and GeckoDriver to 0.16.1 which includes support for Firefox 53 and higher.
  • Support for the AJAX toolkit Qooxdoo has been updated to latest generic class concept.
  • When continuing test execution after a break, the bottom-right view now automatically switches from the variables to the terminal.
  • Tabs in the project view now have a context menu and can be closed via a middle button click.
  • The manual chapter about modifying the CustomWebResolver for AJAX toolkits has been updated to match the latest state of development (section 40.4).
  • The procedure qfs.autowin.acrobat.saveAsText now automatically handles the protected mode warnings by clicking "Enable all functions".
  • By using the new method resolvers.addSpecificExtraFeatureMatcher to register an ExtraFeatureMatcher with the resolvers module, the feature name can be specified at registration time.
  • Bugs fixed:
  • A possible NumberFormatException - introduced in QF-Test 4.1.3 - for batch mode execution with -verbose [<level>] has been fixed.
  • In some cases using the advanced replace dialog to replace the regular expression .* with an empty string could lead to an exception or to table entries being deleted without confirmation.
  • TestLink import scripts could have been broken in case of unicode characters in test-case names of TestLink.
  • When text containing double quotes got pasted from the system clipboard to variables or any other table the double quotes could get lost.
  • When determining extra feature qfs:label for ComboBox, Spinner or Slider components, the tool tip could mistakenly get used instead of the nearest label.
  • The @rerun doctag was not properly evaluated in a node with additional lines in the comment.
  • The command line argument -plugindir <directory> was ignored in batch mode.
  • Selecting a component via the chooser might create an explicit reference even though the component was part of an included test-suite.
  • Explicit component references within the local test-suite were not taken into account when looking for unused components.
  • Analyzing references of relative test-calls didn't work correctly.
  • Duration and realtime are now updated correctly when merging run-logs.
  • In case the fallback library for Jython version 2.5 is installed the Jython package cache now gets activated by default as it was in QF-Test version 4.0.
  • If the option Intelligent scrolling in trees was deactivated there were cases when the selected node was not scrolled visible in the tree at all, e.g. after a search or when entering the debugger.
  • In some cases custom mappings of classes were not taken into account for testing with AJAX resolvers.
  • The libraries required for hardware accelerated graphics in the embedded Chrome browser were removed again because they could cause a crash when opening a popup window.
  • Caching of non-standard attributes in the embedded Chrome browser was broken in QF-Test version 4.1.3 which could lead to component recognition issues in special cases.
  • Many debug messages from GeckoDriver and Mozilla Marionette are now filtered from the shared terminal.
  • In some cases clearing the browser cache during startup could cause Edge to hang for up to several minutes.
  • The entry for showing available methods was missing from the menu for JavaFX component recording.

New in QF-Test 4.1.3 Build 11019 (Mar 29, 2017)

  • New features:
  • A major focus for this release is performance, especially for web testing. It has been drastically improved for WebDriver mode and JxBrowser and also significantly for web testing in general. The extent of some of the effects depends on the actual application and its implementation.
  • Thanks to the performance improvements, recording in WebDriver mode has stabilized and should now produce the same results as in QF-Driver mode.
  • Recording and replay of mouse double clicks is now more intuitive and consistent across all GUI engines. In the past, a 'Mouse event' node with event type 'Mouse click' and 'Click count' set to 2 was shown as a 'Double click' event, even though it was only the second of the two clicks required to simulate a double click. Such nodes are now called 'Followup click' and there is a new event type 'Double click' that properly simulates all the individual events for a complete double click in a single node.
  • Test-suites can now be closed by clicking on their tab with the middle mouse button.
  • The procedure qfs.database.executeSelectStatement in the QF-Test standard library qfs.qft has been improved with respect to the usage of a property group for the result set. The group is now cleared before being populated with the current result and the number of records is available via the property 'count'.
  • It is now possible to configure fallback values for placeholders in the template file for recording procedures.
  • QF-Test now shows the full path to the current test-suite as well as the QF-Test version in the title bar of the main window. This can be reduced to just the file name via the option Show complete file path and QF-Test version in the title bar.
  • WebDriver was updated for the latest Firefox and Chrome versions and QF-Test is now also compatible with the version of Microsoft Edge Browser shipped with the upcoming Windows 10 "Creators Update".
  • Bugs fixed:
  • Up to now resolvers were registered globally, applying to all GUI engines, which could lead to unwanted side-effects in hybrid applications. By setting the 'GUI engine' attribute in the 'SUT script' node that registers the resolver it is now possible to restrict the resolver to the desired engine.
  • QF-Test now works around an issue in Jython 2.7 that prevented QF-Test startup in case the user's home directory contained international characters.
  • Groovy was updated to version 2.4.8 which fixes a leak of PermGen space in Java 7.
  • When stopping recording too quickly, the last recorded events, checks, components or procedures could get lost. Synchronization with the SUT has been improved so that this should now happen only in cases of extreme load.
  • When switching between projects the expansion state of the tree nodes in the project view was lost.
  • Summary output of a batch run with -verbose [<level>] did not conform to the information displayed in the status bar and in the report.
  • JxBrowser components with preloaded content are properly handled now.
  • 'Text input' nodes now also work for embedded browsers (FX WebView, JxBrowser and SWT embedded browsers) if 'Replay single events' is deactivated. Replay of single events also mostly works, but the events have to be simulated as hard events which is currently possible on Windows only.
  • Some TEXT nodes in a web application were treated as disabled in WebDriver mode.
  • After page modifications the WebDriver-API did not always assign the correct QF-Test component for a WebDriver element.
  • Closing a secondary window of an Edge browser could inadvertently terminate the whole browser process. Also, browser shutdown in WebDriver mode has been improved for all browsers.
  • Several issues for the embedded WebView browser in JavaFX have been fixed, including mutation handling, refresh and goto commands and return values from evalJS.
  • Firefox settings are now only made persistent in the test profile if the system property "qftest.web.mozilla.save_profile" is set to true during browser startup.
  • The QF-Test installation now includes libraries for the embedded Chrome browser in QF-Driver mode that are required for hardware accelerated graphics.

New in QF-Test 4.1.2 Build 10590 (Jan 24, 2017)

  • New features:
  • SWT Support for Eclipse/SWT 4.6 "Neon" has been updated for Eclipse version 4.6 SR2.
  • Note: The mechanism for auto-scaling SWT-based UIs on high-DPI monitors is still deactivated by default when the SWT plugin is instrumented by QF-Test. The property to re-enable it has been renamed to swt.autoScale in SWT version 4.6 SR2.
  • Resolvers are a panacea for all kinds of component recognition problems. To make them easier to write QF-Test 4.1 introduced an updated resolvers module which is now complemented by a rewrite of which makes resolvers more accessible than ever.
  • The names of all registered resolvers can now be retrieved by calling the method resolvers.listNames().
  • When performing automatic re-run of nodes, the beginning of an attempt is now logged as both a message and an annotation. The doctags for automatic re-run have been extended to enable catching a specific exception and to suppress log messages. See section 16.3 for further information.
  • The 'QF-Test ID' of a 'Test-case' or 'Test-set' node can now be retrieved at test execution time via ${qftest:testcase.id} or ${qftest:testset.id}.
  • It is now possible to transform 'Check items' into 'Check selectable items' nodes and vice versa.
  • If the value for the command line argument -usercfg <file> or -systemcfg <file> points to a directory, the configuration file is now read from or created within the specified directory.
  • When editing options QF-Test now shows a warning in case a configuration file cannot be written.
  • Bugs fixed:
  • QF-Test now logs a warning in case the engine of a component retrieved by calling rc.getComponent in an 'SUT script' node does not match the engine executing the script. Starting with the medium upgrade QF-Test 4.2 this will cause an exception. Trying to pass a component of the wrong GUI engine to rc.overrideElement leads to an exception right away.
  • When editing the details of a node and closing the test-suite without confirming the edit first, the changes were discarded.
  • In case a resolver fails with an exception, other registered resolvers are executed anyway, like they were in QF-Test 4.0.
  • QF-Test now removes temporary files created by WebDriver implementations.
  • JavaFX Cells in custom Table components with non-standard cell ordering are addressed correctly now.
  • SWT QF-Test could cause a deadlock in Eclipse/SWT applications with multiple Display instances.
  • Web When fetching the geometry of items in a web application the values for the parent component were retrieved instead.
  • Web For web applications leading and trailing whitespace is now removed from names returned from NameResolvers.
  • Web Automatic scrolling for image checks on items was broken in web applications.

New in QF-Test 4.1.1 (Jan 24, 2017)

  • New features:
  • The project view now comes with a filter at the top of the tree that matches on test-suite names and limits the hierarchy accordingly, which is very useful for quickly finding test-suites in large projects.
  • On macOS all keyboard shortcuts should now be conforming to Mac standards and use Mac-friendly modifier keys.
  • Web Selenium WebDriver was updated to version 3.0.1.
  • The documentation and samples for keyword driven testing have been extended with a new example for behavior driven testing (BDT, see section 21.4).
  • The parameters for the @rerun doctag were extended to include a newerrorlevel=keep option and the new keepfirst parameter. See subsection 16.3.2 for further information.
  • The 'Execution timeout' attribute is now also available for 'Test-step' nodes.
  • Bugs fixed:
  • QF-Test did not start if the Java version for QF-Test was still instrumented by an older QF-Test version (pre 4.1). Though JRE instrumentation has been deprecated for many years, such a case is still possible. QF-Test now detects that situation and helps with deinstrumentation of the JRE.
  • The test for busy panes was missing when performing a check using the generic retry mechanism introduced in QF-Test 4.1.0.
  • When interactively selecting a component for an event node the current target was not pre-selected in the chooser dialog.
  • Trying to update failed checks from the error list after closing the originating run-log caused an unexpected exception.
  • When using the databinder.bindList API for performing data-driven testing, QF-Test now ignores empty lists instead of running a single iteration without data.
  • When importing test results into TestLink, skipped test-cases are now correctly reported as skipped.
  • The former WebDriver API was renamed to WebDriverConnection (see section 40.2) to avoid confusion with Selenium's WebDriver object.
  • The error message for expiration of a -timeout <milliseconds> command line argument of a batch call now clearly refers to the -timeout <milliseconds> argument instead of the root node of the test-suite.
  • In large projects editing component IDs in parameter tables no longer causes delays while QF-Test is looking for the component to highlight.
  • When searching through a project with an invalid regular expression many errors messages were shown instead of just one.
  • Short timeouts for visible false checks on components were not honored.
  • Swing If the option Instrument AWT EventQueue is active, QF-Test now establishes a connection with the awt:security engine in case Java WebStart shows an authentication dialog. Please note that in such a case the 'GUI engine' attribute of the 'Wait for client to connect' node must be set to awt:security.
  • Web Class resolution for AJAX toolkits was broken for some special cases.
  • Web The editable check didn't work for TextFields in the PrimeFaces toolkit.
  • Web When recording a click that triggers an alert dialog in WebDriver mode, the order of the recorded events was not always correct.
  • Web Auto-detection for AJAX toolkit resolvers has been improved. It now prints concise messages to the terminal and cleanly handles the case when no toolkit is detected.

New in QF-Test 4.1.0 (Oct 10, 2016)

  • New features:
  • The re-run capabilities are now officially available and documented in section 16.3.
  • The QF-Test Jenkins plugin was updated for Jenkins version 2.1.
  • On macOS QF-Test now uses the standard key bindings for that system. Users that prefer Windows bindings (or simply have gotten used to QF-Test's non-Mac bindings) can keep them via the command line argument -keybindings=classic.
  • The QF-Test macOS App now includes a bundled JRE so manual JRE installation is no longer required.
  • Support for the AJAX toolkit Vaadin was updated so that the Vaadin resolver can now be customized as described in section 40.5.
  • When debugging tests, QF-Test now shows a warning when 'Continue execution from here' is attempted on a node that is not part of the current execution stack as doing so would lose the current variable bindings.
  • Chooser dialogs now include a search filter.
  • It is now possible to directly highlight the target component via the popup menu for QF-Test IDs contained in variable tables or rc.getComponent statements in SUT scripts.
  • Bugs fixed:
  • The QF-Test Java Configuration Tool (qfconfig) always displayed the default Java program upon startup.
  • The small arrows showing tree node execution state were not always displayed correctly.
  • Errors resulting from execution timeout are now shown correctly in the report.
  • In WebDriver mode QF-Test now avoids starting two Chrome instances with the same user profile directory.
  • Jars in the QF-Test plugin directory could interfere with the startup of a WebDriver based SUT.
  • Alerts can now be handled on all WebDriver based browsers.

New in QF-Test 4.1.0 RC 2 (Sep 13, 2016)

  • New features:
  • Groovy was updated to version 2.4.7. QF-Test now requires at least Java 7 unless Groovy is rolled back to version 2.1.0 as explained in subsection B.1.2.
  • Web WebDriver support is significantly improved and performance is much better. Firefox 48 and higher now also work as Selenium was upgraded to support for Firefox Marionette.
  • Web For web QF-Test now supports component resolution using XPath and CSS selectors. See Addressing via XPath and/or CSS-Selectors for details.
  • The procedure qfs.utils.xml.compareXMLFiles was improved with better filtering and the ability to ignore missing tags or attributes when specified in the "noCheck" parameter.
  • Web On Windows, 'Text input' nodes can now be replayed for JXBrowser.
  • The procedure qfs.utils.email.sendEmail in the standard libray qfs.qft now also supports attachments.
  • Jython was modified to catch and suppress NotImplementedErrors caused by implementing only parts of an interface which was OK with Jython 2.5. This behavior can be modified by setting the system property qftest.workarounds.abstractMethodsHandling to one of the values "ignore", "warning", "error" or "exception".
  • Bugs fixed:
  • JavaFX Uncaught exceptions on the JavaFX application thread were correctly reported by QF-Test, but in some cases they were not passed on which might hide bugs in the SUT or at least prevent testing the SUT's own handling of uncaught exceptions.
  • Occasionally a call to DaemonLocator.locateInstance(long timeout) might locate a daemon, but "forget" it again before returning the result after the timeout was reached.

New in QF-Test 4.1.0 RC 1 (Sep 13, 2016)

  • New features:
  • Web The new browser connection mode based on Selenium WebDriver adds support for additional browsers including Firefox 44 and up, Edge and Safari as well as Chrome now also on Linux and macOS.
  • Selenium scripts can now be run from inside QF-Test and mixing of QF-Test and Selenium tests is possible. See section 40.2 for how to access the WebDriver API from 'SUT script' nodes.
  • QF-Test now officially supports Swing, JavaFX and Web testing on macOS. A dedicated installer is available.
  • Jython was updated to version 2.7.0. QF-Test now requires at least Java 7 unless Jython is rolled back to version 2.5.1 as explained in subsection B.1.2.
  • By using our new license server mechanism, licenses can now be floated globally instead of just across the local network. If interested, please get in touch with QFS via [email protected].
  • Web 64 bit browsers are now supported on all systems.
  • Web Support was added for the AJAX framework Kendo UI.
  • Many existing AJAX resolvers were updated and generalized and are now easier to customize. See Special support for various AJAX toolkits and Customizing QF-Test for your AJAX toolkit for further information.
  • Web In QF-Driver mode QF-Test can now synchronize web tests based on outstanding HTTP requests. This is controlled via the options Synchronize with HTTP requests, Timeout for HTTP request synchronization (ms) and Extended HTTP request timeout for new documents (ms).
  • Swing The new connection mechanism for Swing works out-of-the-box in many of the problematic cases with Java WebStart, applets or custom EventQueues. It can be disabled via the option Instrument AWT EventQueue.
  • The maximum execution time for sequences, test-cases, test-sets or whole batch runs can now be limited via the attribute 'Execution timeout (ms)' and the command line argument -timeout .
  • Run-logs can now be merged as described in Merging run-logs.
  • Event replay for all engines now uses an approach we call Generic Retry that better handles timing issues, especially components that vanish or get replaced just while QF-Test was trying to access them.
  • Variable expansion is now also possible in a static context so that jumping from a procedure call like checksFor${qftest:testcase.name} to the correct procedure simply works. QF-Test caches the most recent variable values from the last execution so this is useful even for dynamic bindings.
  • The various date nodes like 'Database' or 'Excel data file' can now also be executed outsided a data driver context in order to bind the values directly as variables instead of iterating over the sets. In that case the 'Name' attribute of the node also defines the name of the properties group into which the variables are bound.
  • Swing Support for JXBrowser was updated to JXBrowser version 6.
  • Depending on screen layout it may be preferable to use more space for the tree or for the terminal in QF-Test's user interface. The new menu item »View«-»Terminal«-»Prefer tree over terminal« toggles whether tree or terminal should occupy the lower left region.
  • Improved packing of mouse events should result in cleaner recordings with fewer stray events. For special cases where individual MOUSE_PRESSED or MOUSE_RELEASED events are preferable, disable the option Simplified 'Mouse click' recording.
  • Several chapters in the manual were added (Keyword-Driven Testing with QF-Test, Performing GUI-based load tests) or rewritten (Organizing the test-suite, 'Dependency' nodes and Pseudo DOM API).
  • The embedded script editor now supports the keyboard shortcuts [Shift-Up/Down] to move one or more selected lines up or down and , [Shift-Return] to add a new line after the end of the current line.
  • There is a new toolbar button for opening the most recent run-log.
  • Failed boolean checks have a more specific error message that includes the type of check.
  • The DOMProcessor extension API now also supports modifying summary documents.
  • Script APIs are being unified in preparation for additional scripting languages. Implementing and registering resolvers is now easier and more flexible and the autowin and ssh modules are now also available in Groovy.
  • Web There is now a generic string check type for DOM node attributes that can be read via getAttribute. Simply set the 'Check type identifier' to attribute:NAME where NAME is the name of the attribute to check.
  • Pressing [Ctrl-C] in the project tree or on the root node of a test-suite copies the path of the test-suite to the system clipboard.
  • Locating references now also works for 'Package' nodes. The resulting list contains references to all 'Procedures' in the respective hierarchy.
  • Pasting nodes in a test-suite is more flexible. If the current location is not suitable for the kind of node to be pasted but the target is implicitly clear, the node gets automatically inserted at the correct position.
  • Web The version of the Chrome browser provided with QF-Test for QF-Driver mode web tests was update to CEF 45.
  • The procedures qfs.utils.getDate, qfs.utils.getTime and qfs.check.compareDates in the standard library qfs.qft now all have parameters to specify the locale to use for formatting.
  • All getRowCount procedures for Swing, JavaFX and SWT trees have been reworked to provide the number of visible rows. The new parameter "countOnlyVisibleNodes" limits the search to visible rows below a given node. Also added were procedures ...tree.getChildNodeCount with a similar functionality and ...tree.check.checkChildNodeCount for checking the number or child nodes of a node.
  • The directory for exchanging files with an external editor can now be explicitly specified via the option Directory passed temporary files to external editor.
  • Some of the tables in QF-Test detail views were rearranged to increase visibility. Besides, all tables now support adding a new row by double-clicking in the empty area of the table.
  • Bugs fixed:
  • JavaFX Updates to the ID of a JavaFX node were not tracked correctly.
  • JavaFX The "imagehash" extra feature is now also implemented for JavaFX.
  • Internal storage of images in test-suites and run-logs is now much more memory-efficient.
  • Web Tests for enabled DOM nodes now also take enclosing FIELDSET nodes into account.
  • Web Association of labels via the "for" attribute is now better supported.
  • Using the debugger command "Continue from here" on a 'Procedure' called from different test-suite could mess up the current execution context.

New in QF-Test 4.0.11 (Apr 7, 2016)

  • New features:
  • Support for Eclipse/SWT 4.6 "Neon" has been added based on Eclipse version 4.6M6.
  • Note: The new mechanism for auto-scaling SWT-based UIs on high-DPI monitors is not supported by QF-Test yet and is deactivated by default when the SWT plugin in instrumented by QF-Test. It can be forced active by setting the system property swt.enable.autoScale=true but in that case test execution will be limited.
  • In case of an error or exception on Windows, information about the current Windows session is now added to the diagnostic log entry in the run-log. This should help understanding failures caused by a locked session as described in the FAQ "Hard mouse events and drag'n'drop operations do not work flawlessly, components cannot be found, the run-log contains black or corrupt screenshots. What do I have to take care about for test execution?".
  • 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.
  • A few keystrokes for certain characters - e.g. '.' - were not replayed correctly as single events in QF-Test's Chrome browser.
  • 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.

New in QF-Test 4.0.10 Build 8179 (Jan 29, 2016)

  • New features:
  • 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.
  • 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.
  • Using rc.overrideElement in a web based SUT could cause a NullPointerException in some special cases.
  • Thanks to miscellaneous performance fixes, tests for large web pages should run a bit faster, most notably on Firefox.

New in QF-Test 4.0.9 Build 7784 (Dec 19, 2015)

  • New features:
  • 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.
  • 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.
  • Synchronization with JavaFX events during replay has been further improved.
  • Text input in a browser could get recorded as a mix of text input and keystroke events.
  • For the AJAX framework ZK it is now possible to check the enabled/disabled state of TabFolder items.
  • Recognition of web components was broken in case of leading or trailing whitespace in the name of a FRAME node.
  • Setting the browser's user agent during startup now also works for Chrome.

New in QF-Test 4.0.8 Build 7453 (Nov 11, 2015)

  • New features:
  • Support was added for Firefox version 42.
  • 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.} 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 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.
  • 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.
  • 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.
  • In special cases registration of the Ext JS resolver could delay startup of a web application up to 20 seconds.
  • 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.

New in QF-Test 4.0.7 Build 6914 (Aug 28, 2015)

  • New features:
  • Support was added for Firefox version 41
  • 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
  • For some JavaFX components ItemName- and ItemValueResolver were either not separated cleanly or had no effect
  • 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
  • Replay of a selection event on a CCombo element used inside a Tree or Table cell could fail due to focus issues
  • Internet Explorer 10 and older could crash, deadlock or weirdly misbehave when running in quirks mode on pages with many nested IFRAMEs
  • QF-Test's embedded Internet Explorer now treats Javascript code in href attributes in the same way as the normal Internet Explorer

New in QF-Test 4.0.6 Build 6561 (Jul 24, 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. Microsoft's new browser Edge is not supported yet.
  • Experimental support was added for Firefox version 40.
  • 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.
  • Bugs fixed:
  • JavaFX Tables and TreeTables with invisible columns are now handled correctly.
  • 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.
  • Custom headers in JavaFX table columns are now handled correctly.

New in QF-Test 4.0.5-p2 Build 6460 (Jul 24, 2015)

  • New features:
  • Experimental support was added for Firefox version 40.
  • Bugs fixed:
  • 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.
  • Firefox version 38.1 ESR was not recognized correctly by QF-Test 4.0.5.

New in QF-Test 4.0.5-p1 Build 6342 (Jun 25, 2015)

  • New features:
  • Support for Eclipse/SWT 4.5 has been updated for today's release of Eclipse 4.5 "Mars"

New in QF-Test 4.0.5 Build 6136 (May 13, 2015)

  • New features:
  • Support was added for Firefox versions 38 and 39.
  • A new standard check for tool-tips has been added.
  • 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.
  • Event replay for Swing, which was noticeably slower in QF-Test version 4.0.4, is now back to normal speed.
  • In a few special cases the replay of mouse events on JavaFX menus was broken with Java 8 update 40.
  • 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.
  • A possible deadlock for combined Swing and FX applications with a shared event dispatch thread has been fixed.
  • 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.
  • In some cases, the check recording mode in the Chrome browser was not exited cleanly so that subsequent event recording failed.
  • Due to a rounding issue, image checks in the Chrome browser were sometimes one pixel off.
  • When checking text in web applications, combinations of NBSP and normal space were not always resolved correctly.
  • The QF-Test browser was leaking memory when a nested FRAME or IFRAME was unloaded during page navigation.

New in QF-Test 4.0.4-p1 Build 5422 (Mar 24, 2015)

  • Bugs fixed:
  • On Windows Firefox 36 and 37 could crash when recording checks.

New in QF-Test 4.0.4 Build 5877 (Mar 5, 2015)

  • New features:
  • QF-Test now supports testing 64bit versions of Firefox on Linux.
  • Dedicated support was added for the AJAX UI framework jQuery EasyUI.
  • Support for Firefox has been updated to match the public release of Firefox version 36 and support for Firefox version 37 has been added.
  • Support for Eclipse/SWT 4.4 "Luna" has been updated for the Eclipse 4.4 SR2 release.
  • 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 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 .
  • 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.
  • 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.
  • 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.
  • 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.
  • Chrome is now able to record 'Server HTTP request' and 'Browser HTTP request' nodes.
  • Chrome could crash when navigating to a previously visited page anew.
  • In some cases auto-expansion of tree nodes in Chrome could cause a deadlock.
  • 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.
  • The AJAX toolkit jQuery UI was not handled by the auto-detection mechanism for AJAX resolvers.

New in QF-Test 4.0.3 Build 5738 (Jan 29, 2015)

  • New features:
  • Support for Firefox has been updated to match the public release of Firefox version 35 and support for Firefox version 36 has been added.
  • 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.
  • Support for Eclipse/SWT 4.5 "Mars" has been added based on Eclipse version 4.5M4.
  • Recording of Drag&Drop is now implemented for Java FX also.
  • In addition to Java FX components embedded in Swing, hybrid applications that work the other way round and embed Swing components in Java FX are now also supported. This includes support for sharing the same event dispatch thread between Java FX 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:[email protected] 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.
  • 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.
  • When recording in Swing applications with a great number of deeply nested components, performance could suffer severely.
  • In Swing applications running on Java 8, bringing up the menu for check recording could subsequently block input into text fields.
  • 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.
  • For hybrid Java FX 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.
  • Replaying a file selection in Java FX for a save dialog now also sets the ExtensionFilter to match the chosen file's extension.
  • Trying to record a check directly on the header of an SWT Table caused an exception.
  • Third-party plugins and extensions were not initialized correctly for Firefox 30 and above.
  • Resolving list items now also works for nodes and generic ComboBox elements that are located in another list.
  • 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.
  • Playback of semi-hard mouse events with modifiers like [Ctrl] has been fixed.
  • Checks for table cells in KTable components were not recorded correctly.

New in QF-Test 4.0.2-p2 Build 5343 (Dec 2, 2014)

  • New features:
  • 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:
  • In QF-Test version 4.0.2-p1 the user agent string returned by Firefox browsers was incomplete.

New in QF-Test 4.0.2-p1 Build 5334 (Nov 12, 2014)

  • Bugs fixed:
  • Support for Firefox version 33 was updated to cope with the new Firefox versioning scheme introduced with Firefox 33.1.

New in QF-Test 4.0.2-RC1 Build 5275 (Oct 17, 2014)

  • New features:
  • Support was added for Firefox versions 33 and 34.
  • Support for Eclipse/SWT 4.4 "Luna" has been updated for the Eclipse 4.4 SR1 release.
  • Support for Java FX 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.
  • Java FX Charts are now fully supported with improved representation of the component parts and various dedicated checks.
  • Support for the AJAX toolkits Ext JS and PrimeFaces has been updated to include support for Ext JS version 5 and PrimeFaces version 5.
  • 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.
  • 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.
  • 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.
  • Startup for WebStart and applets has been made more robust, including a fix for a ClassCastException occasionally seen in applets.
  • The newly introduced support for custom tab components assigned via JTabbedPane.setTabComponent could break replay of existing recordings.
  • Cells of a Nebula Grid component can now be recorded correctly from a scrolled location and also addressed via negative indexes.
  • 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.
  • 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.
  • Waiting for a dynamically inserted FRAME and its document to be loaded now works correctly in all browsers.
  • 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.
  • 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.
  • The Chrome browser now displays a confirmation dialog when a window gets closed and an onbeforeunloadhandler is defined.
  • Component and procedure recording in the Chrome browser is considerably faster.
  • The embedded Chrome browser can now show videos.
  • Double click events are now correctly recorded in the Chrome browser.

New in QF-Test 4.0.0 Build 5250 (Jul 31, 2014)

  • New features:
  • 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.
  • 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.
  • 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:
  • 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.
  • 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.
  • Column header cells in JavaFX tables are now addressed correctly.
  • CheckBox elements inside JavaFX table cells or tree nodes are now recorded with the new @:CheckBox item syntax.
  • The check for the editable state of TextField, PasswordField and TextAreas nodes was missing for web clients.
  • A selection in a ComboBox that initiated a navigation to another page could cause Internet Explorer to crash.
  • Check recording in the browser did not work in an area covered by an invisible IFRAME.
  • Event synchronization for the AJAX toolkit Ext JS now handles modal dialogs correctly.
  • Replay of text input for INPUT elements of type "number" has been fixed.
  • When defining proxy settings for Internet Explorer via the qfs.web.browser.settings.doStartupSettings procedure, proxy.pac files were not handled correctly.
  • 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.
  • The "All lines" check for Swing JTextArea components was not recorded correctly when clicking below the first line of text.
  • 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.

New in QF-Test 3.5.7 Build 5077 (Jul 23, 2014)

  • New features:
  • Support was added for Firefox versions 31 and 32.
  • Eclipse / SWT support was added for Eclipse version 4.4 "Luna".
  • The command line arguments -exitcodeignorewarning, -exitcodeignoreerror and -exitcodeignoreexception are now also available in calldaemon mode. These options are helpful for integration with continuous integration tools like Hudson/Jenkins or TeamCity as the exit code of a QF-Test batch run can be forced to 0 even in case of warnings, errors or exceptions.
  • Bugs fixed:
  • 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.
  • 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.
  • The check for the editable state of INPUT:TEXT, INPUT:PASSWORD and TEXTAREA nodes was missing for web clients.
  • The "All lines" check for Swing JTextArea components was not recorded correctly when clicking below the first line of text.
  • When canceling an edit in the detail view or adding a new node, QF-Test now checks whether modifications were made and asks for confirmation before discarding those.
  • When toggling the disabled state of the selected node, modifications made but not confirmed in the detail view were silently discarded.
  • 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.

New in QF-Test 4.0.0-RC1 Build 5222 (Jul 5, 2014)

  • 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.
  • 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.
  • Generic classes are now also implemented for standard HTML nodes even without a dedicated AJAX resolver.
  • Support for the AJAX toolkit RichFaces was updated to RichFaces version 3.
  • Support for Eclipse/SWT has been updated for Eclipse version 4.4 "Luna".
  • 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 .
  • 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. When such a bookmark is selected, the file selection dialog is opened directly for this directory.
  • Bugs fixed:
  • Multiple instances of the Chrome browser can now run simultaneously on one machine.
  • Performance, stability and supported feature set for browsers embedded via Java FX WebView and JxBrowser were improved.
  • 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 Java FX 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.

New in QF-Test 3.5.6 Build 5067 (Apr 30, 2014)

  • New features:
  • Support was added for Firefox versions 29 and 30.
  • The new 'Procedure' qfs.web.browser.mozilla.cleanupProfileDir in the standard library qfs.qft attempts to remove redundant and broken files (most notably places.sqlite) in the Firefox profile directory used for testing (/.qftest/mozProfile by default). The procedure is called automatically during the standard startup sequence via the call to qfs.web.browser.settings.doStartupSettings.
  • Bugs fixed:
  • The warning dialog for duplicate IDs in a test-suite is no longer shown in batch mode.
  • An Excel 2010 sheet with a cross-sheet reference to a pure number is now handled correctly by the 'Excel data file' node.
  • In some web pages content inside an IFRAME could not automatically be scrolled to the correct location for replaying a hard mouse event or performing an image check.
  • The print dialog is now shown correctly in Firefox.
  • The fix for Java 8 focus handling in QF-Test version 3.5.5 could cause a very subtle issue in focus behavior for popup windows.

New in QF-Test 4.0.0-beta2 Build 5163 (Apr 12, 2014)

  • 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
  • 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
  • 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:
  • Thanks to improved focus management replay for JavaFX on Linux should be more reliable now, especially selection of menu items
  • 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

New in QF-Test 4.0.0-beta1 (Apr 12, 2014)

  • New features:
  • 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.
  • Support was added for the AJAX framework jQuery UI.
  • Eclipse/SWT support was added for the Eclipse 4.4 "Luna".
  • 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.
  • 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
  • The new qfs.fx package holds a full set of procedures for interacting with JavaFX components.
  • The new qfs.utils.ssh package provides procedures for client-side ssh connections.
  • There's a new check utility procedure called qfs.check.checkValueInRange.
  • Various new procedures for interacting with Swing components:
  • qfs.swing.checkbox.deselectWithCoordinates
  • qfs.swing.checkbox.selectWithCoordinates
  • qfs.swing.checkbox.setWithCoordinates
  • qfs.swing.general.clickAtComponentWithDetails
  • qfs.swing.general.doClickWithDetails
  • qfs.swing.general.waitForComponent
  • qfs.swing.general.waitForComponentForAbsence
  • qfs.swing.list.clickItemWithDetails
  • qfs.swing.menu.selectItemWithCoordinates
  • qfs.swing.menu.selectSubItemWithCoordinates
  • qfs.swing.menu.setCheckItemWithCoordinates
  • qfs.swing.menu.setSubCheckItemWithCoordinates
  • qfs.swing.menu.selectMenuItemInHierarchyWithCoordinates
  • qfs.swing.menu.selectCheckMenuItemInHierarchyWithCoordinates
  • qfs.swing.popupmenu.clickItemWithDetails
  • qfs.swing.popupmenu.selectSubItemWithCoordinates
  • qfs.swing.popupmenu.setCheckItemWithCoordinates
  • qfs.swing.popupmenu.setSubCheckItemWithCoordinates
  • qfs.swing.radiobutton.selectWithCoordinates
  • qfs.swing.table.checkbox.deselectWithCoordinates
  • qfs.swing.table.checkbox.selectWithCoordinates
  • qfs.swing.table.checkbox.setWithCoordinates
  • qfs.swing.table.clickCellWithDetails
  • qfs.swing.tree.clickNodeWithDetails
  • qfs.swing.tree.collapseWithCoordinates
  • qfs.swing.tree.collapseNodeWithCoordinates
  • qfs.swing.tree.expandWithCoordinates
  • qfs.swing.tree.expandNodeWithCoordinates
  • qfs.swing.tree.expandNodesWithCoordinates
  • Various new procedures for interacting with SWT components:
  • qfs.swt.checkbox.deselectWithCoordinates
  • qfs.swt.checkbox.selectWithCoordinates
  • qfs.swt.checkbox.setWithCoordinates
  • qfs.swt.general.clickAtComponentWithDetails
  • qfs.swt.general.doClickWithDetails
  • qfs.swt.general.waitForComponent
  • qfs.swt.general.waitForComponentForAbsence
  • qfs.swt.list.clickItemWithDetails
  • qfs.swt.menu.selectItemWithCoordinates
  • qfs.swt.menu.selectSubItemWithCoordinates
  • qfs.swt.menu.setCheckItemWithCoordinates
  • qfs.swt.menu.setSubCheckItemWithCoordinates
  • qfs.swt.menu.selectMenuItemInHierarchyWithCoordinates
  • qfs.swt.menu.selectCheckMenuItemInHierarchyWithCoordinates
  • qfs.swt.popupmenu.clickItemWithDetails
  • qfs.swt.popupmenu.selectSubItemWithCoordinates
  • qfs.swt.popupmenu.setCheckItemWithCoordinates
  • qfs.swt.popupmenu.setSubCheckItemWithCoordinates
  • qfs.swt.radiobutton.selectWithCoordinates
  • qfs.swt.table.checkbox.deselectWithCoordinates
  • qfs.swt.table.checkbox.selectWithCoordinates
  • qfs.swt.table.checkbox.setWithCoordinates
  • qfs.swt.table.clickCellWithDetails
  • qfs.swt.tree.clickNodeWithDetails
  • qfs.swt.tree.collapseWithCoordinates
  • qfs.swt.tree.collapseNodeWithCoordinates
  • qfs.swt.tree.expandWithCoordinates
  • qfs.swt.tree.expandNodeWithCoordinates
  • qfs.swt.tree.expandNodesWithCoordinates
  • Various new procedures for interacting with web components:
  • qfs.web.checkbox.deselectWithCoordinates
  • qfs.web.checkbox.selectWithCoordinates
  • qfs.web.checkbox.setWithCoordinates
  • qfs.web.general.clickAtComponentWithDetails
  • qfs.web.general.doClickWithDetails
  • qfs.web.general.waitForComponent
  • qfs.web.general.waitForComponentForAbsence
  • qfs.web.list.clickItemWithDetails
  • qfs.web.radiobutton.selectWithCoordinates
  • qfs.web.table.clickCellWithDetails
  • 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 [email protected].
  • 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.

New in QF-Test 3.5.5-p1 Build 5050 (Apr 12, 2014)

  • In a Jython SUT script, importing a Java class from the SUT could lead to the error "RuntimeError: maximum recursion depth exceeded".

New in QF-Test 3.5.5 (Apr 12, 2014)

  • New features:
  • Support for Firefox version 27 was updated and new support added for Firefox version 28
  • 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
  • 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
  • Proxy settings for Internet Explorer are now application-local, so even after a crash the system proxy settings remain unchanged
  • The user agent for Internet Explorer 11 is now reported correctly by QF-Test's embedded browser
  • Firefox confirmation dialogs for closing or navigating away from a web page are now handled correctly and can be interacted with
  • 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

New in QF-Test 3.5.4 (Apr 12, 2014)

  • New features:
  • Support was added for Firefox versions 26 and 27.
  • Support for the AJAX toolkit ZK was updated for ZK version 7.
  • Synchronization with AJAX HTTP requests was improved for the toolkits ExtJS, ICEfaces, PrimeFaces and ZK.
  • 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.
  • An exception caused by a special kind of HTML table with no columns in the header has been fixed.

New in QF-Test 3.5.3 Build 5007 (Sep 18, 2013)

  • New features:
  • Support was added for the AJAX toolkit ICEfaces.
  • QF-Test can now automatically detect whether a web page is based on one of the supported AJAX toolkits and installs the respective resolver.
  • 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.

New in QF-Test 3.5.2 Build 4969 (Jul 2, 2013)

  • 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:
  • Eclipse/SWT support was updated for the final Eclipse version 4.3 "Kepler".
  • 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.
  • 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.
  • The recently added support for ZK and PrimeFaces was fine-tuned and fixes subtle problems with specific Trees, TreeTables and other components.
  • Associated labels of Swing components, recorded as "qfs:label" extra feature, are now used for generating the '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.

New in QF-Test 3.5.1 Build 4900 (May 15, 2013)

  • 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:
  • New support was added for the AJAX toolkits PrimeFaces and ZK and support for Eclipse RAP was updated to RAP version 2.0.
  • Eclipse/SWT support was added for Eclipse version 4.3 "Kepler".
  • 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.
  • 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.

New in QF-Test 3.5.0 Build 4836 (Mar 20, 2013)

  • New features:
  • Support was added for Firefox version 20.
  • 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.
  • The '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.
  • 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.
  • 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 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.
  • Firefox on Linux no longer crashes on shutdown.
  • For some MIME types downloading files did not work correctly with Firefox.
  • Checks for the enabled state could fail in Internet Explorer if the state was set via Javascript.
  • 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, 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.

New in QF-Test 3.5M3 Build 4717 (Jan 9, 2013)

  • New features:
  • Support was updated for Firefox versions 18 and 19.
  • The project concept now includes support for sub-projects.
  • 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.
  • 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.
  • Geometry of events relative to an SWT Shell now includes the window title and borders.
  • 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.
  • 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.
  • Closing the browser window of Internet Explorer 10 could cause the browser to deadlock instead of terminate.
  • 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.
  • 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.

New in QF-Test 3.5M2 Build 4661 (Nov 16, 2012)

  • New features:
  • Eclipse/SWT support was updated for Eclipse versions 4.2.1 and 3.8.1.
  • Daemon communication is now secured via SSL. Manual chapter 40 explains 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 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.
  • Replaying certain events in batch mode could switch QF-Test into recording mode, causing weird problems and significant loss of performance.
  • Timing for startup of Java WebStart based SUTs has been further improved to significantly increase the stability of this setup.
  • Some focus transitions were not triggered correctly when replaying events in a browser.
  • The filename shown in a download dialog was not always correct.
  • Downloads in a Vaadin based SUT could cause an exception.
  • Internet Explorer 10 now reports the correct version information.
  • Recording of drag and drop operations on CTabFolders in Eclipse 4.2 was broken.
  • 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.

New in QF-Test 3.5M1 Build 4621 (Oct 29, 2012)

  • New features:
  • With the introduction of projects, large sets of test-suites become much more manageable and updating reverse includes is now mostly a thing of the past.
  • The increasingly popular AJAX toolkit Vaadin is now fully supported.
  • 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.
  • 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.
  • 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 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.

New in QF-Test 3.4.11 Build 4584 (Oct 4, 2012)

  • 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.
  • Support was added for Firefox version 17.
  • 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:
  • Downloads of large files were sometimes truncated.
  • 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 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.
  • Toolbar icons for QF-Test's browser wrapper are now transparent and no longer look horrible on Windows 7.

New in QF-Test 3.4.10 Build 4545 (Aug 7, 2012)

  • New features:
  • 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:
  • Crashes of IE and Firefox were further reduced.

New in QF-Test 3.4.9 Build 4514 (Aug 7, 2012)

  • New features:
  • Eclipse/SWT support was added for Eclipse "Juno" versions 4.2 and 3.8.
  • Support was added for Firefox version 14.
  • Several new transformation options for nodes in the test-suite were introduced.
  • Bugs fixed:
  • A significant memory leak in QF-Test's browser wrapper was plugged.
  • Several causes for browser crashes were fixed, both for Internet Explorer and Firefox.
  • Component recognition now also works correctly with components recorded in a flat hierarchy, even if the web page contains FRAME nodes.
  • The progress bar in Internet Explorer always remained visible even when a page was completely loaded.
  • If the path for the Firefox installation directory contained special characters, Firefox could not be started correctly from QF-Test.
  • 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.

New in QF-Test 3.4.8 (Aug 7, 2012)

  • New features:
  • Support was added for the current Firefox version 13
  • Eclipse/SWT support was added for Eclipse versions 3.8M7 through 3.8RC2 and experimental support for Eclipse version 4.2M7 through 4.2RC2
  • 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
  • Enabled checks did not work correctly with Internet Explorer 9 running in IE 7 compatibility mode
  • Firefox could crash when closing a browser window
  • When recording procedures the calls for SELECT elements were created incorrectly

New in QF-Test 3.4.7 (Aug 7, 2012)

  • New features:
  • 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.
  • 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.

New in QF-Test 3.4.6 (Aug 7, 2012)

  • New features:
  • Eclipse/SWT support was added for Eclipse versions 3.7.2 and 3.8M6 and experimental support for Eclipse version 4.2M6.
  • The 'Procedures' qfs.swt.ctabfolder.closeTab and qfs.swt.ctabfolder.checkTabIsDirty now also support Eclipse 4.
  • 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.
  • QF-Test's handling of Javascript errors could cause Internet Explorer to crash.
  • 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.
  • Use of a special API in Internet Explorer can lead to very subtle deviations in Javascript execution. QF-Test no longer uses this interface.
  • 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.

New in QF-Test 3.4.5 (Aug 7, 2012)

  • New features:
  • Support was added for the current Firefox version 11.
  • The new 'Procedure' qfs.client.sendInput in the standard library qfs.qft can be used to send text to the standard input of a process started by QF-Test.
  • Bugs fixed:
  • A race condition between termination of and receiving output from a process running on a remote machine could cause some of the process' output to get lost.
  • Cancelling a long search in a large test-suite did not work reliably.
  • Empty variable values in the 'Name' or 'Feature' attribute of a 'Component' are now interpreted correctly as "ignore name" or "ignore feature" instead of looking for "an empty name" or "an empty feature" which was bound to fail.
  • The QF-Test daemon was not registered at the default port when started without the argument -daemonport .
  • SUTs that use RMI with a custom implementation of the Service Provider Interface (SPI) failed to connect to QF-Test.
  • The combination of running multiple threads with the argument -threads in batch mode and connecting to a sub-process of the SUT with $(client):2 did not work correctly.
  • QF-Test now works around a problem with a missing MSVC manifest in Firefox 10, causing an error message about incorrect loading of the C runtime library.
  • Firefox 10 crashed when navigating to about:plugins.
  • A download triggered at Javascript level via a link starting with '#' caused the browser window to close.

New in QF-Test 3.4.4 (Aug 7, 2012)

  • New features:
  • Support was added for current versions of Firefox 9 and 10.
  • Eclipse/SWT support was added for Eclipse version 3.8M5 and experimental support for Eclipse version 4.2M5.
  • 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.
  • 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.
  • 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.
  • If an alert dialog was shown after closing a modal browser window, the main browser window could remain blocked after closing the alert.
  • Javascript errors in Internet Explorer were not logged correctly in QF-Test's run-log.
  • In some cases the initial loading of a web page did not succeed.
  • Highlighting the selected component in a browser on Linux has been improved.
  • Web pages with a Flash element were sometimes not displayed correctly on Linux.
  • The name recorded for file upload on Linux contained the Windows file separator character '\'
  • 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)"

New in QF-Test 3.4.3 (Aug 7, 2012)

  • New features:
  • 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
  • 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

New in QF-Test 3.4.2 (Aug 7, 2012)

  • New features:
  • 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
  • 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
  • QF-Test now supports capture and replay of "expand" and "collapse" events for SWT ExpandItems
  • Bugs fixed:
  • 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"
  • Direct execution of Javascript code now also works in Internet Explorer 9 despite stronger security restrictions
  • The AJAX resolver for GWT has been updated to version 1.4.0 to fix filtering of nodes from the component hierarchy
  • Opening a modal popup window could crash Firefox 6 on Windows
  • Double clicks are now recorded correctly in Internet Explorer
  • A 'Fetch text' node for a node now retrieves the text of the selected node and 'Fetch text' nodes for 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

New in QF-Test 3.4.1 (Aug 7, 2012)

  • New features:
  • Full support was added for Firefox 5 and experimental support for Firefox 6.
  • 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.
  • QF-Test can now handle custom SWT components that hide their child Widgets by overriding getChildren() to return an empty array.
  • Support was added for ExtJS version 4 and for RichFaces version 4.
  • The 'As regexp' attribute of 'Window' and 'Component' nodes can now be defined as a variable value.
  • 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 'When raising windows, try to force them to the top'.
  • 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 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.
  • 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 in batch mode.
  • A forced download triggered via a special PHP construct could cause Internet Explorer to crash.
  • Clearing the cache for Firefox did not always work correctly.
  • Trying to record a check for an XML document displayed in Internet Explorer could crash the browser.
  • 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.
  • QF-Test was leaking resources when taking Screenshots in an Eclipse/SWT SUT.
  • Calling Display.asyncExec from a timer could crash Eclipse on Linux Gtk with 64bit.
  • 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.

New in QF-Test 3.4.0 (Aug 7, 2012)

  • New features:
  • 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 capabilites 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 [], 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 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 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.
  • The AJAX resolver for GWT has been updated to version 1.2.0. It now filters irrelevant nodes from the component hierarchy and has improved support for obfuscated GWT class names.
  • 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.
  • Check image' nodes now work correctly in Firefox 4.0.
  • Scrolling an element visible was not always possible in IE9 and some special cases with a deeply nested hierarchy.
  • In IE9 nodes were not highlighted properly and highlighting could interfere with recording image checks.
  • Browser settings for IE9 did not always take effect.
  • 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.