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)
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:
| Milestone | Approximate date | Significance |
|---|---|---|
| Squish 1.0 | November 2003 | First release; Qt-focused GUI automation |
| Squish 3.x | mid-2000s | Multi-toolkit support and multiple scripting languages |
| Jolt Productivity Award | May 2012 | Industry recognition |
| Squish 6.0 | 2015 (Beta July 2015) | Integrated BDD / Gherkin support |
| Squish 6.3 | August 2017 | Image-based object search |
| Qt Group acquisition | April 2021 | froglogic joins the Qt Group |
| Squish 9.1 | August 2025 | AI 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
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