Welcome to Squish!

Squish is a professional automated GUI testing framework for testing GUI applications based on toolkits such as Qt, the Tk, Java, XView toolkits from Oracle, and Android.

You can use Squish also to test HTML-based web applications running in popular browsers including Chrome, Microsoft Internet Explorer, Microsoft Edge, Firefox and other Mozilla-based browsers and Apple's Safari.

Release Notes—for UpgradersNew features in each Squish version
InstallationInstalling Squish on the supported platforms for testing on the supported platforms
TutorialsGUI-toolkit-specific tutorials that cover the main Squish features and usage
User GuideTask-oriented coverage of most Squish features and more in-depth examples than in the tutorials
API ReferenceScript APIs used by Squish test scripts
Tools ReferenceSquish tools functions
IDE ReferenceSquish IDE windows, views, dialogs, and actions
Add-Ons ReferenceAdd-Ons functions
Frequently Asked QuestionsSolutions to typical issues
GlossaryExplanations of main concepts and terms
IndexList of Squish functions and other useful terms
Third-Party SoftwareAcknowledgments for third-party software

For more Squish-related hints, tips, tricks, and examples, see Knowledge Base.

Look and Feel Differences

Squish runs on Linux, macOS, various Unices, and Windows. Each of these platforms has its own unique look and feel—right down to the ordering of buttons in dialogs or sheets, and in the case of macOS the arrangement of menus and menu items. Furthermore, the appearance of applications can vary depending on the theme being used.

Therefore, the Squish IDE screenshots shown in this manual may look different from the Squish IDE that you see running on your own computers. This does not affect Squish's functionality, but sometimes when you look for a particular toolbar, dialog, or sheet button, it may not be in exactly the same place in your Squish IDE as shown in a screenshot.

Look and feel differences don't stop Squish from being able to do cross-platform testing. This is because Squish identifies GUI objects by their properties rather than by, say, their coordinates. This means that a Squish test suite that tests an application running on one platform can be used unchanged to test the same application running on another platform, even if say, the order of dialog buttons is different on the two platforms.