View a full recording of the webinar* about automated Qt and QML GUI testing with Squish. During the Webinar, several questions were answered which can be found below the video.
Can Squish be integrated into continuous integration environments?
Does Squish support Qt bindings like PyQt or PySide?
Yes, Squish provides bindings for the complete Qt and QML APIs in all script languages.
Is it possible to use squish outside the Eclipse-based IDE?
Yes, you can use the squishrunner command line tool.
Can Squish run multiple tests simultaneously?
Yes, using several squishrunner instances it is possible to run tests in parallel.
Does Squish support the older embedded versions of Qt which were based on framebuffer architecture?
Yes, Squish supports Qt 3, Qt 4 and Qt 5 including Qt/Embedded.
Can Squish detect my custom classes or widgets or subclassed widgets with modified properties and run tests on them?
Yes, Squish understands derived controls and can also access properties and slots defined in custom controls.
When can we expect a Squish version that fully supports for Qt 5 QML/QtQuick 2?
The latest Squish version supports Qt 5 QML/QtQuick 2.
Is there an extensive help and documentation with Squish such as the one provided in Qt?
Is it possible to compare the rendering of an image or OpenGL view in the GUI?
Is it also possible to compare the rendering of an image on a remote machine or embedded device?
Is it possible to store test data externally (e.g. into an xls sheet) and run a test multiple times with multiple datasets?
Yes, Squish supports data-driven testing.
Does Squish require a debug build of the AUT (application under test)?
No, Squish can test release or debug builds of the AUT.
How well are drag and drop supported?
Drag and drop are fully supported.
Is testing embedded QtWebKit components supported?
Yes, Squish will also hook into the DOM tree of the embedded browser and recognize web elements as distinct GUI objects.
Do record and replay also work remotely on an embedded device?
Yes, the complete feature-set of Squish is also available for testing on embedded devices.
When it comes to properties verification, is that only possible for Q_PROPERTY-defined variables? Is it be possible to also verify other class variables?
In addition to Q_PROPERTYs all values that can be queried through a C++ getter function of the Qt API can be queried. There are also ways to expose C++ API from your application API though. The easiest way is to simply add Q_PROPERTYs or “slots”.
Could you explain what happens if, during a GUI review, I decide to change object dimension and position still keeping unchanged their ID. Do I have to update all my tests?
No, since objects are identified by properties and not depending on positions or rendering.
In the sample, line 12 compares to ” 99.999 %” and has space at the beginning. If the GU does not have space, will the test fail? Hard to tell from the webinar if the GUI had space or not.
By default, string properties are compared character by character, i.e. fail if space appears. If this is not wanted: a) use a script function to strip harmless characters before the comparison or b) perform a conversion to numbers where “99” and ” 99″ would be identical.
How does Squish compare to Rational Functional Tester or HP QTP?
The Rational and HP tools are a generic Windows testing tools. They do not have any knowledge about Qt build which makes them unusable for Qt applications and anything beyond Windows.
Is Solaris x86 supported?
Yes, Squish supports, among many others, also Unix systems like Solaris (x86 and SPARC).
Is there a way to choose property verifications in bulk (e.g. verify the enable property of all cells in a table), or must you add them specifically, one by one?
See e.g. Table verification points.
If a value is set in the GUI can I use a second access to the application such as a serial protocol to verify the value? Or set the value with the protocol and then verify the value in the GUI? This is for an embedded device.
From within the test scripts it possible to access other resources via file, network I/O or databases. The available standard scripting languages bring with them such features already. That ways it’s possible to control or check both the GUI as well as the backend of an application.
The above webinar* took place in 2013 nevertheless the video and questions are still valid and relevant.