2.39. Version 4.0.0

Table of Contents

2.39.1. The Squish 4.0 IDEs
2.39.2. General
2.39.3. Squish for Win32 Edition—New Edition
2.39.4. Squish for iPhone Edition—New Edition
2.39.5. Squish for Qt—Improved and Enhanced
2.39.6. Squish for Java—Improved and Enhanced
2.39.7. List of changes

Squish 4 is a completely new release of the Squish testing toolset. This new version is fully backward compatible and will run all your existing tests created with Squish 3, so no changes to your tests or to your testing procedures are necessary.

Although Squish 4 maintains backward compatibility, the new version includes a lot of new features and additional functionality that should help ensure that your testing is more efficient and reliable than ever before.

The most noticeable change in Squish 4.0 is that it has a new Eclipse-based IDE. As a result of this the installation procedure has changed—a couple of extra steps are needed—see How to Install Squish (Chapter 3) for details.

2.39.1. The Squish 4.0 IDEs

The Squish Classic IDE (that Squish 3 uses) continues to be maintained. However, since the New IDE has far more features and functionality overall than the Classic IDE, the Classic IDE may eventually be phased out.

The Squish New IDE is a stand-alone IDE built using the Eclipse libraries, and sharing many of Eclipse's features and advantages. The New IDE offers considerable improvements over the Classic IDE:

  • Vastly improved functionality for script editing and debugging compared with the Classic IDE.

  • Much more streamlined workflow for recording, inserting verifications, spying, editing, and debugging. One of the most frequently requested features has been implemented: the ability to insert Verification Points while a script is being recorded.

  • Lots of integrations—for example, with version control systems.

  • More powerful and capable Object Map Editor including a search facility and more understandable and flexible ways of viewing the object map.

2.39.2. General

Squish 4 also includes many other new and enhanced features, including:

  • Much shorter recorded test scripts. This is achieved by using the object returned by calls to the waitForObject function. For example, the two separate statements waitForObject(":OK_Button") and clickButton(":OK_Button") become a single statement with just one object name lookup: clickButton(waitForObject(":OK_Button")).

  • The waitForObjectItem function offers much more convenience. It now returns a reference to the item—this can be passed to other functions, such as the mouseClick function.

  • Significantly faster test script execution. This is partly as a result of recording shorter test scripts and partly the result of additional internal optimizations. (One consequence of this improvement is that scripts that don't use proper synchronization—e.g., the waitForObject function and similar—may need to add a synchronization call to be timing independent.)

  • The items that are contained inside container objects (e.g., list items inside lists, cells inside tables, and tree items inside trees), and now treated as full-blown objects in their own right. This makes them much more convenient to access. Thus, a table cell can now be accessed either using its row/column, or by text matching (including using wildcards)—for example, waitForObjectItem(":A_Table", "5/3") returns the item at the fifth row and third column of the given table.

  • Various short forms of script commands that allow for more convenient and terse script development. For example mouseClick(obj) will perform a click in the center of obj using the left mouse button.

  • Greatly improved recognition of native Windows controls when creating Qt, Java, and Web tests.

  • Hudson integration so that Squish tests can be run from the Hudson continuous integration framework. (See installation instructions.)

  • A Squish plugin to integrate Squish test runs into the Seapine TCM framework.

  • Improved and restructured manual. The User Guide is now much more task-oriented and features far more examples, including those that show how to access and test items in list, table, and tree widgets in Qt and Java AWT/Swing and Java SWT applications, and using all of the scripting languages that Squish supports. Reference material that was formerly in the User Guide has been moved into the Reference Manual. (The manual is still being improved and enhanced and this will continue as an on-going process.)

2.39.3. Squish for Win32 Edition—New Edition

  • This new edition can be used to test native Windows GUI applications that use MFC, Visual Basic, .NET Windows Forms, and similar technologies.

  • This edition includes an extension mechanism to make it possible to create plugins to support the testing of third party controls. Inquire with technical support for access to the necessary SDK.

  • Support for testing embedded web content from embedded Microsoft Internet Explorer controls, by providing access to the content's DOM and HTML.

  • Add-on for testing applications developed with the 4GL PowerBuilder programming language by Sybase.

2.39.4. Squish for iPhone Edition—New Edition

  • This new edition can be used to test GUI applications that are built with Cocoa Touch, whether running in an simulator or on an actual iPhone, iPod Nano or iPad device. See press release.

2.39.5. Squish for Qt—Improved and Enhanced

  • Additional support for testing Qt applications on embedded devices—for example, for Maemo devices. (Squish already has support for testing Qt/Embedded and Qtopia applications.)

  • Tests can now access the slots and properties of custom AUT widgets without needing to create a custom application-specific bindings wrapper. (Behind the scenes Squish automatically creates bindings to the AUT's classes.)

  • Greatly improved support for QGraphicsView, including support for widgets displayed inside the graphics view.

  • All items—menu items, list items, table cell items, tree items, etc.—can be accessed like any other script-accessible object. This makes it possible to pick individual items in the Spy and to be able to use Squish's standard functions (such as findObject and waitForObject) on them.

  • An extension mechanism that supports the creation of plugins with dedicated support for third party controls. Inquire with technical support for access to the necessary SDK.

  • Support for testing embedded web content from embedded Microsoft Internet Explorer controls, by providing access to the content's DOM and HTML.

  • Support for testing embedded web content from QWebView controls from the QtWebKit module, by providing access to the content's DOM and HTML.

  • Support for testing QML applications based on the declarative UI framework that will ship with Qt 4.7.

2.39.6. Squish for Java—Improved and Enhanced

  • Tests can now access objects of any class used by the AUT without the need to register classes that are not wrapped by default. (Behind the scenes Squish automatically creates bindings to the AUT's classes.)

  • All items—menu items, list items, table cell items, tree items, etc.—can be accessed like any other script-accessible object. This makes it possible to pick individual items in the Spy and to be able to use Squish's standard functions (such as findObject and waitForObject) on them.

  • Support for testing embedded web content from embedded Microsoft Internet Explorer controls, by providing access to the content's DOM and HTML.

2.39.7. List of changes

A more detailed list of changes gone into 4.0 can be found in the beta release notes.