Qt Creator Manual Tests: Qt Quick
| QML Editor | Result | Annotation |
|---|---|---|
| Open Qml files, make them invalid & again valid, check that errors are underlined | ||
| Indent a big Qml file via “Ctrl-I” | automated | |
| Hover over elements, properties, expressions | automated | |
| Rename an ID via context menu | automated | |
| Trigger Find Usages on an id and property | automated | |
| Outline (sidebar) | Result | Annotation |
| Navigate to elements / properties by clicking on the item in the outline | ||
| Change qml in text, check that Outline updates | automated: tst_qml_outline | |
| Drag&Drop elements around in outline, check that text updates | ||
| Check/Uncheck ‘Show all Bindings’ in the Filter, outline should update accordingly | ||
| Qt Quick Wizards | Result | Annotation |
| Create new “Qt Quick Application” through wizard, run application | automated | |
| Create new “Qt Quick Application” through wizard, “Import an existing .qml file”, run application | automated | |
| Create new “Qt Quick UI” through wizard, run application | automated | |
| Generate “Custom QML Extension Plugin”, compile | automated | |
| Application Output | Result | Annotation |
QML errors:
| ||
| Deploy & run the project with errors on a device. Is the application output still clickable / opens the right file, line, column? | ||
| Qt Quick Designer | Result | Annotation |
| Open all files in $CREATORDIR/tests/manual/qml/testfiles/testfiles.qmlproject | ||
| Create & Rename & Delete states | ||
| Test whether F1 works | ||
| JavaScript Debugging | Result | Annotation |
Preparation:
| ||
| Check that first breakpoint is hit when clicking on “New game” , and that the breakpoint looses it’s ‘hour glass’ when hit | ||
| Step through startNewGame() function. Check Locals and Watchers update (should display ‘this’, ‘column’, ‘i’, ‘row’). Also try adding watchers, and change content in locals & watchers. | ||
| Add breakpoint while debugging QML. Does the breakpoint interrupt the program? | ||
| Add breakpoint before starting QML Debugger. Does the breakpoint interrupt the program? | ||
| While interrupted in a javascript method (with more than one line), step over. Does it go to the next line? | ||
| While interrupted in a javascript method that calls another javascript method, step into. Does it enter that method’s definition? | ||
| While interrupted in a javascript method, step out. Does execution resume again (or does debugger go back in context)? | ||
| Mixed Qml/JavaScript Debugging | Result | Annotation |
Breakpoints:
| Being automated… [codereview.qt-project.org] | |
| Create a Qt Quick Application. Select ‘Import existing file’ on the last page: $QTDIR/demos/declarative/samegame.qml | ||
| Activating the debugging helpers in the qmake step on the Build configuration page, select debug mode of Qt version >- 4.7.1. Run qmake, rebuild. Check “QML” Debugger under Run Settings. | ||
| Place a breakpoint in the onClicked() handler. Is it hit? Does it open the right (non-shadow-build) file? | ||
| Place a breakpoint at the first line of the startNewGame() function. Is it hit? Does it open the right (non-shadow-build) file? | ||
| Load $QTDIR/demos/declarative/minehunt/minehunt.pro | ||
| Set a breakpoint in Tile.qml, onClicked handler of MouseArea. Is it hit? Is the right file opened in the editor? Click continue | ||
| Use the Inspector pane to navigate in the object tree. Are the right files opened in the editor? | ||
| Locals and Expressions | Result | Annotation |
Preparation:
| ||
| Is selection highlighted in the editor? | ||
| Is the selection in the “Locals and Expressions” view updated? Note: In a stack of items, lower-level items can be accessed via context menu (right click) | ||
| Move mouse cursor to another item. Is selection only highlighted in the running application? | ||
| Move text cursor around. Is the crumble path and the selection rectangle in the app updated? | ||
| Click on an element in the crumble path. Is the text cursor and selection rectangle in the app updated? | ||
| Live Preview | Result | Annotation |
| While debugging a Quick UI Application (with shadow building), activate the ‘Apply Changes on Save’ option in the Debugger Toolbar | ||
| Modify one of the elements in a .qml file, such as Item/Rectangle/Image by adding a property or editing existing one. When saving the file, do changes occur in the running application? | ||
| Add a new element, such as Rectangle, with attributes of your choice, to the .qml file. When saving the file, do changes occur in the running application? | ||
| As above, but try and reparent an element inside another. When saving the file, do changes occur in the running application? | ||
| As above, but try and remove an element. When saving the file, do changes occur in the running application? | ||
| As above, but try and modify an existing XmlRole element (e.g. in declarative/demos/rssnews/). Is a warning message displayed in the editor? | ||
| While being in ‘Select’ mode (debugger toolbar), click on an item in the running application. Is the right file in the build directory opened, the right line/column selected? | ||
| QML Profiling | Result | Annotation |
| Can you record some profiling data (see below)? | ||
| Do all tabs show well-formed data/information for the shown events? | ||
| Can you turn on and off the tabs by using the context menu and do all (re-)shown tabs still show well-formed data according to the last profiling? | ||
| With and without an already profiled app disable profiling by hitting the record button and start running again. Does the widget ‘s content still hold the data of the former profiling (or none if there wasn’t any)? | ||
| Start the application and test the record button. It should show the collected data when disabled, and collect new data on already running application when enabled. | ||
According to the time-line:
| ||
According to the Callees/Caller/Events tab:
| ||
| Debugging/Profiling on Device | Result | Annotation |
| You need 4.7.4 on device (available e.g. on Harmattan) | ||
| Try to do both QML and mixed debugging on device | ||
| Try to profile an app on the device |
Recording Profiling Data
Create or open a Qt Quick Application AND a Qml Project ($QTDIR/demos/declarative/minehunt/minehunt.pro and $QTDIR/demos/declarative/samegame/samegame.qmlproject should be adequate). Do the following for each of the projects:
- Enable QML debugging on the Projects view (might require rebuilding the app)
- Switch to Analyzer view and press the “Start” button at the QML Profiler widget
- Generate some events by playing around
- Press “Stop” at the QML Profiler widget

