Squish Changelog

What's new in Squish 6.2

Dec 7, 2016
  • Highlights:
  • It is now possible to execute test cases in a random order which helps with finding unintended dependencies between test cases as well as increasing test coverage. Randomized test execution is enabled by passing a new --random option on the command line. See Executing Test Cases (Section 7.4.3.3) for further information.
  • Squish now supports assigning tags to test cases, free-form texts which can be used to select just a subset of all tests for execution. Tags can be viewed and edited via the Squish IDE and selected via the command line by using the --tags. The manual section Executing Test Cases (Section 7.4.3.3) has further information on how to include or exclude test cases for a specific execution.
  • A new RemoteSystem Object (Section 6.3.20) API was introduced which permits performing file system accesses (e.g. reading & writing files) as well as executing commands remotely, even when there's no AUT running on the remote system.
  • A newly introduced function attachToBrowser now allows attaching to running browsers instaces which were not started by Squish. Among other things, this enables testing user interfaces in which a part of the user interface is rendered as a web page shown by a separate browser process. You can learn more about how to use this function in Attaching to a running Web Browser (Section 7.9).
  • General:
  • Improved loading speed of HTML report in Web browser.
  • Fixed a problem in the nativeType function which caused key combinations on Mac OS X for special keys with modifiers.
  • Fixed instability in squishserver causing crashes at the end of test execution.
  • Properties of the testSettings Object (Section 6.3.19) can now be initialized via the config.xml file.
  • Squish IDE-specific:
  • Support tagging of script testcases via the metadata view/editor.
  • Support Replace Realname in the object map editor with real names that have been copied from script files or other text documents and not copied from another entry in the object map editor.
  • Fixed a problem where certain actions in the testdata editor would be enabled without having any cell selected and then fail to work properly.
  • Fixed a problem with automatic sizing of the Object-Lookup-Error dialog causing the dialog to be extremely big when the report error message is long.
  • Support basic recording of test scripts with the Eclipse IDE Integration (Section 9.6) without having a dedicated editor-support plugin from Squish installed.
  • Support jumping from a symbolic name in a test script to the object map editor entry for that name by pressing the Ctrl key and clicking on the symbolic name.
  • Support moving of any files from the testcase to the testsuite testdata folder even if those files are not matching one of the known testdata file types (csv, tsv, xls).
  • Fix a problem with auto-completion in Tcl scripts when the line where the completion occurs is empty.
  • Show errors in parsing realnames obtained from the clipboard when pasting them into the object map editor or copying them from the application objects view.
  • Add a UTF-8 marker to newly created Python script files to emphasize that the enncoding of Squish script files is expected to be UTF-8.
  • Show multiline log statements fully in the control bar.
  • Fixed a problem copying parts of a selected symbolic name while editing that name in the object map editor.
  • Fix a problem preventing symbolic names opened from a test script to show up properly in the object man when previously a filter was used to search for a name.
  • Fix a problem that can occur during recording when a test.vp statement is part of a waitFor construct.
  • Persist the selected AUT in the Select AUT dialog also if the AUT is an attachable one.
  • Fixed a problem when creating scripted verifications for nested properties in Tcl causing invalid Tcl code to be generated.
  • Fixed a problem causing the Test Suite combobox to display incorrectly rendered text when loading a suite with spaces in the name on Linux.
  • Persist the last-used device to deploy an Android AUT to to allow easier re-deploy to the same device.
  • Fix a problem causing Ruby test scripts to have mixed indentation sometimes, set the default to be four spaces.
  • Fix a problem causing no empty line being added after having recorded BDD step implementations.
  • Support sorting the application objects and properties views using the table column headers. Initial sorting will be defined by the AUT order, clicking the header will sort in alphabetical ascending order and clicking it again switches to descending order (properties view is always alphabetically sorted).
  • Improved reporting of errors encountered while creating verification points.
  • Support a default keyboard shortcut (Ctrl+R) for running the currently selected test case from the Test Cases list.
  • Add a context menu entry to run the test case to which the current open editor belongs to including a keyboard shortcut for triggering the action (Ctrl+Shift+E).
  • Fix a performance problem with reading the XML results causing lags after a test case execution finished on some systems.
  • Improve default layout of the Debug perspective so that the Debug view takes up less space.
  • Disallow closing of the Debug view as it is necessary to make actions like Step Into, Continue etc. work properly.
  • Ask for resetting the Debug perspective on upgrades to fix the 'missing Debug view' issue.
  • Disallow specifying non-writable directories for the test results folder.
  • Improve performance of object map editor when loading big object map files.
  • Fix a problem when loading XML2 results into the Squish IDE where verification points have spaces in their names causing actions such as View Differences to fail to work.
  • Fixed a problem with the enablement of the buttons in the real name editing area of the object map editor when switching between different symbolic names.
  • Support loading test result directories that do not follow the default Squish generation scheme via the Recent Test Results combobox.
  • The Save Object Snapshot... feature of the Application Objects view now does a much better job at suggesting an output file name.
  • Scripting:
  • Scenario Outline placeholders used in a table argument for a Step are now correctly replaced with their specific values.
  • A RemoteSystem Object (Section 6.3.20) was added, permitting remote file system access as well as command execution.
  • The createVisualVP function now omits invisible elements. This brings it in line with the behavior of test.vp and therefore avoids unwarranted test failures.
  • Timeout problems when communicating to the AUT again abort the test execution right away instead of causing a script exception to fix a regression caused by a previous change to waitForObject and related functions.
  • Correctly handle script errors caused by accessing object properties of objects not from the current application context.
  • Python BDD: support UTF-8 in step definitions using a regular expression pattern (i.e. when using the regexp=True argument).
  • squishrunner no longer infinitely waits for background processes which were started from the test script.
  • An initial value can now be passed to the testInteraction.input via an optional second argument.
  • Fixed a potential crash triggered by calling the test.vp function in standalone Python scripts accessing the Squish API via the squishtest module.
  • Qt-specific:
  • macOS only: fixed a regression that menu items are sometimes not activated.
  • macOS only: fixed menu activations if the user running the test is not owning the display, but a different user logged in via fast-user switching.
  • mousePress/mouseMove/mouseRelease can now be called with object names again.
  • Fix a problem causing script errors when accessing HTML object properties with a null value in a Qt application that embeds a web view.
  • startaut (Section 7.4.7.1) now supports a new --cwd which can be used to define the working directory of the AUT.
  • Fixed duplicate recording of mouseClick statements for QtQuick web views.
  • Support access to QML list properties.
  • Support disabling native dialogs with Qt 5.7 and later.
  • Java-specific:
  • Fixed an issue in the type function causing it to fail entering certain characters into into Swing table cells.
  • A performance regression related to the parentItem/leftWidget/aboveWidget properties in object names was fixed, object lookups for names using any of these properties should be much faster now.
  • Add support for JavaFX SubScene controls.
  • The mouseClick function now correctly scrolls JTable cells into view.
  • Fixed a regression related to JList items.
  • Fixed SWT/GTK support for SWT version newer than 4.4 and GTK2 being used.
  • Greatly optimized execution of table verification points for large tables.
  • Web-specific:
  • A new script function attachToBrowser was introduced which can be used to attach to a browser instance that has not been started by Squish/Web (for Microsoft Internet Explorer, Safari, Firefox/Mozilla and Chrome).
  • Fix a problem causing a crash of the webhook process when accessing properties of already closed tabs.
  • Fixed a stability issue in the webhook program when using Microsoft Internet Explorer in cases where retrieving the DOCUMENT object failed.
  • Fix a problem with sending touch events on iOS 8.2 and later
  • Fix a problem when doing device-testing where at the end of the recording or replay the browser would not reset properly and hence subsequent test runs/recordings wouldn't be possible.
  • Enforce disablement of the safe-mode dialog in cases where the Firefox/Mozilla process is being forcibly terminated.
  • Fixed a packaging problem that prevented Flex support to be available in Mac OS X packages of Squish for Web.
  • Enable hooking into sub-process by default, fixes regression Java Web-Start hookup from browser.
  • Mac OS X-specific (Cocoa/Carbon edition):
  • Fixed accessing empty cells in an NSOutlineView that uses bindings for setting its data.
  • Made screenshots of windows with rounded borders or transparent windows where background is visible more stable by enforcing a white background when taking the screenshot.
  • startaut (Section 7.4.7.1) now supports a new --cwd which can be used to define the working directory of the AUT.
  • Tk-specific:
  • startaut (Section 7.4.7.1) now supports a new --cwd which can be used to define the working directory of the AUT.
  • Source Packages:
  • The Squish Classic IDE has been removed.
  • Building Squish Tools (Runner, IDE Utils) now requires Qt 4.2 or newer
  • Platform Support:
  • Pre-notification for users of the Unix-based operating systems AIX and Solaris: as of the next Squish release support for those platforms may be available in form of remote testing only. This is due to the dwindling support of frameworks employed by squishrunner and Squish IDE. Also see this dropped platform announcement by the Eclipse project, for example.

New in Squish 6.1 (Sep 13, 2016)

  • General:
  • A new verification point type Visual Verification Point has been introduced which greatly simplifies verifying the appearance of groups of controls (e.g. entire dialogs).
  • Added correlation based image comparison method.
  • A new installation program was implemented for Windows, Linux and Mac OS X. The new installation program supports both unattended installations as well as creating shortcuts on the desktop or start menu.
  • Fixed an issue causing high CPU usage when executing drag-and-drop operations on X11 systems.
  • New test report versions were added to contain the results of Visual Verification Points. The new report generators can be selected by passing json1.1, xml3.1 or xml2.2 on the command line.
  • Squish IDE-specific:
  • Creating scripted property verifications will now generate code using the waitForObjectExists function, shortening the generated code.
  • Support choosing the editor which is used to open files from the testcase or testsuite, including allowing to use the system editor for the file.
  • To simplify test failures and interaction with technical support, it is now possible to save object snapshots of (sub-)trees of the AUT's object hierarchy via a context menu entry in the application objects tree or saveObjectSnapshot function.
  • The used license key is now shown (and can be changed) via the Help menu of the Squish IDE.
  • Improved error reporting in case creating screenshot verification points fails.
  • Fixed crash when spying with multiple contexts and the not-current context registering new classes or namespaces.
  • Fixed a problem with starting the recording after closing an object not found dialog through the Debug button.
  • Fixed a problem causing the Squish IDE to hang when trying to create a verification point during a recording session on Linux.
  • Scripting:
  • A new Screen API was introduced which allows querying information about the connected screens (such as the display resolution).
  • A new ToplevelWindow API was introduced which allows generic interactions with toplevel windows, such as minimizing, maximing, closing or moving windows.
  • Support passing arbitrary callables (e.g. methods) to the waitFor function in Python.
  • Calling test.fixateResultContext without any argument now actually complies to the documentation and behaves the same as test.fixateResultContext(1).
  • Greatly improved the testData.put function. Besides of ability to copy large files, they will be copied much faster than before.
  • Added WebSocket client support for JavaScript test scripts.
  • Added script functions setClipboardText and getClipboardText for clipboard manipulation on AUT side. Users of non-Qt AUT on Linux needs to install the xsel tool for this feature to work.
  • Timeout problems when communicating to the AUT now cause script exceptions to be raised (which can be caught and handled) instead of aborting the test execution right away.
  • Test execution will now wait for all hooked subprocesses of started applications to terminate before ending the test run.
  • The test.compare function in Perl now supports comparing complex AUT objects.
  • A new testSettings.objectNotFoundDebugging property was added which can be used to temporarily deactivate the object not found dialog.
  • Fixed the test.vp function such that an expected failure does not skip following BDD steps anymore; test.vp with an expected failure no longer throws a failed verification exception when testSettings.throwOnFailure is set to true.
  • The test.fixateResultContext and test.restoreResultContext functions now correctly influence the locations of test errors logged in response to script exceptions.
  • Qt-specific:
  • New approach for hooking into a Qt 5 AUT that is compatible with the Gold Linker
  • Support for Qt WebEngine in both QtWidgets and QtQuick applications.
  • Support screenshots of QtQuick applications on Qt 5 embedded and mobile platforms that do not support native screen grabbing
  • Display (most important) properties of QRegExp in the spy.
  • Add support for QRegularExpression including properties in the spy.
  • The dllpreload program now respects a new SQUISH_DLLPRELOAD_DISABLE environment variable which can be made to make dllpreload not inject any code into the given process but rather launch it straight away.
  • Replay on QtQuick items now ensures that the toplevel window for the item has input focus and raise a script error if focusing fails.
  • Fixed a problem which caused AUTs to not launch sub-processes on Windows in case the sub-process is launched with the CREATE_BREAKAWAY_FROM_JOB flag.
  • Fixed non-working menu recording on Mac OS X with Qt 5 in some cases (especially when a toplevel QMenuBar object is used).
  • Fixed playback of activateItem on Mac OS X with Qt 5 in some cases where menu items in front of the item that should be activated was merged into the application menu.
  • Improved performance for listing a huge number of toplevel objects (i.e. when hitting a breakpoint).
  • Support building Qt toolkit support with GCC 6.1 or newer.
  • Blinking of text cursor ("caret") is temporarily suspended now while taking screenshots.
  • Java-specific:
  • Support JavaFX HiDPI scaling on Windows.
  • Support JavaFX on Linux framebuffer.
  • Support for replaying SWT/Gtk3 on HiDPI X11 displays.
  • Fix for replaying on SWT/Gtk menus having scroll buttons.
  • Speedups in JavaFX object lookup when embedded in SWT.
  • Blinking of text cursor ("caret") is temporarily suspended now while taking screenshots.
  • Added support for hooking SWT applications based on Eclipse 4.6.
  • Web-specific:
  • Include the browser tab container in all names generated by Squish for Web instead of only those generated for recorded interactions.
  • Support using the simplifiedInnerText property in object names and record that property instead of innerText to improve stability of tests across different browsers.
  • Added HTML_Select.deselectByValues, HTML_Select.deselectByIndexes and HTML_Select.deselectByTexts convenience functions for the HTML_Select objects to deselect items in a select element.
  • Provide HTML_Select.selectedValues, HTML_Select.selectedTexts, HTML_Select.selectedIndexes and HTML_Select.selectedLabels convenience properties for HTML_Select objects that provide the value, text, index or label of the selected items of the object.
  • Fixed a problem with Chrome where after a navigation the new page wasn't properly hooked, causing object lookup errors and no DOCUMENT object in the Spy.
  • Added detailed instructions how to enable "Allow JavaScript from Apple Events" which is required to automate Safari on Mac OS X 10.11.5 and later.
  • Added Browser.majorVersion function.
  • Added top/bottom alignment parameter to the scrollTo function.
  • Added startDrag and dropOn functions to simulating drag and drop operations.
  • Mac OS X-specific (Cocoa/Carbon edition):
  • Added support for view-based NSOutlineViews: In previous Squish versions, the cells in a view-based NSOutlineView appeared as NSNull objects and you couldn't do much useful things with this. In Squish 6.1 you now get the real view object for the cell instead of the NSNull. If you use the NSNull objects in your test scripts, you have to update them to use the view objects instead.
  • iOS-specific (iPhone/iPad edition):
  • Added support for testing applications in the iOS Simulator of Xcode 8.
  • The libsquishioswrapper.a library used for device testing has changed its dependencies for linking: use -lc++ instead of -lstdc++ and additionally specify -liconv for the linker options when building the app for Squish device testing.
  • Fixed automatically turning on accessibility properties on iOS 9.3 devices.
  • Added script function hideKeyboard to hide the on-screen keyboard.
  • Source Packages:
  • Detect if Qt needs a C++11 enabled compiler (Qt >= 5.7).
  • Support building JavaScript support with MSVC14.
  • The configure script now rejects unknown arguments instead of ignoring them.
  • Documentation:
  • Overhauled the instructions for installing binary packages.

New in Squish 6.0 (Sep 4, 2015)

  • General:
  • Attaching to running AUTs is now much more firewall-friendly; it uses a single connection from squishserver to the AUT.
  • Test execution is now more stable when dealing with test data files which end with an empty line.
  • The squishide binary was moved to the toplevel folder, i.e. it's no longer necessary to open the bin folder to launch the Squish IDE.
  • Improved support of binary packages with very old Linux distributions like RedHat Enterprise Linux 4 and SuSE Enterprise Linux 10.
  • A new XML 3 report generator was added which supports nested test cases and which improves reporting of verifications.
  • A bug in the XML 2 report was fixed which caused the name of verification points to be missing sometimes.
  • Squish IDE:
  • The Squish IDE is now based on Eclipse 4.4.
  • Various usability improvements to the verification point editor.
  • The Squish IDE is bundled with Java™ now on Mac OS X, so no manual installation is necessary anymore.
  • The control bar is not placed above all other windows anymore.
  • The Goto definition shortcut now works as expected for Python scripts.
  • Various usability improvements to the control bar.
  • An issue was fixed which caused opening test suites to fail in case the suite.conf file contained empty lines.
  • A problem was fixed which caused opening the offline HTML manual as well as the PDF manual to fail.
  • An issue was resolved which caused the 'object highlighting' feature to interfere with creating screenshot verification points.
  • Selecting more than one test case will hide the Test Case Resources to avoid confusion about which test case resources are shown.
  • The Squish IDE no longer executes test cases multiple times when using the Execute Test Suite feature, even if a test case is listed multiple times in the suite.conf file.
  • Fixed a problem which caused the control bar to show HTML formatting tags like when recording tests.
  • The list of supported GUI technologies and scripting languages shown when creating a new test suite is now sorted alphabetically.
  • Using the Record Snippet feature in an empty Python test.py file will now correctly add the required main() function definition.
  • The test results view now works correctly with two subsequent result entries having the same text.
  • An issue was resolved which caused the Squish IDE to attempt executing non-existing test cases when using the Execute Test Suite feature.
  • Elements of lists shown in the variable watcher are now sorted.
  • Methods shown in the Methods view of the Spy are now sorted alphabetically.
  • Auto-completion for testData.dataSet now works correctly in Python scripts.
  • Fixed a problem with showing the checkmark in the Recent Test Results dropdown next to the currently selected test result.
  • Changing the path to the Squish tools being used will now also switch the path to the Perl and Python interpreters such that the interpreters shipped with the selected Squish package are used.
  • Warnings and errors in test scripts are now indicated by a small overlay icon in the test case list and in the test case and test suite resource views.
  • A problem was fixed which caused the Squish IDE to show squishrunner output in the wrong order.
  • Fixed an issue with creating table verification points which caused the table to be compared twice when selecting the table again before saving the verification point.
  • The Make Code Data Driven wizard now saves all open editors to ensure that the latest data is used.
  • Fix a problem with saving changes from the Object Map Editor when a name was removed and all referencing object names have been adjusted to point to another name.
  • The Open Symbolic Name feature no longer triggers a null pointer exception when used in Tcl scripts.
  • Fix a problem when trying to open the Object Map of a Test Suite right after closing another Test Suite for which the Object Map had been opened too.
  • Fixed a problem with View Differences for verification points where the verification point filename differed in casing from the way it is being called in the test script's test.vp invocation.
  • A new setting was added to the preferences dialog which permits disabling that the Test Results view is raised automatically after executing a test.
  • Script comments spanning multiple lines are now collapsed by default.
  • Scripting:
  • A new testSettings.testCaseName property was introduced which can be used to set the name of the current test case; he test name will be reflected in the test report.
  • Timeout errors which occur while executing script statements when using the squishtest Python module will now raise script exceptions instead of automatically terminating the Python interpreter.
  • The squishtest Python module now exposes a new setHookSubprocesses() method which can be used to enable hooking into sub-processes -- this is mostly relevant when testing Qt applications.
  • Importing the squishtest module into a Python script will no longer attempt to connect to squishserver; instead, the connection is only established when needed (e.g. when invoking startApplication).
  • The waitForApplicationLaunch function now takes an optional timeout argument which defaults to the "AUT timeout". This means it no longer waits forever in case no application is launched.
  • The ApplicationContext.name property now returns the full filename of the AUT - it's no longer cut-off at the first dot.
  • It's now possible to pass a callable (e.g. a function) to the waitFor function.
  • The waitFor function in Python scripts now returns a boolean value as documented.
  • A new script function test.stackTrace was added which yields the stack trace for the current script execution.
  • squishrunner features a new --scriptargs switch which can be used to pass arguments to test scripts from the command line.
  • The testSettings.logScreenshotOnPass/testSettings.logScreenshotOnFail properties are now honored for all test functions that generate test results.
  • The debugger for Perl test scripts was greatly improved; step into/over now work as expected, the call stack is displayed correctly and the variables view now works correctly with global variables.
  • Syntax errors as well as runtime errors in Perl scripts are now reported correctly, and they show up as 'Script Error' results in the test report.
  • The error location for exceptions raised in deeply nested Perl scripts is no longer (eval N) but the actual file location.
  • The testData.get function now works correctly with empty files.
  • Qt-specific:
  • Fixed the screen coordinates of web elements returned by the screenRect property.
  • Added support for QQuickWidget controls with Qt 5.4 or newer.
  • Improved support for QML context access.
  • Added support for testing Qt applications on iOS and Android.
  • Support for calling custom Qt methods with single precision float arguments.
  • Recording of input methods on Qt Quick 2 (i.e. when using an on-screen keyboard) is now supported.
  • Squish for Qt now prefers the QObject::objectName property over text and caption. This can greatly improve the generated names for top-level windows which change their caption.
  • Added support for recording without coordinates for Qt Quick 2. This results in cleaner scripts which are less dependent on screen or object geometry.
  • Improved synchronization and reliability of replaying clicking, tapping and typing functions on Qt Quick 2 applications.
  • Introduced support for calling custom QObject methods that take a custom enum value registered via the Q_ENUM macro.
  • Added support for automating Qt 5 applications running on Windows CE.
  • Java-specific:
  • It is now possible to record & replay gestures on JavaFX applications using Java 8 when running Windows 8 or later.
  • Fixed an issue with recording actions on SWT combo box controls on Mac OS X.
  • Support for SwingNode was added, enabling recognition for Swing controls embedded into JavaFX applications.
  • Web-specific:
  • It is now possible to specify a containerproperty in object names. This is already used to indicate the browser tab when generating names, but can also be added manually to help disambiguating object names that appear multiple times in different places on a web page.
  • A problem was fixed which caused hooking into Google Chrome not working correctly in some cases.
  • It's no longer necessary to close all running Firefox/Mozilla instances before running a test with Firefox/Mozilla.
  • A problem was fixed which caused replaying actions on Java™ applets to fail because of an exception raised by SwingUtilities.invokeLater.
  • A problem in the loadUrl function was fixed which caused launching Microsoft Internet Explorer to fail if loadUrl is called right after closeWindow.
  • Speed up hovering over objects by removing the expensive occurrence calculation for the object name. The occurrence is only calculated once an object is selected by clicking it.
  • Expose the browsers tabs/windows opened during a Squish test to the test script. Tabs are identified using multi-property names and hence can be looked up using waitForObject. Squish provides functions to query the tabs and activate a particular tab. Newly recorded scripts will automatically get object names generated that include the tab to ensure the object lookup is done in the right tab. This feature is supported for Microsoft Internet Explorer, Firefox/Mozilla, Google Chrome and Apple's Safari.
  • An issue was resolved which caused the waitForObject function to not consider the visibility of HTML objects, making it return too early.
  • Closing Microsoft Internet Explorer windows will no longer show confirmation dialogs.
  • Fixed a problem causing both mouseClick and clickButton to be recorded when clicking buttons in the 'addressbook' example.
  • Recorded object names now make use of the visible property to reduce the necessity to use the occurrence property.
  • The setContext and waitForContextExists functions now throw an exception if the given context name is not found. The old behavior can be restored using the ThrowErrorOnUnknownContextNames setting available in etc/webwrapper.ini.
  • This also affects object names using the context property.
  • A problem was fixed causing the object highlighting to not stop for Java™ applets.
  • Fixed a problem with how the screen geometry of scrolled HTML elements were calculated which caused calling functions like nativeMouseClick or typeText to fail.
  • Taking screenshots of HTML elements on Mac OS X now works as expected.
  • Automating web pages using Microsoft Internet Explorer no longer requires adding those pages to the Trusted Sites zone of Microsoft Internet Explorer.
  • Flex-specific:
  • A problem was fixed which caused accessing the id/name attributes of OBJECT elements to not work correctly.
  • The Flex 'addressbook' example now launches correctly in newer versions of Firefox/Mozilla (version 29 and later).
  • Mac OS X-specific (Cocoa/Carbon edition):
  • Support for automating WKWebView controls was added.
  • A memory leak related to menu interactions was fixed.
  • Add-Ons & Integrations:
  • The Visual Studio integration supports Visual Studio 2013.
  • Source Packages:
  • Squish can now be built against Ruby 2.2.
  • Squish can now be built using Visual Studio 2015.
  • Experimental support for building against Python 3 was added.
  • The compiler detection for GNU C++ and compatible toolchains, including Clang and QNX QCC, was improved.
  • The configure switches --enable-debug and --disable-debug have been split into separate switches to allow building Squish against a release Qt library but with debug information; refer to configure --help for details.
  • Support for cross-compiling on Windows for Unix targets is now supported for most components of Squish for Qt.

New in Squish 4.2.2 (Sep 24, 2012)

  • General:
  • Fixed an issue which caused squishserver to be blocked by the local firewall if the --local command line switch was used.
  • Python test scripts should now run significantely faster.
  • Fixed a problem which caused no 'main' function to be recorded in some cases when invoking squishrunner on the command line.
  • Fixed a problem with recording test cases while using the --testcase option with squishrunner.
  • Improved handling of Excel spreadsheets with certain classes of Unicode characters.
  • Made executing test cases with a space in the name work in the legacy IDE and when calling squishrunner on the command line with the --testsuite switch.
  • The findObject now fails more quickly in test suites with large object maps; it also generates more sueful error messages.
  • IDE:
  • Fixed a problem which caused the Environment Variables to disappear from the test suite settings editor.
  • Integrating the Squish IDE plugins into an existing Eclipse setup is now more robust.
  • The Use as Expected Result feature should no longer overwrite the previously configured comparison mode.
  • Global test scripts can now be opened even if they are stored in a directory called Squish Global Scripts.
  • Old Java test suites created with the AWT or SWT toolkits are now correctly detected as Java test suites.
  • The envvars and suite.conf files can now be opened with the Eclipse Navigator when integrating into an existing Eclipse setup.
  • It is now possible to create test cases in other views than Test Suites when integrating into an existing Eclipse setup.
  • Resolved an issue with editing table cells in the test data editor in case they had no content.
  • A problem which caused Python scripts to be recorded which wouldn't replay anymore due to an incorrect indentation was resolved.
  • The selected test case is no longer changed when renaming a test case using the context menu.
  • The Enable Test Case context menu entry now works correctly even if multiple test cases are selected.
  • The Properties list shown in the spy is now sorted alphabetically.
  • There should no longer be duplicated squishrunner processes When spying after hitting a breakpoint with multiple applications being active.
  • The context menu for folders in the Test Suites view now contains Delete and Rename actions.
  • Files which don't belong to Squish can now be renamed via the Test Suites view.
  • The Test Results view now shows detailed information for each results in the toplevel items.
  • Fixed parsing of test suite configuration fields that start with empty lines or contain comments.
  • Qt-specific:
  • The waitForObjectItem function can now be used with QComboBox (Qt 3) and Q3ComboBox (Qt 4) controls when using the Motif style.
  • QML items on a QGraphicsView object are supported now.
  • Fixed a problem with generating the real name of Qt widgets which were embedded into a QGraphicsView.
  • openContextMenu can now be used on QModelIndex objects.
  • mouseClick can now be used on Qt3 QMenuItem objects.
  • Fixed a problem which broke resolving objects using multi-property names when the test suite defaults to hierarchical names.
  • Added basic support for calling slots of custom QObject subclasses.
  • Improved detection for QGraphicsItem and QGraphicsObject objects contained in a QDeclarativeItem or QDeclarativeView. Such objects are now visible in the spy and can be iterated using the object.children function.
  • Fixed a crash which could have triggered when spying the application after attaching to it.
  • Replaying Qt tests on Windows should no longer show message boxes about QtDeclarative4.dll, QtWebKit4.dll and other additional Qt libraries missing (these message boxes didn't actually indicate a problem).
  • Fixed a problem which occasionally caused replaying actions on popup menus in Qt 4 applications to get stuck on Mac OS X.
  • Resolved an issue with recording text input on QComboBox objects (the last character was not recorded in some cases).
  • It's now possible to reference QGraphicsItem objects via their x/y coordinates by using object names like {type='QGraphicsItemRect' x='120' y='50'}.
  • Fixed a crash which was sometimes triggered when calling the clickItem function with an invalid item name.
  • Made accessing properties which contain a hyphen work in QtWebkit.
  • Java-specific:
  • Resolved an issue which sometimes caused replaying a right-click to not open a context menu in SWT applications running on Unix.
  • Fixed a problem which might have caused a 'Failed to scroll' error when replaying a test script.
  • Added support for JRE 7.05 or newer on Windows.
  • SWT 3.100 (used in Eclipse 4.2) is supported now.
  • Fixed a problem which caused some URL to be not loaded correctly when using Java web start.
  • Fixed a problem with replaying mouseClick on AWT/Swing based applets.
  • Web-specific:
  • Fixed executing the typeText function with Firefox 12 and newer.
  • Resolved an issue with replaying double clicks on SmartGWT items.
  • Fixed a problem which caused replaying a test script get stuck when the website being tested shows an alert() message box very early (while loading).
  • The loadUrl function now works more reliably with web sites which load additional data via a timer.
  • waitForContextExists now works with context names containing non-alphanumeric characters.
  • The selectOption will not block test execution anymore for web sites which show a native dialog when accessing the select-element.
  • Made accessing properties which contain a hyphen work in Safari.
  • The raiseBrowser function is now supported for Safari.
  • Firefox is now started correctly when selecting its application bundle in the setup program on Mac OS X.
  • Mac OS X-specific (Cocoa/Carbon edition):
  • Added support for taking screenshots of NSWindow objects.
  • Made mouseMove and mousePress work with objects which don't subclass NSView (such as items in a NSOutlineView control).
  • Added support for NSRange objects.
  • Tk-specific:
  • Hooking into Tcl applications which load Tk via package require Tk and then spin the event loop manually instead of using Tk_MainLoop is supported now.

New in Squish 4.1 Beta 1 (Apr 20, 2011)

  • Many improvements to the Squish IDE, with highlights including tools to tune image verifications, support for globally shared scripts, improved code formatting, using PyDev as the default Python editor, and the ability to add the Squish IDE to Eclipse as a plug-in
  • Image verifications can be tuned to use different algorithms and tolerance levels for fuzzy comparisons
  • Improved packaging and simpler installation
  • Squish for iPhone's improvements include support for grabbing screenshots and for executing screenshot verifications as well as better scrolling and gesture support
  • Squish for Java's improvements include support for testing Cocoa SWT GUIs and better test script portability
  • Squish for Mac's improvements include support for testing 64-bit Cocoa GUIs
  • Squish for Qt's improvements include dedicated support for QML and the ability to eavesdrop on Qt signals in test scripts
  • Squish for Web's improvements include support for testing on more browsers, such as Chrome and Opera, as well as Safari on iPhone
  • Squish for Windows's improvements include support for dynamically accessing .NET and COM properties and methods, and support for third-party controls such as Infragistics NetAdvantage.

New in Squish 4.0.2 (Nov 9, 2010)

  • General:
  • Fixed a bug in the Tcl support which caused the lookup of object names with non-ASCII characters to fail.
  • Fixed a rare crash in the squishserver program that affected Solaris systems.
  • Fixed a regression so that now if you define a cleanup() function it will be correctly called after the test's main() function finishes—even if the application under test crashes during a test.
  • Corrected the timestamps output by squishrunner for Squish XML 2.1 format test results.
  • If the optional message that can be passed to verification functions such as test.verify() and test.compare() is given, squishrunner will now correctly include the message when it outputs Squish XML 2.1 format test results.
  • Fixed calling the vpdiff utility with arguments which contain non-ASCII characters.
  • Corrected error messages shown when replaying Python or Tcl test scripts so that non-ASCII characters are displayed correctly.
  • Fixed various problems that occurred when executing external programs in test scripts on Windows.
  • Once the testSettings.logScreenshotOnError property is set to true, any screenshots taken subsequnetly will now show the contents of all the screens on Windows instead of showing only the primary screen.
  • Fixed a crash which occurred when generating a symbolic name for an object whose real name has a row property but no column property.
  • Errors which occur during a call to the startApplication() function now result in a catchable exception being raised.
  • Fixed a problem which caused break points to be stopped at more often than intended when executing some Perl test scripts.
  • Classic IDE:
  • There is no longer excessive CPU usage when recording test script snippets.
  • The naming scheme set in the test suite settings is now correctly honored when starting to record actions after a breakpoint is reached.
  • New IDE:
  • The Variable view now correctly shows Python variables whose value is None.
  • Fixed the subtract and grey diff modes in the comparison view that shows failed image comparisons.
  • Attempts to create test suites with invalid names are now handled more gracefully.
  • If no test suite is selected then no shared resources are shown.
  • Fixed a rarely occurring error message when selecting Copy Real Name from the Object Map view's context menu.
  • Correctly handle objects.map files even when they are not stored within the test suite directory.
  • Only allow executable files to be chosen as the AUT.
  • Fixed specifying alternative directories for storing test case templates.
  • Don't start inline editing all the time (to rename a test case) when double-clicking test case items. Only initiate editing when doing a “slow” double-click. A normal double-click simply opens the test case.
  • Image verification points are now stored using the PNG format to ensure that alpha values are correctly handled.
  • Added a Run Test Suite menu entry to the Squish menu for convenience.
  • Fixed a bug which caused test cases to disappear when removing files (or directories) with the same name from a different location.
  • Fixed scriptifying verification points when the property value contains newlines.
  • Mark the test data editor as dirty when modifying the column headers.
  • Respect configured indentation width and tabs vs. spaces settings when recording test scripts.
  • Fixed a few erroneous cases where verification points were opened in a text editor instead of being opened in the verification point editor.
  • Made sure that script files always have a proper extension.
  • Fixed the spy so that it behaves correctly in tests which call the startApplication() function.
  • Support opening test suites by dragging a suite.conf file from the Windows explorer onto the Squish IDE.
  • Added a pause button to the control bar which can be used to suspend the test execution.
  • No longer show binary Python files (e.g. *.py[co]) in the test suite resources list.
  • No longer show test suites that have been deleted outside the Squish IDE (i.e., deleted from the file system) in the test suite's view.
  • Only enable the Run Test Suite button if at least one test case is checked.
  • Make sure that the buttons for adding new test suite resources are always enabled when appropriate.
  • Added a Copy to clipboard (Property Value) menu item for the Spy's context menu to make it easy to copy property values to the clipboard.
  • All toolkits:
  • Made passing to the nativeType() function correctly simulate a press of the caps lock key.
  • Qt-specific:
  • Added support for Qt 4.7.
  • Clicks on QModelIndex objects succeed even if relative coordinates are given which are beyond the object's bounding rectangle.
  • Fixed a few cases where taking screenshots of objects would not work correctly on Windows Vista and later Windows versions.
  • Fixed invoking script event handlers in case an application constructs (and destroys) multiple QApplication objects.
  • Fixed issues when creating screenshots on QGLWidget objects.
  • Make it possible to not recognize items in a QGraphicsView widget as distinct items.
  • Added a configuration switch to enforce that no native dialogs are shown when running a test. This improves the portability of test scripts across different operating systems.
  • Fixed interacting with native windows dialogs opened by applications built with Qt 4.5 and earlier Qt versions.
  • Fixed the list of unmatched properties that is shown when looking up an object has failed.
  • Added a new collapsed property to QModelIndex objects.
  • Fixed a problem with calling mouseClick() to click on a Q3ListBoxItem inside a Q3ComboBox.
  • Fixed recording tests on Maemo devices.
  • Fixed clicking on any column other than the first when clicking on QComboBox items.
  • Correctly record any modifier keys that are pressed when recording mouse wheel movements.
  • Fixed various stability problems when executing the type() function.
  • Fixed replaying actions on Qt/Cocoa menus on Mac OS X.
  • Improved accuracy when dragging QGraphicsItem objects.
  • It's now possible to use a shell script as the AUT in Qt tests on Mac OS X (i.e., a shell script that starts the real Qt-based AUT).
  • Fixed excessive CPU usage when creating a verification point while recording a test script.
  • Java-specific:
  • Fixed replaying mouse drags using the right mouse button on AWT applications.
  • Fixed excessive CPU usage in some situations after the recording of a test script finishes.
  • Made replaying drag and drop actions more reliable.
  • Improved the error message when attempting to start a Java™ application which is not registered with the squishserver.
  • Added support for instantiating Java™ arrays from within test scripts.
  • Web-specific:
  • Improved the portability of newly recorded test scripts between Microsoft Internet Explorer and Firefox/Mozilla.
  • Fixed executing the type() function when passing an object name (instead of an object) as the first argument.
  • Fixed the recording of tests on web pages that have spaces in their file names.
  • Improved the error message when performing an out-of-bounds access on an HTML array.
  • Improved the general robustness of test scripts to cope with timing differences when replaying tests.
  • Fixed a problem with recording tests when some user interaction causes the browser to load a new page.
  • Record an action when pressing Return in a form.
  • Improved the reliability of replaying mouse clicks when executing tests with Firefox 3.6
  • Greatly improved the execution speed of setText() calls with Firefox.
  • Improved the recogition of frames and iframes when recording or replaying tests with Safari.
  • Stopped bogus errors from appearing in the test results when accessing certain properties of web objects.
  • Made replaying test scripts which contain non-ASCII characters work with Safari.
  • Resolved some issues when iterating over a long list of child objects or retrieving a property which has a very long value (e.g., a long string).
  • Made calling loadUrl() ... closeWindow() in a loop work with Firefox/Mozilla and Microsoft Internet Explorer.
  • Stopped bogus errors appearing in the test results when certain kinds of object lookups failed.
  • Fixed recording clicks on the Submit button in forms.
  • Mac-specific (Cocoa/Carbon edition):
  • Simplified changing the Python version used. Xcode (and the install_name_tool program) are no longer needed. Instead, only the paths.ini file needs to be adjusted.
  • iPhone/iPad-specific:
  • Fixed a problem with generating touch events when replaying tests on iPhone OS 3.
  • Only record clicks on views that respond to user interaction.
  • Tk-specific:
  • Improved the error message when a call to the clickItem() function fails.
  • Improved the reliability of clicking items.
  • Rewrote the Tk address book example program to improve usability and visual appearance. (This example is now covered in the Tk testing tutorial.)
  • Fixed names generated for top-level windows in Hyperworks 11 applications on Windows.
  • Fixed a runtime error that occurred when clicking items which have no text.
  • Source Builds:
  • Stopped building the Qt WebKit extension if the web wrapper is disabled.
  • Made compiling Squish for Qt packages work for Maemo5.
  • Improved the configure program so that it can find dblatex on Windows systems (if dblatex is installed).
  • Documentation:
  • Fixed the documentation of the installEventHandler() function to reflect the actual behaviour.
  • Improved and updated the Qt, Java™ AWT/Swing, Java SWT, and Mac OS X tutorials.
  • Added a new tutorial for testing Tk applications.
  • Added small improvements and updates to the User Guide.
  • Improved and updated the Tools Reference Manual.
  • Added a new IDE Reference Manual which documents the new Eclipse-based IDE.

New in Squish 4.0.1 (Aug 7, 2010)

  • Deal with the Tcl "wide" integer type. Fixed overload errors when e.g. the [seek] command is being used.
  • Don't let internal lookup errors from object.exists() spill to other function calls.
  • squishrunner --testsuite ... invocations will now correctly print all stderr output of the test script to stderr instead of merging stderr and stdout output of the script into stdout. This restores the Squish 3.4.x behaviour.
  • Fixed wrong "Connection closed" error that occurred in some circumstances on application exit (for example if the application was quit inside an event handler).
  • Fixed problems in command line runs of squishrunner when using the --testsuite argument in case any of the tests which is executed prints plenty of text to the standard output channel.