Updating or upgrading to new Squish versions

Last edited on

Overview

Upon updating (or upgrading) to a new Squish version, the following points should generally be considered.

General considerations and topics

Squish backwards compatibility

The major aim of Squish is to maintain a maximum of backwards compatibility. However, in some rare cases this may not be possible to achieve. Information about cases where backwards compatibility could not be maintained can be found in the release notes of the Squish manual.

Please make sure to check the release notes in the Squish manual of each intermediate Squish release for this information.

Test every new Squish version

Ensure to thoroughly test each Squish version before bringing a into production. Do not make assumptions.

Support rollback

In case problems occur with a new version in production, make it so that rolling back to the last known working setup is possible.

Squish versions covered by standard support

Consider updating to a Squish version that is covered by standard support.

Typically only the last releases of the two last major+minor version releases are supported. (See 1. STANDARD SUPPORT AND MAINTENANCE .)

For example, at the time of this writing:

Skipping Squish releases

It is a viable strategy to skip Squish releases when updating.

But in case of problems that cannot be easily solved, be ready to test any of the skipped Squish releases. If an earlier release does not exhibit the same problem, consider updating to this instead, for the time being.

Support for old/new technologies and old/new technology versions in Squish

Ensure that the Squish version still supports the required technology or technology version.

Ensure that the Squish version already supports the required technology or technology version.

If in doubt, please contact our technical support to clarify this ahead of time.

Information about deprecated functionality and deprecated technology support can be found in the release notes in the Squish manual (and via the search function). (See "Deprecation Status Updates" of Squish Squish 9.2.0 and Squish 9.1.1 , but also earlier version.)

Update one-at-a-time

When your application is being updated to a new version of the underlying technology, update the test setup for the current version of the application (based on a previous version of the underlying technology) to the most recent Squish version possible.

When the test setup needs to be updated to a new version of the operating system, try to make it so to only update that, then ensure your automated tests are still working. This assumes that new versions Squish still support this older operating system version. If it does not, check the most recent version of Squish that still supports that version of the operating system.

Squish known issues

Check the known issues of the intermediate and the desired Squish versions for issues that are relevant to your use cases.

Please find information about known issues in the Squish knowledge base .

Timing issues in test scripts

Test scripts may be failing due to insufficient synchronization. For example, an object that should be clicked may not have arrived at its final position on the screen yet, for example due to animation, or because the view it resides in is still (or constantly) being updated.

A simple way to test for such types of problems is to insert a snooze(3) function call before the lines where the problems occur, and then check if the problems remain. If this delay avoids the problem, one needs to consider how to improve the synchronization for the required object state.

A possible approach to try check, as well as to stabilize test execution, can consist of implementing the functions waitUntilObjectReady() and waitUntilObjectItemReady() in the test scripts, and to simply add such a snooze() based delay in them:

Due to changes in Squish

This type of problem can also occur due to internal changes in Squish, for example when some Squish operating is sped up in a new version, so that the test execution may get to interacting with objects before the have reached the desired state.