Est. 2003 Intermediate

Squish

A cross-platform GUI test automation tool whose test scripts are written in mainstream scripting languages like Python, JavaScript, Ruby, Perl, and Tcl

Created by froglogic GmbH (Reginald Stadlbauer and Harri Porten)

Paradigm Test scripting; record-and-replay automation with property-based object identification
Typing Depends on the chosen host scripting language (Python, JavaScript, Ruby, Perl, or Tcl)
First Appeared 2003
Latest Version Squish 9.1 (August 2025)

Squish is a commercial, cross-platform GUI test automation tool developed by froglogic GmbH and, since 2021, by the Qt Group. Although it is often listed among test-scripting technologies, Squish is unusual in that it does not define a scripting language of its own. Instead, it lets testers write their automated GUI tests in a mainstream scripting language of their choice — Python, JavaScript, Ruby, Perl, or Tcl — layering a consistent test-automation API and a property-based object-identification model on top of whichever language a team already knows.

History & Origins

froglogic was founded in 2003 in Hamburg, Germany, by Reginald Stadlbauer and Harri Porten, two former senior engineers at Trolltech (the company behind the Qt application framework). Drawing on their deep knowledge of Qt, the founders set out to build a best-of-breed automated GUI testing tool. The first release, Squish 1.0, shipped on 18 November 2003, focused initially on automating tests for Qt-based applications.

A note on the release year. Squish is sometimes associated with an earlier date, but the well-documented first release is Squish 1.0 in November 2003, the same year froglogic itself was founded. This page uses 2003 as the verified first-appearance year.

Over the following years froglogic steadily expanded the range of GUI technologies Squish could drive, moving well beyond its Qt roots to become a broadly cross-platform, cross-toolkit tool. On 13 April 2021, the Qt Group announced the acquisition of froglogic, folding Squish and froglogic’s related quality-assurance products into Qt’s Quality Assurance business unit, where the tool continues to be developed and sold.

Design Philosophy

Squish’s central design idea is that test authors should be able to work in a real, general-purpose scripting language rather than a proprietary, tool-specific one. This lowers the learning curve, lets teams reuse existing language skills and libraries, and keeps test code maintainable using familiar tooling.

Two further principles shape the tool:

  • Property-based object identification. Rather than relying on brittle screen coordinates, Squish identifies GUI objects by their properties (names, types, relationships in the object hierarchy). This makes tests more robust to layout changes and window resizing.
  • Record and replay, then refine. Testers can record interactions to generate an initial script, then edit that script in their chosen language to add assertions, loops, data-driven logic, and structure.

Key Features

  • Multiple real-world scripting languages. The same core API is exposed in Python, JavaScript, Ruby, Perl, and Tcl, so teams pick the language they are most comfortable with.
  • Broad GUI toolkit coverage. Squish can test applications built with Qt/QML/Qt Quick; Java SWT/Eclipse RCP; Java AWT/Swing; JavaFX; Windows MFC, .NET Windows Forms, and WPF; macOS Carbon/Cocoa; iOS; Android; Web/HTML/AJAX; Flex; and legacy toolkits such as XView and Tk.
  • Object map / property-based identification for stable, position-independent tests.
  • Image-based object search, added in Squish 6.3 (2017), for situations where an object cannot be identified by its properties alone.
  • Behavior-Driven Development (BDD), integrated in Squish 6.0 (2015), using Gherkin syntax compatible with Cucumber-style feature files that can sit alongside conventional scripted test cases.
  • AI Assistant, introduced in Squish 9.1 (2025), which uses large language models to assist with authoring and maintaining tests.
  • Full source access. froglogic historically distributed Squish with its source code included, which was a notable differentiator among commercial testing tools.

Example test flavour

Because tests are written in ordinary scripting languages, a Python-based Squish test reads much like any other Python script, calling Squish’s automation API to interact with named GUI objects and assert on their state. The exact API surface (functions such as those for locating objects, clicking, typing, and verifying properties) is shared across all five supported languages, with occasional language-specific conveniences.

Evolution

Squish’s history tracks the broadening of GUI technologies it needed to support:

MilestoneApproximate dateSignificance
Squish 1.0November 2003First release; Qt-focused GUI automation
Squish 3.xmid-2000sMulti-toolkit support and multiple scripting languages
Jolt Productivity AwardMay 2012Industry recognition
Squish 6.02015 (Beta July 2015)Integrated BDD / Gherkin support
Squish 6.3August 2017Image-based object search
Qt Group acquisitionApril 2021froglogic joins the Qt Group
Squish 9.1August 2025AI Assistant using large language models

Current Relevance

Under the Qt Group, Squish remains an actively developed commercial product and one of the more established names in cross-platform GUI test automation, particularly strong in the Qt and embedded space where it began. It is used across industries where long-lived, GUI-heavy applications need durable automated regression testing — including industrial, automotive, aerospace, semiconductor, and enterprise software. froglogic has publicly cited large engineering organizations among its user base, and the tool competes in a market alongside other GUI and end-to-end automation frameworks.

Why It Matters

Squish is a useful case study in test-tool design: rather than inventing yet another domain-specific scripting language, its creators chose to embed test automation into languages developers already use. That decision — pairing familiar languages like Python and JavaScript with a robust, property-based object model — helped make GUI test automation approachable for QA teams and durable in the face of UI change. Its long arc from a 2003 Qt-testing startup to a product inside the Qt Group also mirrors the broader consolidation and maturation of the commercial software-testing tooling market over two decades.


Sources include froglogic and Qt Group product materials and the Wikipedia article on Squish (froglogic). Dates and version numbers reflect the most reliable public information available; where precise dates for intermediate releases are uncertain, approximate dating is used.

Timeline

2003
froglogic GmbH is founded in Hamburg, Germany, by former Trolltech engineers Reginald Stadlbauer and Harri Porten; Squish 1.0 is released on 18 November 2003, initially focused on automating GUI tests for Qt applications
2004
Squish 1.1 is released, broadening the tool's early capabilities as froglogic builds out its cross-platform GUI testing offering
2008
Squish 3.x line matures with support for multiple GUI toolkits (Qt, Java AWT/Swing, Web) and a choice of scripting languages for writing test scripts
2012
Squish wins a Dr. Dobb's Jolt Productivity Award in May 2012, recognition within the software development tooling industry
2015
Squish 6.0 Beta is announced on 21 July 2015, adding fully integrated Behavior-Driven Development (BDD) support compatible with the Gherkin syntax used by Cucumber
2017
Squish 6.3 is released in August 2017, introducing image-based object search for cases where property-based identification is not sufficient
2021
The Qt Group acquires froglogic GmbH on 13 April 2021; Squish, together with the Coco code-coverage tool and Test Center, moves into Qt's Quality Assurance business unit
2025
Squish 9.1 is released (stable on 11 August 2025), introducing an AI Assistant that uses large language models to help with test creation and maintenance

Notable Uses & Legacy

Qt and embedded application testing

Squish was originally built to automate GUI tests for applications using the Qt, QML, and Qt Quick toolkits, and remains widely used for testing desktop and embedded Qt-based user interfaces

Industrial and embedded software

froglogic and the Qt Group have published success stories from engineering companies — including ABB, Komatsu, and the Siemens subsidiary ETM Professional Control — that use Squish to test safety- and quality-critical GUI applications

Semiconductor and EDA tooling

Companies such as ARM and the EDA vendor IC Manage have been publicly cited among Squish users automating regression testing of engineering tool GUIs

Cross-technology desktop and web QA

QA teams use Squish to test Java SWT/Eclipse RCP, Java AWT/Swing, JavaFX, Windows .NET WinForms/WPF, and Web/HTML/AJAX applications from a single, consistent scripting API

Language Influence

Running Today

Run examples using the official Docker image:

docker pull
Last updated: