Automated Testing of Embedded Qt HMIs
Leverage Squish for Qt‘s and Squish Coco's dedicated support for test automation of embedded applications to accomplish the challenging task of automating embedded GUI and HMI tests in compliance with industry safety standards.
With the rise of modern user interfaces in the embedded industries, new methods to automate the GUI tests of embedded devices are required to develop and ship quality products.
Already today, many leading Automotive, Medical Avionics, Transportation, Industrial, Consumer Devices, Household Appliances and Home Automation companies leverage Squish for Qt and Squish Coco to automate the functional regression and system testing of their embedded HMIs and connected devices.
Qt GUI Test Automation on Embedded Targets
Squish for Qt features dedicated support for automated testing of all Qt widgets, QML and Qt Quick controls as well as embedded Qt Webkit and Qt WebEngine content.
To enable the automation of HMI tests on embedded devices, a dedicated Squish for Qt Embedded SDK & Support package is available. With this package, the minimal necessary components of Squish can be deployed on any embedded system, such as embedded Linux, QNX, WinCE or Android devices. After this, Squish tools can remotely connect to the embedded components for automation.
Due to Squish’s real cross-platform support, tests can be automated against desktop builds of Qt HMIs or in emulated/simulated environments. These tests can then be run against the embedded target without any changes.
Qt IVI Support
The Qt IVI (In-Vehicle Infotainment) module provides C++ classes and QML types for accessing vehicle features, as well as a core API for implementing new IVI features.
Squish provides bindings to the Qt IVI module to allow tests to interact with all vehicle features provided by the Qt IVI module.
Functional Mock-up Interface Support
Functional Mock-up Interface (FMI) is a tool-independent industry standard used in embedded industries for test and simulation tools to work together for system testing.
Squish provides support to import and interact with Functional Mock-Up Units (FMU) allowing Squish to interact with Simulators, Models and other backend components as part of the system test automation.
Code Coverage Analysis
A key indicator to measure the quality of testing is to understand and how much of the application’s source code is covered by tests and where the “black holes” are. This allows one to focus testing efforts on the areas that most need it.
Benefit from the rich feature set of Coco, which supports the code coverage analysis of C/C++ and QML code. Squish Coco features many advanced analysis options and works with applications running on desktop systems as well as all kinds of embedded targets and tool chains.
GUI and HMI Coverage
With the increasing complexity of embedded HMIs, testers do not only need to understand which source code is covered by their tests. In addition, it’s vital to measure which parts of the user interface components have been “touched” by the tests to understand the overall test coverage and completeness.
Squish for Qt comes with a unique feature to measure the GUI coverage of tests and present this in an easy-to-use interface. This complements the coverage data obtained by Squish Coco.
Visual Verifications
Visual verifications are a hybrid form of property verifications and screenshot verifications. Both types of checks are combined into a single complex algorithm to find the best possible match.
Unlike screenshot verifications, they do not just treat the rendered screen content as a single surface. Instead, the area is divided into regions, corresponding to individual UI controls. Rendered pixels, position, size and content properties will be compared against expected values. In the event of differences, it is easy to quickly see which object properties have unexpected values.
This is esp. useful for automated system tests which need to not only verify the correct functional behavior of the application but also the visual appearance.
Automate End-To-End Tests of Connected Devices
Many of today’s embedded devices, such as Car IVIs, medical devices, home automation robots or other specialized devices are communicating with cloud-connected companion Apps or web interfaces.
Benefit from two unique features of the Squish GUI Tester to seamlessly automate end-to-end tests of such connected devices. Squish allows for automation of several GUIs and Apps running simultaneously on different machines or devices from a single test script. Squish also supports the automation of a range of different GUI technologies beyond Qt, such as Android, iOS, Web and native desktop applications.
By combining Squish’s multi-application testing and support for different GUI platforms from a single test, hybrid end-to-end tests for connected devices can be fully automated.