Wecome to another edition of our newsletter. Today we have some exciting highlights for you in the following topics:
1. QF-Test Major Release 6.0 with Android, SmartIDs and much more 2. New Articles and Videos 3. Better Together: User Groups for Talking About QF-Test 4. Next QF-Test Training Dates 2022 5. Release Notes for QF-Test Version 6.0
1. QF-Test Major Release 6.0 with Android, SmartIDs and much more
It's done. QF-Test 6.0 is finally ready for release.
The main headline is support for testing Android applications. The familiar features and concepts of QF-Test can be applied to creating tests for Android applications on virtual and real devices with ease and efficiency.
At least as relevant is the new concept of SmartIDs, which are an alternative way of addressing components. SmartIDs encapsulate relevant information directly in the component ID so that component nodes become optional. The idea is to keep simple things simple and use the full range of information in component nodes only for the tricky cases. This paradigm shift is still under development and deserves its own major release, but in response to the enthusiastic customer feedback on the existing functionality and stability we are making it available now in the form of a - fully supported - preview feature.
The SmartID concept has also paved the way for integration of QF-Test with Robot Framework, letting fans of Robot Framework implement their keywords via QF-Test procedures. The tool integration carried out with a pilot customer will be presented at the RoboCon conference (May 19-20, 2022).
Among the many other improvements, the following stand out: You can now run QF-Test itself with Java 17 for vastly improved display on scaled monitors, QF-Test reports have been revised with a more modern look, screenshots for the run-log are taken of relevant screens only and duration indicators assist in analyzing the time spent during tests. Major version updates like the switch to Groovy 4 or support for testing Java 19 become mere side-notes in the detailed release notes in section 5 below or online.
3. Better Together: User Groups for Talking About QF-Test
This is a topic which has been on our minds for some time. Recently, a couple of customers got in touch with us asking for more in-depth exchange with other users of QF-Test – especially with those working with comparable applications and facing similar challenges.
Would you like to participate in some kind of user group? Get in touch at firstname.lastname@example.org and let us know the types of applications you're testing, for example ERP systems. After the last newsletter, a few interested people have already contacted us about the following topics:
Testing Angular based Web applications
In Switzerland, the Swiss Meetup has been a regular event for over a year now, focusing on the exchange of QF‑Test customers working primarily in the Syrius environment.
And of course you can always book training or consulting individually for you and your company usually at your site or the appointment takes place via webinar.
5. Release Notes for QF-Test Version 6.0
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.
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.
Display and responsiveness of the highlights in check mode were significantly improved for CDP-Driver and WebDriver connection mode.
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.
Text retrieval with CDP-Driver connection mode has been greatly improved and the DOM hierarchy is now consistent with other connection modes.
Performance of image checks in headless browsers has been improved.
QF-Test now supports multiple parallel downloads in web-tests with CDP-Driver connection mode.
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.
The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 100.
Support for JxBrowser versions 7.23 and 7.24 was added.
The bundled cdp4j library has been updated to version 5.5.0.
The bundled GeckoDriver was updated to version 0.31.0.
The method FrameNode.getFrameElement() was added to the pseudo-DOM API of QF-Test.
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.
The embedded UI automation library has been updated to version 0.7.0.
On macOS the occasionally showing message dialogs about Safari browser automation are now handled automatically by QF-Test and no longer block test execution.
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.
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.
QF-Test might crash when replaying hard key events on macOS.
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>].
Detection of the Chrome window for semihard clicks has been improved.
For current Opera versions in WebDriver connection mode QF-Test now supports automatic download of the required ChromeDriver version.
The window of an electron application was inadvertently resized upon startup when tested with CDP-Driver connection mode.
Popups were not recognized when testing an Electron application in CDP-Driver connection mode.
Changes that can affect test execution
Support for running Firefox using QF-Driver connection mode, which is limited to Firefox versions 43 and lower, has been deprecated for removal in a future QF-Test version. Please consider using current Firefox versions with WebDriver connection mode instead.
Support for running Internet Explorer, which has officially reached end-of-life, has been deprecated for removal in a future QF-Test version.
Support for testing Opera using WebDriver connection mode has been deprecated for removal in a future QF-Test version. Please use CDP-Driver connection mode instead.
When testing web applications in CDP-Driver or WebDriver connection mode, slottable nodes are no longer referenced as direct children of the WebComponent node, but as children of their assigned slot node. This is unlikely to break existing tests, but if it does, please contact QFS support.
The way QF-Test internally addresses table columns in a Swing JTable was changed from model-based to view-based. This has no effect if table columns or cells are addressed with a textual index @... or %... or if the order of the columns in the table view and model is identical. In case a test based on numeric column indexes &... fails you can either update the column index or restore the previous functionality with an SUT script of the form rc.setOption(Options.OPT_SWING_TABLE_USE_VIEW_COLUMN, false).
The internal API of the UI automation library has been reworked to simplify class names (e.g. "AutomationWindow" became "Window"). If you use the uiauto module directly in your scripts and reference class names directly, you may need to adapt the class names according to the supplied JavaDoc.
Quality First Software GmbH Bürgermeister-Graf-Ring 10 82538 Geretsried Germany
Managing directors: Gregor Schmid, Karlheinz Kellerer