On this page

How To Test Applications on MCUs

To automate testing of Qt Quick Ultralite (QUL) applications on microcontroller units (MCUs), the following software and hardware are required, with optional items clearly indicated:

  1. Squish Enterprise license
  2. Squish for MCU package for Linux or Windows
  3. Supported MCU board, optionally with a debug probe
  4. Serial/UART connection to the MCU board, or USB connection to the debug probe
  5. mcu-vendor-tools MCU vendor tools for the MCU board (optional)

To get the most out of image-based test automation, we recommend installing and configuring one of the supported OCR engines too.

Hardware prerequisities

Supported MCU target boards for automated testing

For an MCU board to support automated testing of QUL applications, Qt Quick Ultralite provides Device Link implementation for that specific hardware. Device Link is required to enable communication between the host and the device and Squish for MCU leverages it to:

  • inject user input (e.g. touch events)
  • capture screenshots for image-based verification
  • exchange performance and logging data needed for debugging and test execution

To determine whether a particular board supports test automation with Squish for MCU, consult the official Qt for MCUs platform support documentation, which is the authoritative reference. For MCU platforms without Device Link implementation, Qt for MCUs step-by-step porting guide contains instructions how to implement Device Link support yourself.

For basic device connectivity and image-based automated testing, a serial/UART connection is sufficient. However, Squish for MCU also provides convenience features, such as flashing the AUT onto the device and resetting the AUT to its initial state before a test begins. These operations rely on MCU vendor tools and we recommend using them together with a debug probe and USB connection for reliable communication.

Vendor-specific debug probes (e.g. an NXP board paired with an NXP probe) are preferrable, as third party probes such as J-Link are not yet part of our testing.

Software prerequisities

MCU vendor tools

Installing MCU vendor tools is optional. Without these tools, however, some of the convenience features of Squish for MCU (notably flashing the AUT onto the MCU device and resetting the AUT) are not available. For testing with these features, only a subset of vendor tools is required rather than the full package as follows:

  • LinkServer for MCUs (can be installed as a part of MCUXpresso IDE)
  • STM Cube Programmer command-line interface
  • STM Cube Programmer GDB server
  • Espressif IoT development framework

For an authoritative reference on supported version of these tools for each board, consult the Qt for MCUs {https://doc-snapshots.qt.io/qtformcus-dev/qtul-prerequisites.html} {list of prerequisities}. The location of vendor tools on the PC can be set during Squish for MCU installation, and the installer also provides download links for convenience.

Updating locations of MCU tools and drivers

After Squish for MCU is installed, the paths to MCU tools can be adjusted using two techniques, explained in the next 2 sections.

Updating MCU tools (Squish for MCU) and drivers with squishrunner

The squishrunner command can be used to change the locations of the MCU tools. This approach requires a currently running squishserver process.

The current configuration can be viewed with the following command:

$ ./squishrunner --info mcuSettings
St-Link Programmer      /usr/local/st/stm32cubeclt_1.18.0/STM32CubeProgrammer/bin/STM32_Programmer_CLI
St-Link GDBServer       /usr/local/st/stm32cubeclt_1.18.0/STLink-gdb-server/bin/ST-LINK_gdbserver
NXP     LinkServer      /usr/local/LinkServer_25.7.33
Esp     EnvScriptPath   /usr/local/esp/esp-idf/export.sh

The configuration can be changed through squishrunner with the --config command.

$ ./squishrunner --config mcuSettings <vendor>:<tool>=<value>

These vendor/tool settings are supported:

  • St-Link:GDBServer
  • St-Link:Programmer
  • NXP:LinkServer
  • Esp:EnvScriptPath

For example:

$ ./squishrunner --config mcuSettings NXP:LinkServer=/usr/local/LinkServer_25.7.33

Updating locations of MCU tools and drivers in qul.ini

You can edit the qul.ini file to update, add or remove paths. This file is located in the Squish User Settings ver1/ Directory.

The following is an example qul.ini file. Please be aware that the backward slash \ on Windows must be escaped with a preceding backward slash.

[St-Link]
GDBServer=C:\\MCUTools\\STM\\STLink-gdb-server\\bin\\ST-LINK_gdbserver.exe
Programmer=C:\\MCUTools\\STM\\STM32CubeProgrammer\\bin\\STM32_Programmer_CLI.exe

[LinkServer]
InstallPath=C:\\MCUTools\\NXP\\LinkServer

© 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