• info@helpingtesters.com
  • helpingtesters

Squish – GUI Automation Testing Tool

November 11, 2017
Squish - GUI Automation Testing Tool

Squish is a GUI automation and regression testing tool used for cross-browser testing for different GUI technologies in Multiple platforms like Windows, Linux, Mac OS X, Embedded Mobiles. Squish is developed and maintained by Froglogic. Squish is also compatible with the Gherkin (domain-specific language) used in tools such as Cucumber. Few of the platforms supported by Squish are- JavaFX, Flex, iOS Cocoa Touch, Android, XView, Mac OS X Carbon/Cocoa, Java SWT/ Eclipse RCP, Windows MFC, .NET Windows form, WPF and much more. Let’s have a journey to use Squish – GUI Automation Testing Tool.

Squish – GUI Automation Testing Tool supports property-based object identification. Using Squish we can create a single set of tests that works across all other platforms. The test created for one platform for cross-platform applications will work as same and do not need to be modified when running the other platforms that application is supported. It supports the record and plays feature and the script will get automatically generated based on the recording in the scripting language selected by the user during the creation of the test suite. Squish also provides a tight integration with GUI technologies that it support by giving access to the application internal data including the date items, widgets, controls and so on. This integration helps in conducting a stable GUI test without failure. Squish is widely used by the QA personals over the globe by the small and large companies.

Features of Squish – GUI Automation Testing Tool

⇒ Help in identifying the issue faster

Rapidly tests the existing functionalities which are important for the regression and Execute tests round the clock.

⇒ Helps in improving test accuracy

Test accuracy gets increased as there is a very less scope for Human intervention and thus eliminate human error. Also helps in avoiding skipping of functionalities in the tests due to time restriction. It also keeps on performing repeatable tests without undesired variation.

⇒ Helps in Increasing the test coverage

Various factors are responsible for increasing the test coverage and also these factors are already there in Squish. The factors like- Testing more and more scenarios in less time which is not possible with manual testing, validating the test cases with different inputs and running the test across different machines and platforms simultaneously.

⇒ Knowledge Sharing

One of the vital benefits of the automation testing is the Knowledge Sharing.  It shares not only the results of the test run but also shares the reproducible steps of how the test is being performed. It also helps in identifying the common areas of failure and helps in improving either the code in that area or improve the testing to make sure that those critical areas don’t get missed.

⇒ Cross-platform and multi technologies support

It supports multi technologies and cross-platform testing to be performed under one roof. The single set of test can run on different platforms in which the application supports.It supports hybrid application testing.

⇒ Recording and Scripting

Squish also provide with a powerful “recording” and “playback” functionality as well as scripting. It supports cross-platform scripting languages like- Python, JavaScript, Perl, Tcl, and Ruby.

⇒ Behaviour Driven Development and Testing

Squish is fully integrated with Behaviour Driven Development and is fully compatible with the standard BDD language, thus helps in Creating, Recording, Maintaining and Debugging the BDD GUI tests.

⇒ Distributed Batch Testing

Executing a set of scripts or batches in multiple destination environments. With each targeted batch, confirm a specific set of functionality across one or more environment configurations.

  • Simple installation process with better-improved packaging.
  • Mac Support and Improvement: One of the major features of Squish is the improvement done in Mac’s for supporting the testing of 64 bit Cocoa GUI’s.
  • Windows Support and Improvement: Now coming to windows, it supports dynamical access of .NET and COM properties and methods and it also supports third-party controls like Infragistics NetAdvantage and Exontrol.
  • iPhone Support and Improvement: In iPhone’s it supports grabbing of screenshots and performs screenshot verification as well as it also supports better scrolling and gesture.

Architecture of Squish – GUI Automation Testing Tool

Explore Squish – GUI Automation Testing Tool here.

Squish Test Script Creation for Desktop Application 

We are able to create a test from Squish IDE by simply clicking a code and behind the scene, the Squish runner is connecting the TCP/IP (local/another machine in remote) to the listening Squish server service. Which is then injecting a hook in the application while launching and allowing it to report back to the different activities that are recorded in a test script. Again those test scripts are then created in the scripting languages chosen to us like- Python, Perl, JavaScript, Tcl, and Ruby.

When Executing tests to one-to-many relationship,still from the IDE whether using the command line interface or any of Squish integration, the test scripts will be taken in, by the Squish runner which connects it over TCP/IP local or remote to one or more listening Squish server services, which then launches the application, execute the tests, return the results back to the Squish runner which then outputs those results.

How to Download and Install Squish – GUI Automation Testing Tool in your systems

Let us now discuss How to use Squish. Squish – GUI Automation Testing Tool is a paid tool but there is also a trial version available for 30 days. Let’s starts with the installation of the trial version and see how it works.

We can download the trial version from https://www.froglogic.com/squish enter all your details and click on “Start your Free trial today” to start the download

Install Squish

After the file is downloaded, unzip the file and click on setup.exe to start with the installation. The installation process has 5 windows steps- When starting with the installation it has a very fewer number of steps, so after the installer launches we will start with the clicking of the Next button in the Welcome page.

Then we need to enter the license key which is available from customer login or evaluation login area. After entering the license key click on the Next button.


Then there is the Terms and Conditions page, simply select “Accept” and click on “Next” button to proceed further.

Now in the Review section, you can view the License type of your product. Click Next.

At this stage, the installation is almost finished. You can select to launch the application and click on Finish button to complete the installation process. Now Squish – GUI Automation Testing tool is ready to use.

In this article we are going to discuss some basic thing which we can do using the Squish tool like- Creating test suite, How Record and play works using Squish, Creating verification point using Squish and so on. Let starts.

How to create a Test Suite using Squish

Creating test suite is the foremost thing to be done before we start the testing. For creating a test suite we need to load a file and click on New Test Suite option.


After clicking on the New test suite option, a pop window will open asking for the test suite name and the location where we need to save the test suite. For the location, you can either enter the location path or can browse through the directory and select the path. After entering the test suite name and path click on Next button.

The next screen will ask for the GUI toolkit being used by you. Select the required toolkit and proceed further.

After that select the scripting language which is to be used. This scripting language will play through the entire test suites. After selecting the scripting language, click on Next button and proceed further.

Everything entered in the above fields in the Address Book screenshot is getting captured as indicated by the status in the Control Bar.

In order to stop recording,  we need to click the stop recording button.

As we clicked on the stop record button, I am able to see the script I have recorded in the scripting language which I have chosen while creating the test suite.

Now, in order to execute the recorded script, click on the Run button for the specific test case displaying in the left panel. The test run will simply play the recorded script in the same fashion as it was recorded. Once the test script is run, the results of the test will display below in the Test Result section.

Creating Verification Point using Squish

As discussed above, Squish also helps in creating verification point required for testing the test cases. As Verification point are central features of automation testing. For creating verification point, we must drive the AUT to reach to the state we want to verify and then we should check that the AUT should behave and reach the correct point we have reached. This can be done using the verification point. Squish has different types of verification points:

  • Object property verification points- The most common type of verification is to validate an object property with its expected value. Object property can be inserted for all property that Squish recognize for all AUT object that Squish detects.
  • Screenshot verification points- Other than Object property verification, Screenshot verification is also an important verification tool used to visually compare how a widget or grid appears with an image and how we expect them to appear.
  • Table value verification points- Table verification can be used verify entire table, grid or similar widgets rather than doing manually through code.

We will start by creating a script and by recording that script we will create the verification. Verification point can also be created once we reached the breakpoint by recording a snippet or by recording a snippet at a point of the script. Let starts with the recording of the script.

After recording few steps we will use the control bar to select the Object property verification point type.

It would return us back to Squish, where we can choose between Script based or Property based as test case resource.

We will then use the pick tool to select the object we want to verify.

After selecting the object when we again return to Squish, the object which we have selected is now selected in the application object tree.

Now we can begin selecting values or properties regarding that object. We can select more than one property or can select other objects and their property to verify within the same verification point. After selecting the objects and its properties, Click Insert.

And it returns back to the recording, where we will click the Stop Recording button. Once the recording is stopped, the script gets generated in the pre-selected scripting language and the script for the verification points as because we have selected the script based verification point.

Now it time to run the script and check the verification point. At the end, when the script runs the item for which verification point was created got verified and the result got displayed below as Pass status and the output also denotes what was actually verified.

As seen so far, now one can start using Squish – GUI Automation Testing Tool keeping this article as a reference guide.

About the author

Asim Mondal author

Asim is ISTQB certified tester, expert in QA/Testing with a Master's in Computer Application, whether it is Mobile testing (Android, iOS and windows) or website testing he always lead the way in IT systems efficiency and a swift resolution of issues minimizing his employer’s risk.

Leave a Reply

Your email address will not be published.