Features and Benefits

Smart Test Recording and Replay

  • Automatic recording of test scripts
  • Recognition of high-level interactions and objects (e.g. clicking a menu item) instead of low-level events
  • Scripts independent of screen coordinates and resolutions
  • Snippet recording to extend existing scripts
  • Generate script code in Python, JavaScript, Perl, Ruby or Tcl

Automated Verification Points and Squish Spy

  • Insertion of verification points at any point in the test script
  • Insertion while recording or when post-editing scripts
  • Easy creation of verifications using Squish’s Spy and Object Inspector tools
  • Verifications of all properties (all data types)
  • Verifications of screenshots (of individual controls or the whole screen) including configurable fuzzy comparisons
  • Verifications of complex data controls (such as grids) with powerful visualization of differences
  • Verifications of external files, SQL databases and more

Easy Test Authoring

  • Powerful integrated test development environment based on Eclipse technology
  • Also available as Eclipse plugin
  • Integrates recording, test execution and results, script debugging, spying, advanced editing and maintenance of test scripts
  • Additional plugins available for SCM, collaboration, etc.

Test Logging and Batch Execution

  • Standard log format is XML
  • Logs also available in HTML, XLS, ASCII and more
  • Integrated log viewer in the Squish IDE
  • Unattended test execution and logging using cross-platform command line tools
  • Automated capturing of screenshots on test failures and errors

Advanced GUI control support and custom controls

  • Dedicated support for all standard and advanced GUI controls of all supported GUI toolkits for robust recognition
  • Items in menus, trees, tables, etc. are recognized as GUI objects too
  • Built-in support for custom controls
  • Extension plugin mechanism to allow implementing dedicated support for advanced custom controls
  • Powerful object naming scheme which allows to use wildcards and regular expressions for object naming
  • Customizable name generation mechanism allows the user to influence name generation for different object types
  • More information about all the GUI technologies supported by Squish can be found on the Editions page.

Cross-Toolkit Support

  • By mixing Squish editions, it is possible to automate hybrid applications utilizing more than one GUI technology
  • This includes desktop GUIs which embed web content, web applications which starts a Java Web Start client, desktop applications which utilize several GUI toolkits, etc.

Script Support and Accessing Application internals

  • Choice of using a popular script language instead of having to learn a proprietary vendor language
  • Squish fully supports
  • Python
  • JavaScript
  • Ruby
  • Perl
  • Tcl
  • Squish specific script APIs for a lot of convenience
  • Full script access to the APIs of all objects (GUI and non-GUI) in the application under test empowers testers to automate and validate even the most complex test scenarios
  • Creation of script modules and libraries to use across test cases and suites

GUI Object Map

  • Unique object identification works based on a set of stable properties for given object types
  • No screen positions or other brittle ways are used for identifying objects
  • Name generation happens on-the-fly and object maps don't need to be "learned"
  • No modifications to the application under test are necessary for GUI object identification
  • Object maps are automatically created and used to have a central point for the object name lookup and maintenance
  • Possibility to use wildcards and regular expressions in object names

Distributed and Multi-Application Testing

  • Squish test runner communicates with the application under test via a network TCP/IP connection
  • Allows to drive applications on different machines and platforms from one central place, even on embedded devices
  • Since the test script and the application run in different process spaces, a crash of the application does not bring down the whole testing framework
  • This architecture also allows to automate several applications (possibly on different hosts) from a single test script

Test Data and Data-Driven Testing

  • Support for all kinds of test data files
  • Dedicated scripting API for data-driven testing
  • Support for different kinds of tabular file formats (CSV, TSV, etc.)
  • Scripting support for SQL database access

Flexibility and Extensibility

  • All modules of the testing framework have open interfaces (plugin APIs, command line tools, plain text files, XML)
  • Gives full control over test execution and test results
  • Makes it easy to integrate Squish into any 3rd party syste,
  • Several ready-made integration plugins are available (HP QualityCenter, Hudson, Cruise Control, etc.)

Ships with Source Code

  • Squish ships with full Source Code