Skip navigation
Manual
Table of contents
Free Trial
DE
EN
F
Videos
QF-Test Blog
Manual
Tutorial
FAQ
Preface
→
Manual
Table of contents
Table of contents
Table of contents
Preface
How to use this manual
I
User manual
1
Installation and startup
1.1
System requirements
1.1.1
Hard- and Software
1.1.2
Supported technologies - QF-Test
1.1.3
Supported technologies - System under Test
1.2
Windows Installation
1.2.1
Installing via the Windows setup file QF-Test-.exe
1.2.2
Unpacking the self-extracting archive QF-Test--sfx.exe
1.2.3
Completing the installation and configuring Java
1.3
Linux Installation
1.4
macOS Installation
1.5
The license file
1.6
The configuration files
1.7
Starting QF-Test
2
The user interface
2.1
The test suite
2.2
Basic editing
2.2.1
Checking the validity of attribute values
2.2.2
Undo
2.2.3
Navigating the tree
2.2.4
Insertion marker
2.2.5
Moving nodes
2.2.6
Transforming nodes
2.2.7
Tables
2.2.8
Packing and Unpacking
2.2.9
Sorting Nodes
2.3
The command palette
2.3.1
Searching
2.3.2
Category filters
2.4
Advanced editing
2.4.1
Searching
2.4.2
Replacing
2.4.3
Complex searches and replace operations
2.4.4
Multiple views
2.4.5
Hiding toolbar buttons
3
Quickstart your application
3.1
Setup sequence creation – The Quickstart Wizard
3.2
Executing the setup sequence
3.3
In case the client does not connect ...
3.4
Program output and the Clients menu
3.5
An application started indirectly from an already connected SUT
4
Capture and replay
4.1
Recording sequences
4.2
Running tests
4.3
Recording checks
4.4
Fetching data from the UI
4.5
Recording components
4.6
Recording of HTTP requests (GET/POST)
5
Components
5.1
Components of a GUI
5.2
Component nodes versus SmartID
5.2.1
Improved readability of tests
5.2.2
Test-driven development
5.2.3
Keyword-driven testing
5.2.4
Stability of recognition
5.2.5
Maintainability
5.2.6
Performance
5.2.7
Combining Component nodes and SmartIDs
5.3
How to achieve robust component recognition
5.3.1
How to judge robust component recognition
5.3.2
Opportunities for optimization
5.4
Recognition criteria
5.4.1
Class
5.4.2
Name
5.4.3
Feature
5.4.4
Extra features
5.4.5
Index
5.4.6
Geometry
5.4.7
Component hierarchy
5.5
Component node
5.6
SmartID
5.6.1
Use cases for SmartIDs
5.6.2
SmartID syntax for Class name
5.6.3
SmartID syntax for Name
5.6.4
SmartID syntax for Feature
5.6.5
SmartID syntax for Extra features
5.6.6
SmartID with index
5.6.7
SmartID syntax for component hierarchies
5.6.8
Recording and replaying SmartIDs
5.6.9
Component QF-Test ID as SmartID
5.7
Scope
5.8
Generic components
5.9
Sub-items: Addressing relative to a parent component
5.9.1
Addressing via index
5.9.2
Addressing via QPath
5.9.3
Addressing via XPath and/or CSS selectors
5.9.4
Addressing via Items nodes
5.10
Troubleshooting component recognition problems
5.10.1
Timing synchronisation
5.10.2
Recognition
5.11
Component tree maintenance
5.11.1
Clean up the component tree
5.11.2
Update Components
5.12
Inspecting components
5.12.1
Show methods
5.12.2
UI Inspector
6
Variables
6.1
Variable references
6.1.1
Referencing simple variables
6.1.2
Referencing group variables
6.1.3
Referencing variables in scripts and script expressions
6.2
Variable lookup
6.3
Defining variables
6.4
Variable levels
6.4.1
Primary stack
6.4.2
Seconday stack
6.5
Displaying variables in debug mode
6.5.1
Displaying simple variables – Example
6.5.2
Displaying group variables
6.6
Data types of variables
6.6.1
JSON data
6.7
External data
6.8
Special groups
6.9
Immediate and lazy binding
6.10
Encrypted Variables
7
Problem analysis and debugging
7.1
The run log
7.1.1
Error states
7.1.2
Navigating the run log tree
7.1.3
Run-time behavior
7.1.4
Showing return values
7.1.5
Accepting values of failed checks as good
7.1.6
Split run logs
7.1.7
Run log options
7.1.8
Creating a test suite from the run log
7.1.9
Merging run logs
7.1.10
Copying steps from the run log to a test suite
7.2
The debugger
7.2.1
Entering the debugger
7.2.2
Displaying the current variable values
7.2.3
Debugger commands
7.2.4
Manipulating breakpoints
7.2.5
The debugger window
7.3
The Recording Log
8
Organizing the test suite
8.1
Test suite structure
8.2
Test set and Test case nodes
8.2.1
Test management with Test set and Test case nodes
8.2.2
Concept
8.2.3
Variables and special attributes
8.3
Sequence and Test step nodes
8.4
Setup and Cleanup nodes
8.5
Procedures and Packages
8.5.1
Local Procedures and Packages
8.5.2
Relative Procedures
8.5.3
Inserting Procedure call nodes
8.5.4
Parameterizing nodes
8.5.5
Transforming a Sequence into a Procedure
8.6
Dependency nodes
8.6.1
Concept
8.6.2
Usage of Dependencies
8.6.3
Dependency execution and Dependency stack
8.6.4
Characteristic variables
8.6.5
Forced cleanup
8.6.6
Rolling back Dependencies
8.6.7
Error escalation
8.6.8
Error handling
8.6.9
Name spaces for Dependencies
8.7
Documenting test suites
9
Projects
9.1
Subprojects
9.2
Project View
9.3
The file qftest.qpj
10
The standard library
11
Scripting
11.1
General
11.2
Script expressions
11.3
The run context rc
11.3.1
Logging messages
11.3.2
Performing checks
11.3.3
Variables
11.3.4
Accessing the SUT's GUI components
11.3.5
Calling Procedures
11.3.6
Setting options
11.3.7
Override components
11.4
Fundamentals of the Jython integration
11.4.1
Jython Variables
11.4.2
Jython Modules
11.4.3
Post-mortem debugging of Jython scripts
11.4.4
Boolean type
11.4.5
Jython strings and character encodings
11.4.6
Getting the name of a Java class
11.4.7
A complex example
11.5
Scripting with Groovy
11.5.1
Groovy packages
11.6
Scripting with JavaScript
11.6.1
JavaScript imports
11.6.2
NPM modules
11.6.3
Print statements
11.6.4
Execution
12
Unit Tests
12.1
Java Classes as the Source for the Unit Test
12.2
Basics of the Test Scripts
12.2.1
Groovy Unit Tests
12.2.2
Jython Unit Tests
12.2.3
JavaScript Unit test
12.3
Injections
12.3.1
Component-Injections
12.3.2
WebDriver-Injections
12.4
Unit Tests in Report
13
Java desktop application testing
14
Web testing
14.1
Supported browsers
14.2
General approach
14.3
Browser connection
14.4
Recognition of web components and toolkits
14.5
Cross browser tests
14.6
Emulation of mobile browsers
14.7
Web-Tests in headless mode
14.8
Integrating existing Selenium web tests
14.9
Selecting the browser installation
15
Native Windows application testing
15.1
Getting started
15.2
Technical background
15.3
Launching/Attaching to an application
15.4
Recording
15.5
Components
15.6
Playback and Patterns
15.7
Scripting
15.8
Options
15.8.1
Windows scaling
15.8.2
Visibility
15.8.3
Attaching to a window with a given class
15.8.4
Child count limitation
15.9
(Current) Limitations
15.10
Links
16
Android application testing
16.1
Preconditions and known restrictions
16.1.1
Preconditions
16.1.2
Known restrictions
16.2
Emulator or real device
16.3
Installing Android Studio, emulator and virtual devices (AVD)
16.3.1
Android Studio installation
16.3.2
Android Studio virtual device configuration
16.4
Connecting to a real Android device
16.5
Create a QF-Test setup sequence for Android testing
16.5.1
Usage of an Android emulator
16.5.2
Usage of a real Android device
16.6
Record actions and checks for Android
16.7
Android utility procedures
17
iOS application testing
17.1
Preconditions and known restrictions
17.1.1
Preconditions
17.1.2
Known restrictions
17.2
Installing Xcode, Simulators and IDB
17.2.1
Xcode Installation
17.2.2
iOS Development Bridge (idb) Installation
17.3
Testing on a real iOS device
17.4
Create a QF-Test Setup sequence for iOS testing
17.5
Record actions and checks for iOS
17.6
iOS utility procedures
18
PDF document testing
18.1
PDF Client
18.1.1
PDF Client start
18.1.2
PDF Client window
18.2
PDF events
18.2.1
Open a PDF document
18.2.2
Switch page
18.3
Checks for PDF components
18.3.1
Check text
18.3.2
Check image
18.3.3
'Check Font'
18.3.4
'Check Font size'
18.4
PDF component types
18.5
PDF component recognition
19
Accessibility Testing
19.1
Getting started
19.2
Overview of all accessibility tests
19.2.1
Axe checks with QF-Test
19.2.2
Color contrast check for simple graphics
19.2.3
Focus visible check
19.2.4
Checking the "lang" attribute
19.2.5
The "impact" rating of accessibility tests
19.3
A11y run logs and reports
19.3.1
Working with the run log
19.3.2
Notes on report generation
20
Webswing and JPro: Java desktop application testing in a browser
20.1
Technical concepts of JiB for Webswing and JPro
21
Electron application testing
21.1
Starting the Electron Client
21.1.1
Electron settings for the quickstart wizard
21.2
Electron specific functionality of QF-Test
21.2.1
Native Menus
21.2.2
Native Dialogs
21.2.3
Extended Javascript-API
21.3
Technical remarks on testing Electron applications in WebDriver connection mode
22
WebAPI – Web services testing
22.1
Structure of WebAPI tests
22.2
Request authentication data
22.2.1
Accept all SSL certificates
22.3
Request settings
22.3.1
Cookies
22.3.2
Proxy
22.3.3
Timeouts and network errors
22.4
Body
22.4.1
multipart/form-data
22.5
End-to-end scenarios – Business application logic
22.6
Single-request API call generator
22.7
Reporting of test runs
22.8
Postman migration
22.9
Importing an OpenAPI Specification
22.9.1
What is covered from the OpenAPI standard
22.9.2
Generated test suite structure
22.9.3
CRUD test cases
22.9.4
Before running the generated suite
22.9.5
Additional notes and limitations
22.10
HTTP standards and web services
22.10.1
Web API Inspector
22.11
WebAPI state after "Reset everything"
22.12
The Server HTTP request and Browser HTTP request nodes (legacy)
23
Data-driven testing
23.1
Data driver examples
23.2
General use of Data drivers
23.3
Examples for Data drivers
23.4
Advanced use
24
Reports and test documentation
24.1
Reports
24.1.1
Report concepts
24.1.2
Report contents
24.1.3
Creating reports
24.1.4
Customizing reports
24.2
Testdoc documentation for Test sets and Test cases
24.3
Pkgdoc documentation for Packages, Procedures and Dependencies
25
Test execution
25.1
Test execution in batch mode
25.1.1
Command line usage
25.1.2
Windows batch script
25.1.3
Groovy
25.2
Executing tests in daemon mode
25.2.1
Launching the daemon
25.2.2
Controlling a daemon from QF-Test's command line
25.2.3
Controlling a daemon with the daemon API
25.3
Re-execution of nodes (Rerun)
25.3.1
Triggering rerun from a run log
25.3.2
Rerunning failing nodes immediately
26
Using Artificial Intelligence
26.1
Bring your own model
26.2
Setting up AI
26.2.1
Setting up CLI tools (Claude Code, GitHub Copilot)
26.3
AI During Editing
26.3.1
AI Assistants for Planning and Generating Tests
26.3.2
Generate Data with AI
26.4
AI During Test Execution
26.4.1
Check Text with AI
26.4.2
The AI Instruction Node
26.4.3
Scripting with AI
26.5
MCP Server
26.5.1
Set up QF-Test MCP Server
26.5.2
Built-in MCP Tools
26.5.3
Create Custom MCP Tools and Prompts
26.5.4
Security considerations
27
Distributed test development
27.1
Referencing nodes in another test suite
27.2
Managing Components
27.3
Merging test suites
27.3.1
Importing Components
27.3.2
Importing Procedures and Testcases
27.4
Strategies for distributed development
27.5
Static validation of test suites
27.5.1
Avoiding invalid references
27.5.2
Unused procedures
28
Procedure calls: recording and converting
29
Automated Creation of Basic Procedures
29.1
Introduction
29.2
How to use the Procedure Builder
29.3
Configuration of the Procedure Builder
29.3.1
The Procedure Builder definition file
30
Interaction with Test Management Tools
30.1
Q12-TMT
30.1.1
Integration concepts
30.1.2
Uploading test results to TMT
30.2
Xray
30.2.1
Integration concepts
30.2.2
Uploading test results to Xray
30.3
HP ALM - Quality Center
30.3.1
Introduction
30.3.2
Step-by-step integration guide
30.3.3
Troubleshooting
30.4
Imbus TestBench
30.4.1
Introduction
30.4.2
Creating QF-Test template from interactions
30.4.3
Importing test execution results
30.5
QMetry
30.5.1
Introduction
30.5.2
Sample Configuration
30.6
TestLink
30.6.1
Introduction
30.6.2
Generating template test suites for QF-Test from test cases
30.6.3
Execution of test cases
30.6.4
Importing QF-Test results into TestLink
31
Integration with Development Tools
31.1
AI agents: Interact with Java applications during development
31.2
Eclipse
31.2.1
Installation
31.2.2
Configuration of the test nodes
31.3
Ant
31.4
Maven
31.5
Jenkins
31.5.1
Install and start Jenkins
31.5.2
Requirements for GUI tests
31.5.3
Install QF-Test Plugin
31.6
JUnit Jupiter
31.7
TeamCity CI
32
Integration with Robot Framework
32.1
Introduction
32.2
Prerequisites and installation
32.3
Getting started
32.4
Using the library
32.5
Creating your own keywords
33
Keyword-driven testing with QF-Test
33.1
Introduction
33.2
Simple Keyword-driven testing with QF-Test
33.2.1
Business-related Procedures
33.2.2
Atomic component-oriented procedures
33.3
Keyword-driven testing using dynamic or generic components
33.4
Behavior-driven testing (BDT)
33.4.1
Behavior-Driven Testing (BDT) from technical perspective
33.4.2
Behavior-Driven Testing (BDT) from business perspective
33.5
Scenario files
33.6
Custom test case description
33.7
Adapting to your software
34
Usage of QF-Test in Docker Environments
34.1
What is Docker?
34.2
QF-Test Docker Images
35
Performing GUI-based load tests
35.1
Background and comparison with other techniques
35.2
Load testing with QF-Test
35.2.1
Provision of test systems
35.2.2
Conception of the test run
35.2.3
Preparing test systems prior to the test run
35.2.4
Test execution
35.2.5
Evaluating results
35.3
Hints on test execution
35.3.1
Synchronization
35.3.2
Measuring end-to-end response times
35.4
Troubleshooting
35.5
Web load testing with headless browsers
36
Executing Manual Tests in QF-Test
36.1
Introduction
36.2
Step-by-step Guide
36.3
Structure of the Excel file
36.4
The ManualTestRunner test suite
36.5
Results
II
Best Practices
37
Introduction
38
How to start a testing project
38.1
Infrastructure and testing environment
38.2
Location of files
38.2.1
Network installation
38.3
Component Recognition
39
Organizing test suites
39.1
Organizing tests
39.2
Modularization
39.3
Parameterization
39.4
Working in multiple test suites
39.5
Roles and responsibilities
39.6
Managing components at different levels
39.7
Reverse includes
40
Efficient working techniques
40.1
Using QF-Test projects
40.2
Creating test suites from scratch
40.3
The standard library qfs.qft
40.4
Component storage
40.5
Extending test suites
40.6
Working in the script editor
41
Hints on setting up test systems
41.1
Using the task scheduler
41.2
Remote access to Windows systems
41.3
Automated logon on Windows systems
41.4
Test execution on Linux
42
Test execution
42.1
Dependencies
42.2
Timeout vs. delay
42.3
What to do if the run log contains an error
III
Reference manual
43
Options
43.1
General options
43.1.1
Project settings
43.1.2
Saving test suites
43.1.3
Display
43.1.4
Editing
43.1.5
Bookmarks
43.1.6
External tools
43.1.7
Backup files
43.1.8
Library
43.1.9
License
43.1.10
Updates
43.2
Test management options
43.2.1
TMT settings
43.2.2
Xray settings
43.3
Recording options
43.3.1
Events to record
43.3.2
Events to pack
43.3.3
Components
43.3.4
Recording sub-items
43.3.5
Recording Window
43.3.6
Procedure calls
43.3.7
Recording procedures
43.4
Replay options
43.4.1
Client options
43.4.2
Terminal options
43.4.3
Event handling
43.4.4
Component recognition
43.4.5
Delays
43.4.6
Timeouts
43.4.7
Backward compatibility
43.5
SmartID and qfs:label
43.6
Android
43.7
iOS
43.8
Web options
43.8.1
HTTP Requests
43.8.2
Web request step defaults
43.8.3
Backward compatibility
43.9
SWT options
43.10
UI Inspector options
43.11
Artificial Intelligence
43.11.1
General AI options
43.11.2
Agent skills options
43.11.3
Tool Exposure options
43.12
Debugger options
43.13
Run log options
43.13.1
General run log options
43.13.2
Options for splitting run logs
43.13.3
Options determining run log content
43.13.4
Run log options for screenshots
43.13.5
Options for mapping between directories with test suites
43.14
Variables
43.15
Runtime only
44
Elements of a test suite
44.1
The test suite and its structure
44.1.1
Test suite
44.2
Test and Sequence nodes
44.2.1
Test case
44.2.2
Test set
44.2.3
Test call
44.2.4
Sequence
44.2.5
Test step
44.2.6
Sequence with time limit
44.2.7
Extras
44.3
Dependencies
44.3.1
Dependency
44.3.2
Dependency reference
44.3.3
Setup
44.3.4
Cleanup
44.3.5
Error handler
44.4
Data driver
44.4.1
Data driver
44.4.2
Data table
44.4.3
Database
44.4.4
Excel data file
44.4.5
CSV data file
44.4.6
Data loop
44.5
Procedures
44.5.1
Procedure
44.5.2
Procedure call
44.5.3
Return
44.5.4
Package
44.5.5
Procedures
44.5.6
Procedure call definition
44.6
Control structures
44.6.1
Loop
44.6.2
While
44.6.3
Break
44.6.4
Continue
44.6.5
If
44.6.6
Elseif
44.6.7
Else
44.6.8
Try
44.6.9
Catch
44.6.10
Finally
44.6.11
Throw
44.6.12
Rethrow
44.6.13
Server script
44.6.14
SUT script
44.7
Processes
44.7.1
Start Java SUT client
44.7.2
Start SUT client
44.7.3
Start process
44.7.4
Execute shell command
44.7.5
Start web engine
44.7.6
Start PDF client
44.7.7
Start windows application
44.7.8
Attach to windows application
44.7.9
Launch Android emulator
44.7.10
Connect to Android device
44.7.11
Connect to iOS device
44.7.12
Wait for client to connect
44.7.13
Wait for mobile device
44.7.14
Open browser window
44.7.15
Launch a mobile app
44.7.16
Stop client
44.7.17
Wait for process to terminate
44.8
Events
44.8.1
Mouse event
44.8.2
Key event
44.8.3
Text input
44.8.4
Window event
44.8.5
Component event
44.8.6
Selection
44.8.7
File selection
44.9
Checks
44.9.1
Check text
44.9.2
Check text with AI
44.9.3
Boolean check
44.9.4
Check items
44.9.5
Check selectable items
44.9.6
Check image
44.9.7
Check geometry
44.10
Queries
44.10.1
Fetch text
44.10.2
Fetch index
44.10.3
Fetch geometry
44.10.4
Fetch image
44.11
WebAPI
44.11.1
Web request
44.11.2
Pre-request handler
44.11.3
Post-request handler
44.11.4
Request authentication data
44.11.5
Request settings
44.12
Miscellaneous
44.12.1
Comment
44.12.2
Error
44.12.3
Warning
44.12.4
Message
44.12.5
Set variable
44.12.6
Set image
44.12.7
Wait for component to appear
44.12.8
Wait for document to load
44.12.9
Wait for download to finish
44.12.10
Load resources
44.12.11
Load properties
44.12.12
Server HTTP request
44.12.13
Browser HTTP request
44.12.14
Unit test
44.12.15
Install CustomWebResolver
44.12.16
Accessibility Checks
44.12.17
AI Instruction
44.13
Windows, Components and Items
44.13.1
Window
44.13.2
Web page
44.13.3
Component
44.13.4
Item
44.13.5
Window group
44.13.6
Component group
44.13.7
Windows and components
44.14
Deprecated nodes
44.14.1
Test
44.14.2
Procedure installCustomWebResolver
45
Exceptions
IV
Technical reference
46
Command line arguments and exit codes
46.1
Call syntax
46.2
Command line arguments
46.2.1
Arguments for the starter script
46.2.2
Arguments for the Java VM
46.2.3
Arguments for QF-Test
46.2.4
Placeholders in the filename parameter for run log and report
46.3
Exit codes for QF-Test
47
GUI engines
48
Running an application from QF-Test
48.1
Various methods to start the SUT
48.1.1
A standalone script or executable file
48.1.2
An application launched through Java WebStart
48.1.3
An application started with java -jar <archive>
48.1.4
An application started with java -classpath <classpath> <class>
48.1.5
A web application in a browser
48.1.6
Opening a PDF Document
49
JRE and SWT instrumentation
49.1
JRE deinstrumentation
49.2
SWT instrumentation
49.2.1
Preparation for manual SWT instrumentation
49.2.2
Manual SWT instrumentation for eclipse based applications
49.2.3
Manual instrumentation for standalone SWT applications
50
Technical information about components
50.1
Weighting of recognition features for recorded components
50.2
Generating the component QF-Test ID
50.3
SmartIDs - general syntax
50.4
SmartIDs - special characters
50.5
Android - list of trivial component identifiers
51
Technical details about miscellaneous issues
51.1
Timing
51.2
Regular expressions
51.3
Line breaks under Linux and Windows
51.4
Quoting and escaping special characters
51.5
Include file resolution
52
Advanced scripting (Jython, Groovy and JavaScript)
52.1
Advanced script concepts
52.1.1
Module load-path
52.1.2
The plugin directory
52.1.3
Initialization (Jython)
52.1.4
Namespace environment for script execution (Jython)
52.1.5
Exception handling
52.1.6
Debugging scripts (Jython)
52.2
The rc module: Run context API
52.2.1
The expand parameter
52.3
The ai module
52.4
The qf module
52.5
The Image API
52.5.1
The ImageWrapper class
52.6
WebAPI scripting API
52.6.1
The QF-Test WebAPI module (qw)
52.6.2
The WebRequest class (qw.request)
52.6.3
The WebResponse class (qw.response)
52.7
The JSON module
52.8
The excelapi module
52.9
The Assertions module: Natural Language Assertions
52.9.1
Motivation
52.9.2
API documentation
52.9.3
Result handling
53
Web
53.1
Improving component recognition with a CustomWebResolver
53.1.1
General configuration
53.1.2
The Install CustomWebResolver node
53.1.3
CustomWebResolver – Tables
53.1.4
CustomWebResolver – Tree
53.1.5
CustomWebResolver – TreeTable
53.1.6
CustomWebResolver – Lists
53.1.7
CustomWebResolver – Combo boxes
53.1.8
CustomWebResolver – TabPanel and Accordion
53.1.9
Example for "CarConfigurator Web" demo
53.2
Special support for various web frameworks
53.2.1
Web framework resolver concepts
53.2.2
Setting unique IDs
53.3
Browser connection mode
53.3.1
QF-Driver connection mode
53.3.2
CDP-Driver connection mode
53.3.3
WebDriver in general
53.3.4
Known limitations of the WebDriver mode
53.4
Web – Pseudo Attributes
53.5
Accessing hidden fields on a web page
53.6
WebDriver with Safari
54
Configuring the "Accessibility Checks" node
54.1
YAML syntax of the Accessibility Checks node
54.2
Top-level category Rules to Check
54.2.1
Generic parameters of accessibility tests
54.2.2
Rules to Check – axe
54.2.3
Rules to Check – color-contrast-simple-graphics
54.2.4
Rules to Check – focus-visible
54.2.5
Rules to Check – language-lang-value
54.3
Top-level category Issues to Ignore
54.3.1
Issues to Ignore – URL
54.3.2
Issues to Ignore – Errors and warnings
55
Configuration of the Procedure call definition node
55.1
Mapping procedure structures
55.2
Setting values in the procedure call
55.2.1
Setting parameters in the procedure call
55.2.2
Setting a variable for the return value
55.2.3
Setting a comment/doctags
55.3
Optional nodes
55.4
Special case: adding a comment, no conversion
55.5
Criteria for identifying nodes
55.5.1
Node type
55.5.2
Node attributes
55.5.3
Component values
55.5.4
State conditions
55.6
Automatic creation of procedure call definitions
55.6.1
Definition-relevant nodes
55.6.2
Mandatory and optional nodes
55.6.3
Resolving procedure calls
55.6.4
Conditional structures
55.6.5
Priority
55.6.6
Handling of variables
55.6.7
Using substitute procedures for generating definitions
55.6.8
Doctags for controlling automatic definition creation
55.7
YAML syntax of the Procedure call definition node
55.7.1
Individual definition
55.7.2
priority
55.7.3
sequential group
55.7.4
choice group
55.7.5
unsorted group
55.7.6
expected nodes
55.7.7
node
55.7.8
node type
55.7.9
attributes
55.7.10
component
55.7.11
condition
55.7.12
set procedure call parameters
55.7.13
your-parameter
55.7.14
overwrite option
55.7.15
separator
55.7.16
set variable for return value
55.7.17
doctags
55.7.18
repeat / occurrences / optional
55.8
Placeholders
55.8.1
Placeholders for node attributes (apart from component nodes)
55.8.2
Placeholders for component nodes
55.8.3
Placeholders for component states in the SUT
55.9
Entries in the recording log
55.9.1
"Test suites searched for procedure call definitions"
55.9.2
"Invalid Procedure Call Definitions"
55.9.3
"Remove 'Ignore' Steps"
55.9.4
"Remaining Steps after Removing 'Ignore' Steps"
55.9.5
"Iteration ... - Procedure Call Definitions Checked"
56
Controlling native Windows applications via the UIAuto module - without the QF-Test win engine
56.1
Proceeding
56.1.1
Starting the application
56.1.2
Listing the GUI elements of a window
56.1.3
Information on single GUI elements
56.1.4
Identifiers for GUI elements
56.1.5
Actions on GUI elements
56.2
Example
56.2.1
Starting the application
56.2.2
GUI element information
57
Controlling and testing native macOS applications
57.1
Proceeding
57.1.1
Starting the application
57.1.2
Listing the GUI elements of a window
57.1.3
Information on single GUI elements
57.1.4
Identifiers for GUI elements
57.1.5
Actions on GUI elements
58
Extension APIs
58.1
The resolvers module
58.1.1
Usage
58.1.2
Implementation
58.1.3
addResolver
58.1.4
removeResolver
58.1.5
listNames
58.1.6
Accessing 'Best label'
58.1.7
The NameResolver Interface
58.1.8
The GenericClassNameResolver Interface
58.1.9
The ClassNameResolver Interface
58.1.10
The FeatureResolver Interface
58.1.11
The ExtraFeatureResolver Interface
58.1.12
The ItemNameResolver Interface
58.1.13
The ItemValueResolver Interface
58.1.14
The TreeTableResolver Interface
58.1.15
The InterestingParentResolver Interface
58.1.16
The TooltipResolver Interface
58.1.17
The IdResolver interface
58.1.18
The EnabledResolver Interface
58.1.19
The VisibilityResolver Interface
58.1.20
The MainTextResolver Interface
58.1.21
The WholeTextResolver Interface
58.1.22
The BusyPaneResolver Interfaces
58.1.23
The GlassPaneResolver Interfaces
58.1.24
The TreeIndentationResolver Interface
58.1.25
The EventSynchronizer Interface
58.1.26
The BusyApplicationDetector Interface
58.1.27
Matcher
58.1.28
External Implementation
58.2
The ResolverRegistry
58.3
Implementing custom item types with the ItemResolver interface
58.3.1
ItemResolver concepts
58.3.2
The ItemResolver interface
58.3.3
The class SubItemIndex
58.3.4
The ItemRegistry
58.3.5
Default item representations
58.4
Implementing custom checks with the Checker interface
58.4.1
The Checker interface
58.4.2
The class Pair
58.4.3
The CheckType interface and its implementation DefaultCheckType
58.4.4
The class CheckDataType
58.4.5
The class CheckData and its subclasses
58.4.6
The CheckerRegistry
58.4.7
Custom checker example
58.5
Working with the Eclipse Graphical Editing Framework (GEF)
58.5.1
Recording GEF items
58.5.2
Implementing a GEF ItemNameResolver2
58.5.3
Implementing a GEF ItemValueResolver2
58.6
Test run listeners
58.6.1
The TestRunListener interface
58.6.2
The class TestRunEvent
58.6.3
The class TestSuiteNode
58.7
ResetListener
58.8
DOM processors
58.8.1
The DOMProcessor interface
58.8.2
The DOMProcessorRegistry
58.8.3
Error handling
58.9
Image API extensions
58.9.1
The ImageRep class
58.9.2
The ImageComparator interface
58.9.3
The ImageRepDrawer class
58.10
Pseudo DOM API
58.10.1
The abstract Node class
58.10.2
The DocumentNode class
58.10.3
The FrameNode class
58.10.4
The DomNode class
58.10.5
The DialogNode class
58.11
WebDriver SUT API
58.11.1
The WebDriverConnection class
58.12
Windows Control API
58.12.1
The WinControl class
59
Daemon mode
59.1
Daemon concepts
59.2
Daemon API
59.2.1
The DaemonLocator
59.2.2
The Daemon
59.2.3
The TestRunDaemon
59.2.4
The DaemonRunContext
59.2.5
The DaemonTestRunListener
59.3
Daemon security considerations
59.3.1
Creating your own keystore
59.3.2
Specifying the keystore
59.3.3
Specifying the keystore on the client side
60
The Procedure Builder definition file
60.1
Placeholders
60.1.1
Fallback values for placeholders
60.2
Conditions for Package and Procedure Definition
60.3
Interpretation of the Component Hierarchy
60.4
Details about the @CONDITION tag
61
The ManualStepDialog
61.1
The ManualStepDialog API
62
Details about transforming nodes
62.1
Introduction
62.2
Transformation with type changes
62.3
Additional transformations below the Extras node
62.3.1
Transformations without side-effects
62.3.2
Transformations with side-effects
63
Details about the algorithm for image comparison
63.1
Introduction
63.2
Description of algorithms
63.2.1
Classic image check
63.2.2
Pixel-based identity check
63.2.3
Pixel-based similarity check
63.2.4
Block-based identity check
63.2.5
Block-based similarity check
63.2.6
Histogram check
63.2.7
Analysis with Discrete Cosine Transformation
63.2.8
Block-based analysis with Discrete Cosine Transformation
63.2.9
Bilinear Filter
63.3
Description of special functions
63.3.1
Image-in-image search
64
Result lists
64.1
Introduction
64.2
Specific list actions
64.2.1
All types of lists
64.2.2
Replacing
64.2.3
Error list
64.3
Exporting and loading results
65
Generic classes
65.1
Accordion
65.2
BusyPane
65.3
Button
65.4
Calendar
65.5
CheckBox
65.6
Closer
65.7
ColorPicker
65.8
ComboBox
65.9
Divider
65.10
Expander
65.11
FileChooser
65.12
Graphics
65.13
Icon
65.14
Indicator
65.15
Item
65.16
Label
65.17
Link
65.18
List
65.19
LoadingComponent
65.20
Maximizer
65.21
Menu
65.22
MenuItem
65.23
Minimizer
65.24
ModalOverlay
65.25
Panel
65.26
Popup
65.27
ProgressBar
65.28
RadioButton
65.29
Restore
65.30
ScrollBar
65.31
Separator
65.32
Sizer
65.33
Slider
65.34
Spacer
65.35
Spinner
65.36
SplitPanel
65.37
Table
65.38
TableCell
65.39
TableFooter
65.40
TableHeader
65.41
TableHeaderCell
65.42
TableRow
65.43
TabPanel
65.44
Text
65.45
TextArea
65.46
TextField
65.47
Thumb
65.48
ToggleButton
65.49
ToolBar
65.50
ToolBarItem
65.51
ToolTip
65.52
Tree
65.53
TreeNode
65.54
TreeTable
65.55
Window
66
Doctags
66.1
Doctags for reporting and documentation
66.1.1
@noreport Doctag
66.2
Doctags for Robot Framework
66.3
Doctags for test execution
66.4
Doctags for Editing
66.5
Doctags influencing the procedure builder
A
FAQ – Frequently Asked Questions
B
Release notes
B.1
QF-Test version 11.1
B.1.1
Changes that can affect test execution
B.1.2
Version 11.1.0 - November 5, 2026
B.2
QF-Test version 11.0
B.2.1
Version 11.0.2 - September 9, 2026
B.2.2
Version 11.0.1 - August 13, 2026
B.2.3
Version 11.0.0 - July 29, 2026
B.3
QF-Test version 10.1
B.3.1
Version 10.1.3 - July 7, 2026
B.3.2
Version 10.1.2 - June 23, 2026
B.3.3
Version 10.1.1 - June 2, 2026
B.3.4
Changes that can affect test execution
B.3.5
Version 10.1.0 - May 7, 2026
B.4
QF-Test version 10.0
B.4.1
Version 10.0.3 - March 11, 2026
B.4.2
Version 10.0.2 - January 15, 2026
B.4.3
Version 10.0.1 - December 18, 2025
B.4.4
Changes that can affect test execution
B.4.5
Version 10.0.0 - December 9, 2025
B.5
QF-Test version 9.0
B.5.1
Version 9.0.6 - September 10, 2025
B.5.2
Version 9.0.5 - July 30, 2025
B.5.3
Version 9.0.4 - June 11, 2025
B.5.4
Version 9.0.3 - April 29, 2025
B.5.5
Version 9.0.2 - April 9, 2025
B.5.6
Version 9.0.1 - March 12, 2025
B.5.7
Changes that can affect test execution
B.5.8
Version 9.0.0 - February 20, 2025
B.6
QF-Test version 8.0
B.6.1
Version 8.0.2 - December 05, 2024
B.6.2
Version 8.0.1 - September 11, 2024
B.6.3
Changes that can affect test execution
B.6.4
Version 8.0.0 - August 8, 2024
B.7
QF-Test version 7.1
B.7.1
Version 7.1.5 - July 16, 2024
B.7.2
Version 7.1.4 - June 12, 2024
B.7.3
Version 7.1.3 - April 24, 2024
B.7.4
Version 7.1.2 - March 14, 2024
B.7.5
Version 7.1.1 - February 27, 2024
B.7.6
Changes that can affect test execution
B.7.7
Version 7.1.0 - February 20, 2024
B.8
QF-Test version 7.0
B.8.1
Version 7.0.8 - December 5, 2023
B.8.2
Version 7.0.7 - October 11, 2023
B.8.3
Version 7.0.6 - September 29, 2023
B.8.4
Version 7.0.5 - September 20, 2023
B.8.5
Version 7.0.4 - August 30, 2023
B.8.6
Version 7.0.3 - Juli 13, 2023
B.8.7
Version 7.0.2 - June 22, 2023
B.8.8
Version 7.0.1 - May 31, 2023
B.8.9
Changes that can affect test execution
B.8.10
Version 7.0.0 - April 27, 2023
B.9
QF-Test version 6.0
B.9.1
Version 6.0.5 - March 15, 2023
B.9.2
Version 6.0.4 - November 29, 2022
B.9.3
Version 6.0.3 - September 6, 2022
B.9.4
Version 6.0.2 - July 20, 2022
B.9.5
Version 6.0.1 - June 9, 2022
B.9.6
Changes that can affect test execution
B.9.7
Version 6.0.0 - May 17, 2022
C
Keyboard shortcuts
C.1
Navigation and editing
C.2
UI Inspector
C.3
Record and replay functions
C.4
Keyboard helper
D
Glossary
E
Privacy
E.1
Server data for version query
E.2
Sending support requests from within QF-Test
E.3
Context Information for Online Manual
E.4
Request Data on WebDriver Download
E.5
Client data in QF-Test log files
E.6
AI Integration and Third-Party Language Models
E.7
QF-Test MCP Server and AI Integration
F
Third party software
List of figures
List of tables