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 the squishrunner 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.

  • 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 the 7-zip tool by the jar 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 the qul.ini file. The following QUL tool setting keys are available:
    • STM32 devices: Programmer and GDBServer
    • NXP devices: LinkServer
    • ESP32 devices: EnvScriptPath

Source Packages/Building from Source

  • The --with-pydir configure option, deprecated since Squish 7.0, has been removed. Users building squishrunner 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 theconfigure 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.

Search Results