Desktop Application Automation using Squish


Desktop application is an application that runs stand-alone in a desktop or laptop computer. Unlike web applications, desktop apps require sufficient hardware resources to function. They are more difficult to control due to the fact that certain apps are developed for certain environments and configurations. Today there are different tools in the market that will help achieve test automation of Desktop Applications like Squish, Ranorex, Sikuli, Autoit etc.

In this article, we will see about how the tool Squish can assist in achieving test automation of desktop applications.

About Desktop Application Testing

Desktop applications are full-function programs that work independently from other applications and require an operator. For proper functional work, there are required sufficient hardware resources, an application and a set of functions to work with the application. Desktop application testing is complicated by the fact that in most cases desktop applications are developed for a certain environment, and therefore the interaction with other parameters of the environment is reduced to zero. One can test the complete application broadly in categories like Graphical User Interface, Functionality, Load,  etc. A desktop application is usually used by a single user at a time. Major concern while testing a desktop Application is to test the app on different hardware as well as on different Operating Systems.

About Squish

Squish is a commercial cross-platform GUI test automation tool. Starting with automation of apps based on the popular cross-platform GUI framework Qt, Squish has come a long way to include testing of mobile apps to its list of supported technologies.

The list of supported technologies

Some of the technologies supported by Squish are:

Type of Application Platform
Qt, QML/Quick Windows, Mac OS X, Linux
Java applications based on AWT, SWT and RCP Java applications Windows, Mac OS X, Linux
Web applications based on HTML and Ajax Windows, Linux, and Mac OS

IE, Firefox, Safari, Chrome, and Opera

Cocoa and Carbon Mac OS X
MFC, Visual Basic, .NET Windows Forms, WPF, FoxPro, PowerBuilder etc Windows
Xview Linux & Solaris

Features of Squish Tool

  • Script-less Test Case Creation

The test cases can be recorded, and the scripts are generated automatically in the language chosen by the end user.

  • A Volume of Verification Features

Squish’s Spy and Object Inspector tools make it easy to create verification points. Verification of all properties of UI elements including data type is possible with Squish.

  • Remote and Parallel Test Scheduling

The Squish architecture supplies support for parallel and distributed test case execution even from a single test script hosted on a remote machine.

  • Reusable Test Cases

To ensure re-usability of test cases, Squish provides support for separation of test data from the test cases. Table formats such as CSV, TSV and scripting support for SQL database access is also available.

  • Logging

The standard log format is XML, but the logs can also be collected in HTML, XLS, ASCII format.

  • Test Management Support

Squish GUI Automation tools are tightly integrated with Squish Central BETA, a cross-platform, end-to-end Test Automation Management Solution which helps manage and control all aspects of automated tests.

  • Easy Integration

Squish also supports easy integration with third party management systems and environments like HP Quality Center/HP ALM Integration etc.

Features that set Squish apart from the rest for Desktop Application Automation

  • Cross Platform Tool

Squish is available on Windows, Mac, Unix, Linux.

  • Several Scripting Languages are Supported

Squish supports five scripting languages namely JavaScript, Perl, Python, Tcl and Ruby. Users can choose the one with which they are most comfortable with giving them a lot of flexibility.

  • Source Code Shipped with The Tool Provides Extensibility

Squish ships the source code of the tool along with the license. It has another major advantage for the users of Squish, they get the flexibility configure Squish at compile time to suit the requirements of AUT and extend Squish if required to provide support for custom objects or services.

  • Architecture

Squish is divided into two parts, a runner, and a server. This provides a solid foundation for parallel and distributed execution of test cases remotely even through a single test script.

  • Recording of High-Level Actions for Increased Understand-ability

Squish records high level actions such as menu item activation, instead of low-level events such as mouse clicks, making the scripts more readable and robust to changes. This will make Test scripts for desktop applications robust.

  • Object Based Recording

Squish used Object based recording and maintains Object maps that links symbolic name of the object with its real name in the AUT. So even if the object name changes the test scripts need not be modified, only the object map needs to be updated.

  • Hybrid Application Testing Support

Desktop applications that embed web content is an few such example of hybrid applications that can be tested using Squish.



The product under test was a high-end tracking suite that gives intuitive interaction in virtual reality for Motion Capture and VR. Brainbox played a major role in automating application to meet the customer needs.


  • Desktop Application​.
  • Support both Windows and Linux OS.


  • 3D hand viewer for inspecting your virtual hands.
  • To provide a quick and uncomplicated calibration procedure.
  • To ensure working of gloves that rotate in 360 degree.
  • Track the movement of the gloves.

Scenarios Automated

  1. Launch the application and verify
    • Glove is selected
    • Device Id.
  1. Launch and set up gloves to verify
    • Different finger modes.
    • Signal battery level.
  1. Change the language of the application in settings.
  2. Verify hand movement using the X,Y co-ordinates and mouse drag operations.

Testing framework

The GUI test automation framework is built as a foundation of a test automation project. It gives the testing framework a clear organizational structure which helps the tester to create new test cases and modify the existing test cases easily and quickly. The testing framework is normally built based on a testing solution, for example a behaviour driven development framework is built for this product testing. We have also used python as programming language.

The following figure shows the structure of the testing framework used for this project.


The framework contained the following layers,

  • Object Repository
  • Common Libraries
  • Test Configuration
  • Business Layer
  • Global Scripts
  • Test Libraries
  • Test Results

Advantages of Squish

  • Supports testing of majority of application that are developed on varieties of technologies.
  • Supports different operating systems (Windows, Linux, Mac).
  • Supports multiple scripting languages..
  • Provides powerful IDE (Debug, Object Spy, Object Repository Management ).
  • Supports BDD – Behaviour-Driven Development & Testing.

Disadvantages of Squish

  • It is a licensed tool not an open source tool.
  • Renaming of symbolic component names is very laborious, manual interaction necessary.
  • Limited IntelliSense support.


Contact us at for more information and we would be happy to assist you with testing related services.


U moet ingelogd zijnom berichten te posten.