Version 4.2.0

Squish 4.2 is a major new release with many new features and bug fixes. Here is a selected summary of the release's highlights—a detailed list of all the main changes is given in the sections that follow.

  • The IDE now supports the creation of verification points for complex item views, such as tables.
  • The choice of scripting languages used for recording, writing, and executing test scripts has been extended to include Ruby—this is in addition to JavaScript, Perl, Python, and Tcl.
  • Squish for Windows now properly recognizes WPF controls.
  • Squish for Web now includes dedicated support for SmartGWT controls in web pages.
  • The Quality Center integration has been extended beyond Quality Center 10 to include HP ALM 11; there have also been many bug fixes made.

General

New Features

  • Ruby is now a supported scripting language and can be used for creating and replaying tests.
  • Entire tables can be verified using table verification points. Currently, this is available for Java, macOS, Qt, and Windows AUTs. See How to Create and Use Table Verifications.
  • A new applicationContext.detach() method was introduced for Application Context objects. This method can be used for closing (or detaching from) previously started (or attached) applications.
  • ApplicationContext objects now allow querying the command line and start time of all launched (or attached) processes, including sub-processes.
  • It is now possible to specify the --reportgen option multiple times when invoking squishrunner on the command line; this makes it possible to generate multiple report files in different formats at the same time.

Important Bug Fixes

  • The stability of the squishserver processes running on Windows has been significantely improved.
  • The support for test scripts interacting with multiple applications at the same time has been greatly improved. This resolves various issues when recording, replaying, and spying.
  • Various problems with breakpoints in Python scripts have been resolved.
  • The source(filename) function when used in Tcl scripts now supports the -encoding option to match a Tcl 8.5 API change. This fixes using the "clock format" command in Tcl 8.5 test scripts.

IDE

User Interface Rearrangement

The new Squish IDE's menus and toolbars have had several changes to make them more logical and easier to navigate and use.

Here is a table listing the menu changes which include a slimmed-down Squish menu and an improved Run menu:

Old Menu OptionNew Menu OptionNotes
Navigate > Open Symbolic NameThis is a new menu option. Clicking this menu option makes Squish open the Object Map and highlight the symbolic name that matches the name at the editor's cursor position or that is selected.
Squish > Launch AUTRun > Launch AUT
Squish > Quit AUTRun > Quit AUT
Squish > Record Test CaseRun > Record Test Case
Squish > Record SnippetRun > Record Snippet
Squish > Run Test SuiteRun > Run Test Suite
Squish > Run Test CaseRun > Run Test Case
Squish > Close Test SuiteFile > Close Test Suite
Squish > Delete Test SuiteFile > Delete Test Suite
Squish > Add Symbolic NameThis is no longer a menu entry. Click the Object Map's Symbolic Names lists's New button to create a new symbolic name.
Squish > Manage AUTsEdit > Server Settings > Manage AUTsThis menu option is Window > Server Settings > Manage AUTs in the Squish Eclipse integration.
Squish > Check ObjectExistenceThis is no longer a menu entry. Click the Object Map's Check Existence button to perform this check.
PreferencesEdit > PreferencesOn macOS, Preferences remains in the Application menu.

The Create New Test Suite and Open Test Suite toolbar buttons have been moved out of the Test Suites view and put into the top-level toolbar.

Other Changes

  • The layout of the AUT section in the test suite settings view has been rearranged to make it easier to understand and use.
  • The Check Existence button has been moved into the Object Map editor.
  • The settings which influence the squishserver have been moved into a separate dedicated dialog.
  • Hidden files are no longer shown in the test resources views.

New Features

  • Support for the Ruby scripting language has been added.
  • A new filtering dialog has been introduced to the Object Map editor, which greatly simplifies the editing of real (multi-property) names.
  • It is now possible to create and edit table verification points as well as displaying the differences between two tables in case a comparison fails.
  • Two new toolbar buttons have been introduced to the toolbar to simplify creating and opening test suites.
  • Testing applications which use some sort of "launcher application" concept has been greatly simplified. This makes it easier to configure iOS and Java WebStart test suites.
  • A new setting has been added which can be used to specify whether the IDE window should remain visible while a test is recorded or executed.
  • A new Open Symbolic Name option has been added to the menu bar and to the test script editor's context menu in case the cursor is on a symbolic name. Its action is to open the Objec Map with the relevant symbolic name highlighted.
  • It is now possible to open test suites from the command line by specifying the relevant test suite's directory or the test suite's suite.conf file as an argument to the squishide command.
  • It is now possible to drag and drop test scripts, test data files, and verification point files between test cases, test scripts, and shared script filters.
  • A new Clear option has been added to the test summary view.
  • More IDE actions can be associated with keyboard shortcuts.
  • The fonts and colors used for Fails, Warnings, and Passes in the test results view can be customized using the theme configuration.

Important Bug Fixes

  • The order of test cases in XML result files and when loading older test results is now correct.
  • Fixed cases where the objects shown in the Application Objects and Property View views did not correspond to the AUT's current state.
  • Fixed a file handle leak which caused the IDE to keep files open after they were no longer being used.
  • Fixed a bug which caused the Import Test Resource wizard to be empty for fresh Squish installations.
  • Malformed screenshot verification points are now handled gracefully.
  • The performance of various directory-related dialogs (New/Open Test Suite, Select Squish Directory) when used with network-mounted (or otherwise slow) file systems has been greatly improved.
  • Various issues with working on verification point files stored in subdirectories of the verificationPoint directory have been resolved.
  • Fixed a problem which caused a File changed externally notification to appear even though there were no such external changes.
  • A bug which caused recorded ApplicationContext startApplication(autName) statements to be malformed in cases where the application name contains spaces has been fixed.
  • Recording tests on Java applications for which the Main Class setting in the test suite settings is used.
  • The control bar is no longer shown when integrating the Squish plugins into Eclipse and launching non-Squish applications.
  • In some situations, entries in the test suite setting's Environment Variables section were mistakenly duplicated. This problem has been resolved.
  • A problem which appeared when trying to change existing keys in the test suite setting's Environment Variables has been solved.
  • The verification point editor no longer has problems with non-ASCII characters.
  • An issue which broke stopping at breakpoints after using the 'Step' feature has been fixed.
  • Generating test result files for test cases and test suites which have certain characters (like &, < and >) now works properly.

Qt-specific

New Features

  • Qt 4.8 is now supported.
  • It is now possible to test Qt sub-applications on Windows without modifying the host application.
  • QML objects now expose an 'id' property which is the default way that Squish identifies them.
  • The clearObjectCache() function can now be used on QWebView, QDeclarativeWebView, and QGraphicsWebView widgets.
  • The loadUrl(url) and Object evalJS(browserTab, code) functions can now be used on QGraphicsWebView and QDeclarativeWebView widgets.

Important Bug Fixes

  • Recording actions on QWebKit widgets no longer causes each action to be recorded twice.
  • Squish no longer overwrites the QApplication object's desktopSettingsAware property, so now AUTs always run with their correct color palettes.
  • Fixed the recording of mouse clicks on QGraphicsView objects which have no item at the clicked position.
  • Improved support for applications using QWebView but which do not link against the QDeclarative library.
  • Actions on QML elements which are flagged as having no content (i.e., ones that are not drawn on screen) are no longer recorded.
  • Fixed a problem in the Spy tooltip (when picking objects) for applications which use their own palette.
  • QGraphicsWebView objects which are contained in QGraphicsView widgets are now displayed correctly in the Spy.

Java-specific

New Features

  • Squish now supports SWT applications which use multiple Display instances.
  • Web pages embedded into RCP applications (i.e. help viewers) are now supported.
  • SWT ToolItem objects gained a new 'tooltiptext' property.
  • Squish for Java is now supported on the AIX platform.

Important Bug Fixes

Web-specific

New Features

Important Bug Fixes

  • The calculation of on-screen coordinates (including the size) for Web elements has been greatly improved. This makes it much easier to use screenshot verification points in Web tests.
  • The scrollTo(objectOrName, top) function now works correctly for elements in item views which have their own scrollbar (and also for similiar cases such as tab widgets, pure HTML 'windows' etc.).
  • Object lookup (and picking) now works on images which have 'alt' attributes containing special characters (such as \n or \r).
  • Fixed calling the loadUrl(url) function right after closing the browser window using the nativeType(keys) function (e.g. by typing <Alt+F4>).
  • Resolved an issue which caused problems when creating screenshot verification points on macOS Lion.
  • The GWT support now works correctly with recent GWT versions.
  • The typeText(objectOrName, text) function now works correctly with Internet Explorer 8 and later versions.
  • A bug which made listing itemview child items very slow has been resolved.
  • Generating object names for itemview items has been optimized.
  • Interactions with file upload form elements now replay more reliably.

Windows (native)-specific

New Features

  • Dedicated support for the WPF toolkit has been added.
  • Support for recognizing labels in Visual Basic 6 applications has been added.

Important Bug Fixes

  • Looking up MFC listbox items using regular expressions now works correctly.
  • Pressing the 'Windows' key is now recorded and replayed correctly.
  • Replaying actions on disabled or hidden .NET controls no longer silently succeeds; instead, an exception is thrown (as intended).
  • Fixed automating Windows Forms applications which show a splash screen in a different thread than the main window.
  • Automating Exontrol, Infragistics, or generic ActiveX controls now works properly if Squish is installed in a path with more than 100 characters.
  • Fixed a crash which occurred when performing object lookups using nested properties (i.e., {type='List' nativeObject.Items.Count='50'}).
  • Fixed a potentially large slowdown of test execution for tests which use the text property for identifying some objects.
  • In some cases, the 'Extra Windows' setting was not respected; this has been fixed.

macOS-specific (Cocoa/Carbon edition)

New Features

Important Bug Fixes

  • Replaying tests will now wake up the display if it is in sleep mode.
  • Various stability issues with the QImage grabWidget(object) function have been resolved.
  • Fixed a bug which caused the AUT to get stuck when replaying menu interactions.
  • Taking screenshots on macOS 10.7 ("Lion") now works correctly.
  • It is now possible to pick objects even if a completely transparent window is in front of another window (the transparent window is ignored).
  • Recording and replaying presses of the Enter key now works correctly.

iOS-specific (iPhone/iPad edition)

Other Changes

  • Changed the wrapper library from a dynamic library to a static library for testing on a device. This was done to make the whole setup for device testing easier and less error prone (especially the additional code signing step for the dynamic library caused a lot of problems and is no longer needed).

    If you already used device testing with Squish before the 4.2 release, please note that you have to first revert the changes to your Xcode project and follow the steps described in Notes on Testing iOS Apps in an iPhone or iPad.

    Reverting the changes means that you have to remove the libsquishcocoatouchwrapper.dylib from your project and remove it from the Other Code Signing Flags entry in your project settings. You should also remove the macbuiltinhook.h from your Xcode project. Then you are ready to do the necessary changes for Squish 4.2.

New Features

  • Added support for iOS 5.
  • Introduced iOS as its own test suite type. This means that you no longer have to create a Mac test suite and use the iphonelauncher utility as the AUT. If you have a iOS test suite, you can specify the iOS app (built for running in the simulator) directly as an AUT.

    Your old test suites will continue to work. But when you create new test suites, you should start using the iOS test type instead.

    If you want to convert your existing test suites to the new test type, you can open the suite.conf of your test suite in a text editor and change the line WRAPPERS=Mac to WRAPPERS=iOS. Then you can open the test suite in the Squish IDE and change Application from iphonelauncher to your iOS application. If you specified any Arguments other than your iOS app, you have to move them to the Launcher Arguments line edit. And you should also remove the path to your iOS app from the Arguments line edit (the entry should be empty).

Important Bug Fixes

Tk-specific

New Features

  • Added a runtime configuration setting to enable or disable the TkInter name generation.

Important Bug Fixes

  • A problem which made it impossible to disable hooking Tk applications' sub-processes applications on Unix has been fixed.

Quality Center-specific

New Features

  • Quality Center 11 is now supported.
  • Screenshots generated by FAIL or FATAL results are now attached to the test run.

Important Bug Fixes

  • The qcimporter utility program now allows importing test cases which have whitespace in their names.
  • Fixed a problem which caused the test status to be wrong when executing Squish tests from within Quality Center.
  • In case the plugin fails to launch squishrunner, an appropriate test result is logged in Quality Center.
  • Resolved an issue which caused the result viewer to show the results of an older test run (instead of the selected run) in some cases.

Source Packages

Important Bug Fixes

  • Source packages can now be compiled with Xcode 4.2 on macOS.

Documentation

New Features

  • Ruby versions of the examples have been added.

Important Bug Fixes

  • Minor improvements and additions have been made throughout.
  • The documentation of the Quality Center plugin was rewritten from scratch, now reflecting the current state of things and discussign more recent Quality Center versions.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.
The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.
Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.