Home · All Namespaces · All Classes · Grouped Classes · Modules · Functions codeless banner

[Previous: Qt Development Tools Module] [Qt Extended Modules]

QtUiTest Module

The QtUiTest module provides system test features. It improves the quality assurance process but is not expected to be part of a final device image. This module is based on the Base module.

The following configure line can be used to build the Base and QtUiTest module:

    ./configure -modules qtuitest -device xyz

Note that not specifying a device profile would result in the reference device being build.

Feature description

QtUiTest is a tool for generating and running automated and semi-automated system tests. Tests are written in ECMAScript and run against a network-accessible device. A high-level testing API is provided, enabling tests which are flexible with respect to user user interface changes. Traditional screenshot-based, record-and-playback testing is also possible.

QtUiTest is implemented as a plugin and can be loaded at runtime with no changes required to the application being tested.

System test APIThe QtUiTest scripting language provides an API for simulating high-level interaction with applications.

Tests are written using abstract concepts such as entering a value into a field with a specific label or activating a widget with particular text. This allows tests to be written which work correctly across different themes or minor user interface changes, and allows a test to be generated using a keypad device and subsequently run on a touchscreen-only device.

A low-level API is also provided to directly simulate key and mouse input and compare screenshots against expected values.

Performance test APITimestamped log messages are used to instrument applications. QtUiTest can then be used to query the amount of time taken to perform certain actions, verifying that applications meet their performance requirements.
Widget plugin APIQtUiTest's high-level interaction with widgets requires certain information to be provided for each type of widget. Support for Qt and Qt Extended widgets is provided with QtUiTest. If custom widgets are created, plugins can be written to expose the necessary information about new widgets to QtUiTest.

For example, this allows an existing test which selects an item in a list to continue working even if the list, originally a QAbstractItemView, is replaced with a new type of widget written from scratch.

Software components

The QtUiTest module includes the following software components:

The exact list of components included in this module can be found in $QPEDIR/src/module_qtuitest.pri.

The test plan for the QtUiTest module summarizes the Quality Assurance procedures for this module. The results of these test are available here.

The following table contains all classes and services which are part of this module:

QtUiTest::ActivateWidgetAbstract base class for all test widgets which can conceptually be "activated" by a user
QtUiTest::CheckWidgetAbstract base class for all test widgets which support 'checked' and 'unchecked' states
QtUiTest::InputWidgetAbstract base class for all test widgets which allow the user to input text
QtUiTest::LabelWidgetAbstract base class for all test widgets which are conceptually labels
QtUiTest::ListWidgetAbstract base class for all test widgets which display a list of items to the user
QSystemTestScript based system test functionality for Qt
QtUiTestThe plugin interfaces used for customizing the behaviour of QtUiTest
QtUiTestRecorderInterface for observing application-wide high level user actions
QtopiaSystemTestScript based system test functionality for Qt Extended
QtopiaSystemTestModemFunctionality for simulating modem events from within a system test
QtUiTest::SelectWidgetAbstract base class for all test widgets which allow the user to select from a range of items
QtUiTest::TextWidgetAbstract base class for all test widgets which display text to the user
QtUiTest::WidgetAbstract base class for all test widgets
QtUiTest::WidgetFactoryFactory interface for QtUiTest widget wrapper classes

[Previous: Qt Development Tools Module] [Qt Extended Modules]

Copyright © 2009 Nokia Trademarks
Qt Extended 4.4.3