Version 9.1
Squish 9.1 is a major release that delivers new features, bug fixes, and usability improvements to all editions of the product.
See the following sections for a detailed list of changes.
Squish AI Assistant
Squish AI Assistant is a new extension of the Squish IDE that leverages large language models (LLMs) in order to help users improve their test scripts, explain test failures and analyze test logs. It can be configured to access LLMs from OpenAI, Mistral AI and PrivateGPT. The extension can be downloaded from the QA Software section of the Qt Customer Portal and added to the Squish IDE.
Dynamic Support for Multiple Python Versions
Starting with this release, Squish binary packages ship a single Python interpreter (3.10) in order to reduce the package size and ease maintenance. However, Squish can now be configured to dynamically support a variety of external Python interpreters:
- 2.7 (deprecated)
- 3.8 (Windows only)
- 3.9 - 3.12
This change greatly simplifies working with external Python and adds a level of flexibility that was previously achievable only with custom-built binary packages or external configuration tools. See the Scripting section below for more details.
Support for Espressif ESP32 MCU devices in Squish for Qt Quick Ultralite
Automated testing of applications built with Qt Quick Ultralite (QUL) is now possible on a new MCU target board: Espressif ESP32. The following functionality is implemented: recording and replaying test cases, flashing a testable AUT onto the board as well as configuring access to 3rd party vendor tools in the Squish IDE and command-line.
Qt Quick Ultralite 2.11 or newer is required for automated testing on ESP32 devices. See the QUL section below for more details.
General
- Replaced instances of exploitable
GetTempPath
Qt API across all Squish components with more secure alternatives. The previous API potentially allowed symlink and malicious file attacks on Windows and could lead to unauthorized access and privilege escalation (CVE-2025-4211) - Minimum system requirements change for Squish tools: Debian 11 or newer is now required on Linux arm64.
- Fixed a problem where environment changes related to script interpreter libraries (Perl, Python, Ruby, Tcl) would leak into the environment of AUT processes. AUTs using these script interpreters would in rare cases fail to start or function normally when launched by Squish.
- Launching certain command-line tools on Windows no longer starts an auxiliary process (typically for
foo.exe
, such a process would be named_foo.exe
). This change may affect scripts or automated workflows that rely upon identifying or terminating these auxiliary processes. It applies to the following tools:- convertvp
- correlationcompare
- nchcompare
- processcomm
- servermonitor
- simplecompare
- squishconfig
- squishidl
- testvp
- wrapperexpl
- With the
squishrunner
--skip-testcase
option, it is now possible to specify both test case name as well as an absolute path to the test case directory as an argument. Test case names or paths that are not part of the test suite are treated as errors. - The
vpdiff
tool now supports named command-line arguments that can be provided in random order. Previously used positional arguments are deprecated, but preserved for compatibility. - On Linux, compatibility symlinks
$(SQUISH_PREFIX)/bin/squishide
and$(SQUISH_PREFIX)/bin/remotecontrol
have been removed. Use scripts, app bundles of the same name from the top-level$(SQUISH_PREFIX)
installation directory instead.
IDE
- Fixed an issue with unnecessary scrollbars appearing in the model-based testing (MBT) editor even if the editor content fit the window.
- Improved presentation of incomplete test cases in MBT editor where a step number would display overlapped with the red error (X) icon.
- Fixed a problem displaying test results where a test ended prematurely due to AUT hook-up failure.
- Cleaned up the inventory of translatable strings that previously caused multiple warnings to be printed to stderr when the Squish IDE was started from the command-line.
- Editing paths to MCU vendor tool is now possible in the Squish IDE. A new preferences page (Edit > Server Settings > QUL Settings) was added for this purpose. See QUL section below for equivalent command-line tools.
Scripting
- The squishconfig command-line tool can now be used to configure Squish to use an external Python installation for test execution. This method of configuration replaces PythonChanger external script that should no longer be used for this purpose.
- Fixed a crash in
squishrunner
on Windows that occurred when a JavaScript, Python or Ruby test script ran into an endless recursion. These script interpreters now abort the endless recursion and raise an exception instead of crashing thesquishrunner
process. - Fixed a problem with reading external table data in BDD feature files (
'From'
keyword) when the table file name or path contained non-ASCII characters on Windows. - Fixed a crash where a BDD feature file would reference a non-existent or inaccessible table data file in XLS or XLSX format.
Qt
- Fixed a problem with object look-up of a custom QtQuick item with
source
property. - Fixed a problem with recording on
QtQuick.Controls
combobox that can be opened either by a click on an arrow indicator or a click on a content label. While activating the arrow indicator would record normally, the interaction with the content label would not be registered by Squish. - Added a new set of embedded source packages -
squish-9.1.0-qt{$version}-wasm-multithread.zip
- that enable building Squish from source against multi-threaded Qt for WebAssembly. Previously, this was only possible for single-threaded WebAssembly. These source packages are provided Qt for WebAssembly 6.5 and newer.
Web
- Improved error handling and reporting (a pop-up with a detailed error message and error code) in the browser extension installation process. This feedback helps users identify the problem where an installation of the Chrome extension would hang indefinitely because of stale
SingletonLock
files in the Chrome profile directory. - Fixed a failure of object name look-up inside HTML object container. This change also resolves a problem with embedded web views containing Shadow DOMs inside Qt, Java, Android and macOS AUTs, as Shadow DOM object names rely on referencing another HTML object as a container.
- Added initial support for automating local HTML files, with the exception of the following operations that are not are implemented:
- Interaction with
<iframe>
elements - Reading and processing PDF files by the embedded plugin
- Opening new browser tabs with local file URLs
This feature is currently limited to the Firefox browser and using the
attachToBrowser
function. - Interaction with
- Fixed a problem with installing the Chrome browser extension into Chrome or Chromium 136 or newer. Test executions would fail in these browsers if the
startBrowser
function was used as well.
Windows
- Added a new Squish for Windows binary package with 64-bit
squishrunner
. The new package -squish-9.1.0-windows-win64.exe
- enables Windows users to use external 64-bit Python interpreters and modules. It is available in the download area. Both Squish for Windows packages (this one and the pre-existing one -squish-9.1.0-windows.exe
) support testing 32- and 64-bit Windows applications.
Java
- Squish for Java now fully supports automating Java AUTs built with SWT 4.35 or newer, and Eclipse RCP 2025-03 or newer.
- Fixed a problem where replaying automated tests of Java AUTs built with SWT 4.35 or newer would hang and eventually time out, aborting the test execution.
Android
- Automating AUTs on Android 16 is now fully supported.
- Fixed a problem with instrumentation of Android applications on devices or emulators that are older than the target SDK version of the package to be instrumented.
- Fixed a problem with instrumentation of Android applications on Windows. Instrumentation failed with a
7-zip
error, indicating that the file it attempted to modify was used by another process. This was resolved by replacing external dependency on the7-zip
tool by thejar
tool provided by the official JDK.
Qt Quick Ultralite (QUL)
- Improved detection of MCU debug probes. The QUL wrapper now identifies known debug probes and matches them to serial port device nodes using
libudev
, replacing the previous implementation that inspected USB interfaces and the/sys
file system. squishrunner
--info
and {–config} commands have been extended to support displaying and configuring paths to external MCU vendor tools, stored in thequl.ini
file. The following QUL tool setting keys are available:- STM32 devices:
Programmer
andGDBServer
- NXP devices:
LinkServer
- ESP32 devices:
EnvScriptPath
- STM32 devices:
Source Packages/Building from Source
- The
--with-pydir
configure option, deprecated since Squish 7.0, has been removed. Users buildingsquishrunner
and its Python support from source are encouraged to pass the path to a Python interpreter via the--with-python
option instead. - The
configure
script has now merged support for building with Python 2.7 and Python 3.x into a single set of options. The--with-python
option now accepts multiple comma- or semicolon-separated paths for building support for multiple Python versions at once. Options (--enable-python3
and-with-python3
) have been removed. - Building
squishrunner
with Python support now requires Python 2.7 or newer. - Embedded extension for Wayland/Weston compositor can now be built with Weston 11.0 - 14.0 with the following limitations:
- Object highlighting does not work on Weston 11.0 or newer due to new Weston surface requirements that the Squish object highlighter cannot fulfill.
- Native screen recording does not work on Weston 13.0 or newer due to changes in Weston that prevent Squish from listening to display update events. We use polling of screenshots for screen recording instead.
Notice of Deprecation
- Support for building from source with Qt 4 and Qt 5.5 or older is now deprecated and scheduled for removal in one of the future Squish release. Warnings to that effect will be printed by the
configure
script. - Support for building from source on FreeBSD is now deprecated and scheduled for removal in Squish 9.2.0.
- The
xml2jira
command-line tool is deprecated and will be removed in one of the future Squish releases (9.2.0). Users are encouraged to consider using Test Center for linking Squish test results to Jira. work items. - Python 2, deprecated since Squish 8.0, has been removed and is no longer shipped with Squish binary packages. For more information about migrating test suites to Python 3 and the best migration practices, refer to previous release notes.
- Starting with this release, Windows 7 is deprecated as a platform for installing Squish binary packages due to increasing effort to maintain software for an operating system that has been retired by its vendor for more than 5 years.
With Python 2 removed from Squish binary packages (see previous note in this section) and its alternative (Python 3.10) not supported on Windows 7, binary packages for all editions can still be installed on the platform, but they will come with no pre-configured Python script interpreter. Squish can however be set up to use an external installation of Python 2.7 or 3.8. See Scripting sections above to learn how.
Customers that still automate their GUI tests on Windows 7 are encouraged to reach out to Qt Support Center to discuss alternative options for their individual case.
© 2025 The Qt Company Ltd.
Documentation contributions included herein are the copyrights of
their respective owners.
The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.
Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property
of their respective owners.