Qt 6.4 is out now! Scale your UX to the next level with the all-new 3D physics engine and Qt for WebAssembly. Read more.
最新版Qt 6.3已正式发布。 了解更多。
最新バージョンQt 6.3がご利用いただけます。 詳細はこちら

Why Squish is the best choice for GUI testing

The Squish GUI Test Automation Tool makes it easy to test applications across a range of platforms. Its support for Qt is excellent.

Testing user interfaces before your applications are released is more essential than ever. People have come to expect a seamless cross-platform experience from their mobile, desktop, web and embedded applications. With applications often running in places like factories, cars and even kitchens, there’s a safety aspect to testing too.

But testing user interfaces can be complicated, frustrating and time consuming. 

This is why several thousand companies across dozens of industries have turned to automating their tests with Squish from froglogic, a company acquired by Qt in 2021. Squish allows you to run functional regression and system tests across multiple platforms – without needing to modify the code.

Test apps for desktop, mobile, embedded and more


The UI-technology capabilities of Squish provide broad support for automated GUI testing of Windows, Mac, Java and web-based applications. Squish also supports the testing of apps developed for mobile platforms, including Android and iOS.

Creating test scripts with Squish is easy. You can either write the test case using a standard programming language like Python, JavaScript, Ruby, Perl or Tcl. Or you can test with the Behavior-Driven Development (BDD) approach (BDD) we support through the human-readable language Gherkin.

We’ve built recording and playback functionality into Squish too. The tester simply presses a record button and performs the testing actions within the app. Squish then automatically translates these actions into a test script. It’s an easy way to get started with Squish.

Extensive support for verification and recognition tests


Good GUI testers should offer a variety of verification types, so that regardless of the testing scenario you’re able to verify the expected test outcome. 

Squish allows you to verify by object property, or do a screenshot comparison. For complex objects you can do a visual comparison of content, geometry, topology and visual appearance too. Squish also has the ability to do verification via search image and OCR-Text.

For recognition tests, the Squish GUI Tester supports multiple object recognition methods, including property-based (the default), image-based recognition, and OCR-text based.

Complete ease with testing Qt applications


Wherever you can run a Qt application, you can test it with Squish. 

A Qt-application test created on one of the platforms listed earlier can be run against any other platform with no code modification required. Squish does not need the application source code for this – only the binary as your customer would see it.

In addition to recognizing standard and complex buttons, menus, lists, tables and so on, Squish supports Qt Widgets, QML and QtQuick controls. Embedded web content implemented with the Qt WebKit and Qt Web Engine is recognized too.

 Squish exposes all the properties and functions of Qt and QML controls, models and other objects. The tester also allows you to connect test-script functions to Qt signals and Qt events, so a test script can react to application signals and events.

Squish has built in support for the automatic testing of common gestures such as touch, flick, swipe and more. It also supports more complex multi-touch gestures, such as pinching.

An area that Squish has put a lot of effort into is testing In-Vehicle Infotainment (IVI) apps through the Qt IVI module. You can access these vehicle features through both C++ and QML. There is also a core API for implementing new IVI features, as well as bindings to the Qt IVI module for testing interactions with all its vehicle features.


Squish covers the vast majority of the most common GUI technologies and it’s free to try out. Click here to get started!

Blog Topics: