Table of contents

Table of contents
Preface
How to use this manual
I
User manual
1
Installation and startup
1.1System requirements
1.1.1Hard- and Software
1.1.2Supported technologies - QF-Test
1.1.3Supported technologies - System under Test
1.2Windows Installation
1.2.1Installing via the Windows setup file QF-Test-.exe
1.2.2Unpacking the self-extracting archive QF-Test--sfx.exe
1.2.3Completing the installation and configuring Java
1.3Linux Installation
1.4macOS Installation
1.5The license file
1.6The configuration files
1.7Starting QF-Test
2
The user interface
2.1The test suite
2.2Basic editing
2.2.1Checking the validity of attribute values
2.2.2Undo
2.2.3Navigating the tree
2.2.4Insertion marker
2.2.5Moving nodes
2.2.6Transforming nodes
2.2.7Tables
2.2.8Packing and Unpacking
2.2.9Sorting Nodes
2.3Advanced editing
2.3.1Searching
2.3.2Replacing
2.3.3Complex searches and replace operations
2.3.4Multiple views
2.3.5Hiding toolbar buttons
3
Quickstart your application
3.1Setup sequence creation – The Quickstart Wizard
3.2Executing the setup sequence
3.3In case the client does not connect ...
3.4Program output and the Clients menu
3.5An application started indirectly from an already connected SUT
4
Capture and replay
4.1Recording sequences
4.2Running tests
4.3Recording checks
4.4Fetching data from the UI
4.5Recording components
4.6Recording of HTTP requests (GET/POST)
5
Components
5.1Components of a GUI
5.2Component nodes versus SmartID
5.2.1Improved readability of tests
5.2.2Test-driven development
5.2.3Keyword-driven testing
5.2.4Stability of recognition
5.2.5Maintainability
5.2.6Performance
5.2.7Combining Component nodes and SmartIDs
5.3How to achieve robust component recognition
5.3.1How to judge robust component recognition
5.3.2Opportunities for optimization
5.4Recognition criteria
5.4.1Class
5.4.2Name
5.4.3Feature
5.4.4Extra features
5.4.5Index
5.4.6Geometry
5.4.7Component hierarchy
5.5Component node
5.6SmartID
5.6.1Use cases for SmartIDs
5.6.2SmartID syntax for Class name
5.6.3SmartID syntax for Name
5.6.4SmartID syntax for Feature
5.6.5SmartID syntax for Extra features
5.6.6SmartID with index
5.6.7SmartID syntax for component hierarchies
5.6.8Recording and replaying SmartIDs
5.6.9Component QF-Test ID as SmartID
5.7Scope
5.8Generic components
5.9Sub-items: Addressing relative to a parent component
5.9.1Addressing via index
5.9.2Addressing via QPath
5.9.3Addressing via XPath and/or CSS selectors
5.9.4Addressing via Items nodes
5.10Troubleshooting component recognition problems
5.10.1Timing synchronisation
5.10.2Recognition
5.11Component tree maintenance
5.11.1Clean up the component tree
5.11.2Update Components
5.12 Inspecting components
5.12.1Show methods
7.0+5.12.2UI Inspector
6
Variables
6.1Variable references
6.1.1Referencing simple variables
6.1.2Referencing group variables
6.1.3Referencing variables in scripts and script expressions
6.2Variable lookup
6.3Defining variables
6.4Variable levels
6.4.1Primary stack
6.4.2Seconday stack
6.5Displaying variables in debug mode – Example
6.6Data types of variables
6.6.1JSON data
6.7External data
6.8Special groups
6.9Immediate and lazy binding
7
Problem analysis and debugging
7.1The run log
7.1.1Error states
7.1.2Navigating the run log tree
7.1.3Run-time behavior
7.1.4Showing return values
7.1.5Accepting values of failed checks as good
7.1.6Split run logs
7.1.7Run log options
7.1.8Creating a test suite from the run log
7.1.9Merging run logs
7.2The debugger
7.2.1Entering the debugger
7.2.2Displaying the current variable values
7.2.3Debugger commands
7.2.4Manipulating breakpoints
7.2.5The debugger window
8
Organizing the test suite
8.1Test suite structure
8.2Test set and Test case nodes
8.2.1 Test management with Test set and Test case nodes
8.2.2Concept
8.2.3Variables and special attributes
8.3Sequence and Test step nodes
8.4Setup and Cleanup nodes
8.5Procedures and Packages
8.5.1Local Procedures and Packages
8.5.2Relative Procedures
8.5.3Inserting Procedure call nodes
8.5.4Parameterizing nodes
8.5.5Transforming a Sequence into a Procedure
8.6Dependency nodes
8.6.1Concept
8.6.2Usage of Dependencies
8.6.3Dependency execution and Dependency stack
8.6.4Characteristic variables
8.6.5Forced cleanup
8.6.6Rolling back Dependencies
8.6.7Error escalation
8.6.8Error handling
8.6.9Name spaces for Dependencies
8.7Documenting test suites
9
Projects
9.1Subprojects
9.2Project View
9.3The file qftest.qpj
10
The standard library
11
Scripting
11.1General
11.2Script expressions
11.3The run context rc
11.3.1Logging messages
11.3.2Performing checks
11.3.3Variables
11.3.4Accessing the SUT's GUI components
11.3.5Calling Procedures
11.3.6Setting options
11.3.7Override components
11.4Fundamentals of the Jython integration
11.4.1Jython Variables
11.4.2Jython Modules
11.4.3Post-mortem debugging of Jython scripts
11.4.4Boolean type
11.4.5Jython strings and character encodings
11.4.6Getting the name of a Java class
11.4.7A complex example
11.5Scripting with Groovy
11.5.1Groovy packages
11.6Scripting with JavaScript
11.6.1JavaScript imports
11.6.2NPM modules
11.6.3Print statements
11.6.4Execution
12
Unit Tests
12.1Java Classes as the Source for the Unit Test
12.2Basics of the Test Scripts
12.2.1Groovy Unit Tests
12.2.2Jython Unit Tests
12.2.3JavaScript Unit test
12.3Injections
12.3.1Component-Injections
12.3.2WebDriver-Injections
12.4Unit Tests in Report
13
Java desktop application testing
14
Web testing
14.1Supported browsers
14.2General approach
14.3Browser connection
14.4Recognition of web components and toolkits
14.5Cross browser tests
14.6Emulation of mobile browsers
14.7Web-Tests in headless mode
14.8Integrating existing Selenium web tests
14.9Selecting the browser installation
5.0+
15
Native Windows application testing
15.1Getting started
15.2Technical background
15.3Launching/Attaching to an application
15.4Recording
15.5Components
15.6Playback and Patterns
15.7Scripting
15.8Options
15.8.1Windows scaling
15.8.2Visibility
15.8.3Attaching to a window with a given class
15.8.4Child count limitation
15.9(Current) Limitations
15.10Links
6.0+
16
Android application testing
16.1Preconditions and known restrictions
16.1.1Preconditions
16.1.2Known restrictions
16.2Emulator or real device
16.3Installing Android Studio, emulator and virtual devices (AVD)
16.3.1Android Studio installation
16.3.2Android Studio virtual device configuration
16.4Connecting to a real Android device
16.5Create a QF-Test setup sequence for Android testing
16.5.1Usage of an Android emulator
16.5.2Usage of a real Android device
16.6Record actions and checks for Android
16.7Android utility procedures
6.0+
17
iOS application testing
17.1Preconditions and known restrictions
17.1.1Preconditions
17.1.2Known restrictions
17.2Installing Xcode, Simulators and IDB
17.2.1Xcode Installation
17.2.2iOS Development Bridge (idb) Installation
17.3Testing on a real iOS device
17.4Create a QF-Test Setup sequence for iOS testing
17.5Record actions and checks for iOS
17.6iOS utility procedures
18
PDF document testing
18.1PDF Client
18.1.1PDF Client start
18.1.2PDF Client window
18.2PDF events
18.2.1Open a PDF document
18.2.2Switch page
18.3Checks for PDF components
18.3.1Check text
18.3.2Check image
18.3.3'Check Font'
18.3.4'Check Font size'
18.4PDF component types
18.5PDF component recognition
9.0.0+
19
Accessibility Testing
19.1Getting started
19.2Overview of all accessibility tests
19.2.1Axe checks with QF-Test
19.2.2Color contrast check for simple graphics
19.2.3Focus visible check
19.2.4Checking the "lang" attribute
19.2.5The "impact" rating of accessibility tests
19.3A11y run logs and reports
19.3.1Working with the run log
19.3.2Notes on report generation
20
Webswing and JPro: Java desktop application testing in a browser
20.1Technical concepts of JiB for Webswing and JPro
21
Electron application testing
21.1Starting the Electron Client
21.1.1Electron settings for the quickstart wizard
21.2Electron specific functionality of QF-Test
21.2.1Native Menus
21.2.2Native Dialogs
21.2.3Extended Javascript-API
21.3Technical remarks on testing Electron applications in WebDriver connection mode
22
WebAPI – Web services testing
22.1Structure of WebAPI tests
22.2Request authentication data
22.2.1Accept all SSL certificates
22.3Request settings
22.3.1Cookies
22.3.2Proxy
22.4Body
22.4.1multipart/form-data
22.5End-to-end scenarios – Business application logic
22.6Single-request API call generator
22.7Reporting of test runs
22.8Postman migration
22.9HTTP standards and web services
22.9.1Web API Inspector
22.10The Server HTTP request and Browser HTTP request nodes (legacy)
23
Data-driven testing
23.1Data driver examples
23.2General use of Data drivers
23.3Examples for Data drivers
23.4Advanced use
24
Reports and test documentation
24.1Reports
24.1.1Report concepts
24.1.2Report contents
24.1.3Creating reports
24.1.4Customizing reports
24.2Testdoc documentation for Test sets and Test cases
24.3Pkgdoc documentation for Packages, Procedures and Dependencies
25
Test execution
25.1Test execution in batch mode
25.1.1Command line usage
25.1.2Windows batch script
25.1.3Groovy
25.2Executing tests in daemon mode
25.2.1Launching the daemon
25.2.2Controlling a daemon from QF-Test's command line
25.2.3Controlling a daemon with the daemon API
25.3Re-execution of nodes (Rerun)
25.3.1Triggering rerun from a run log
25.3.2Rerunning failing nodes immediately
26
Distributed test development
26.1Referencing nodes in another test suite
26.2Managing Components
26.3Merging test suites
26.3.1Importing Components
26.3.2 Importing Procedures and Testcases
26.4Strategies for distributed development
26.5Static validation of test suites
26.5.1Avoiding invalid references
26.5.2Unused procedures
27
Automated Creation of Basic Procedures
27.1Introduction
27.2How to use the Procedure Builder
27.3Configuration of the Procedure Builder
27.3.1The Procedure Builder definition file
28
Interaction with Test Management Tools
28.1HP ALM - Quality Center
28.1.1Introduction
28.1.2Step-by-step integration guide
28.1.3Troubleshooting
28.2Imbus TestBench
28.2.1Introduction
28.2.2Creating QF-Test template from interactions
28.2.3Importing test execution results
28.3QMetry
28.3.1Introduction
28.3.2Sample Configuration
28.4Klaros
28.4.1Introduction
28.4.2Importing QF-Test results into Klaros
28.5TestLink
28.5.1Introduction
28.5.2Generating template test suites for QF-Test from test cases
28.5.3Execution of test cases
28.5.4Importing QF-Test results into TestLink
29
Integration with Development Tools
29.1Eclipse
29.1.1Installation
29.1.2Configuration of the test nodes
29.2Ant
29.3Maven
29.4Jenkins
29.4.1Install and start Jenkins
29.4.2Requirements for GUI tests
29.4.3Install QF-Test Plugin
7.0+29.5JUnit 5 Jupiter
29.6TeamCity CI
6.0+
30
Integration with Robot Framework
30.1Introduction
30.2Prerequisites and installation
30.3Getting started
30.4Using the library
30.5Creating your own keywords
31
Keyword-driven testing with QF-Test
31.1Introduction
31.2Simple Keyword-driven testing with QF-Test
31.2.1Business-related Procedures
31.2.2Atomic component-oriented procedures
31.3Keyword-driven testing using dynamic or generic components
31.4Behavior-driven testing (BDT)
31.4.1Behavior-Driven Testing (BDT) from technical perspective
31.4.2Behavior-Driven Testing (BDT) from business perspective
31.5Scenario files
31.6Custom test case description
31.7Adapting to your software
32
Usage of QF-Test in Docker Environments
32.1What is Docker?
32.2QF-Test Docker Images
33
Performing GUI-based load tests
33.1Background and comparison with other techniques
33.2Load testing with QF-Test
33.2.1Provision of test systems
33.2.2Conception of the test run
33.2.3Preparing test systems prior to the test run
33.2.4Test execution
33.2.5Evaluating results
33.3Hints on test execution
33.3.1Synchronization
33.3.2Measuring end-to-end response times
33.4Troubleshooting
33.5Web load testing with headless browsers
34
Executing Manual Tests in QF-Test
34.1Introduction
34.2Step-by-step Guide
34.3Structure of the Excel file
34.4The ManualTestRunner test suite
34.5Results
II
Best Practices
35
Introduction
36
How to start a testing project
36.1Infrastructure and testing environment
36.2Location of files
36.2.1Network installation
36.3Component Recognition
37
Organizing test suites
37.1Organizing tests
37.2Modularization
37.3Parameterization
37.4Working in multiple test suites
37.5Roles and responsibilities
37.6Managing components at different levels
37.7Reverse includes
38
Efficient working techniques
38.1Using QF-Test projects
38.2Creating test suites from scratch
38.3The standard library qfs.qft
38.4Component storage
38.5Extending test suites
38.6Working in the script editor
39
Hints on setting up test systems
39.1Using the task scheduler
39.2Remote access to Windows systems
39.3Automated logon on Windows systems
39.4Test execution on Linux
40
Test execution
40.1Dependencies
40.2Timeout vs. delay
40.3What to do if the run log contains an error
III
Reference manual
41
Options
41.1General options
41.1.1Project settings
7.0+41.1.2Saving test suites
41.1.3Display
41.1.4Editing
41.1.5Bookmarks
41.1.6External tools
41.1.7Backup files
41.1.8Library
41.1.9License
41.1.10Updates
41.2Recording options
41.2.1Events to record
41.2.2Events to pack
41.2.3Components
41.2.4Recording sub-items
6.0+41.2.5Recording Window
41.2.6Recording procedures
41.3Replay options
41.3.1Client options
41.3.2Terminal options
41.3.3Event handling
41.3.4Component recognition
41.3.5Delays
41.3.6Timeouts
41.3.7Backward compatibility
7.0+41.4SmartID und qfs:label
6.0+41.5Android
8.0+41.6iOS
41.7Web options
41.7.1HTTP Requests
41.7.2Backward compatibility
41.8SWT options
41.9UI Inspector options
10.0+41.10Artificial Intelligence
41.11Debugger options
41.12Run log options
41.12.1General run log options
41.12.2Options for splitting run logs
41.12.3Options determining run log content
41.12.4Run log options for screenshots
41.12.5Options for mapping between directories with test suites
41.13Variables
41.14Runtime only
42
Elements of a test suite
42.1The test suite and its structure
42.1.1Test suite
42.2Test and Sequence nodes
42.2.1Test case
42.2.2Test set
42.2.3Test call
42.2.4Sequence
42.2.5Test step
42.2.6Sequence with time limit
42.2.7Extras
42.3Dependencies
42.3.1Dependency
42.3.2Dependency reference
42.3.3Setup
42.3.4Cleanup
42.3.5Error handler
42.4Data driver
42.4.1Data driver
42.4.2Data table
42.4.3Database
42.4.4Excel data file
42.4.5CSV data file
42.4.6Data loop
42.5Procedures
42.5.1Procedure
42.5.2Procedure call
42.5.3Return
42.5.4Package
42.5.5Procedures
42.6Control structures
42.6.1Loop
42.6.2While
42.6.3Break
42.6.4If
42.6.5Elseif
42.6.6Else
42.6.7Try
42.6.8Catch
42.6.9Finally
42.6.10Throw
42.6.11Rethrow
42.6.12Server script
42.6.13SUT script
42.7Processes
42.7.1Start Java SUT client
42.7.2Start SUT client
42.7.3Start process
42.7.4Execute shell command
42.7.5Start web engine
42.7.6Start PDF client
42.7.7Start windows application
42.7.8Attach to windows application
42.7.9Launch Android emulator
42.7.10Connect to Android device
42.7.11Connect to iOS device
42.7.12Wait for client to connect
42.7.13Wait for mobile device
42.7.14Open browser window
42.7.15Launch a mobile app
42.7.16Stop client
42.7.17Wait for process to terminate
42.8Events
42.8.1Mouse event
42.8.2Key event
42.8.3Text input
42.8.4Window event
42.8.5Component event
42.8.6Selection
42.8.7File selection
42.9Checks
42.9.1Check text
42.9.2Check text with AI
42.9.3Boolean check
42.9.4Check items
42.9.5Check selectable items
42.9.6Check image
42.9.7Check geometry
42.10Queries
42.10.1Fetch text
42.10.2Fetch index
42.10.3Fetch geometry
42.10.4Fetch image
42.11WebAPI
42.11.1Web request
42.11.2Pre-request handler
42.11.3Post-request handler
42.11.4Request authentication data
42.11.5Request settings
42.12Miscellaneous
42.12.1Comment
42.12.2Error
42.12.3Warning
42.12.4Message
42.12.5Set variable
42.12.6Set image
42.12.7Wait for component to appear
42.12.8Wait for document to load
42.12.9Wait for download to finish
42.12.10Load resources
42.12.11Load properties
42.12.13Unit test
42.12.14Install CustomWebResolver
42.12.15 Accessibility Checks
42.13Windows, Components and Items
42.13.1Window
42.13.2Web page
42.13.3Component
42.13.4Item
42.13.5Window group
42.13.6Component group
42.13.7Windows and components
42.14Deprecated nodes
42.14.1Test
42.14.2Procedure installCustomWebResolver
43
Exceptions
IV
Technical reference
44
Command line arguments and exit codes
44.1Call syntax
44.2Command line arguments
44.2.1Arguments for the starter script
44.2.2Arguments for the Java VM
44.2.3Arguments for QF-Test
44.2.4Placeholders in the filename parameter for run log and report
44.3Exit codes for QF-Test
45
GUI engines
46
Running an application from QF-Test
46.1Various methods to start the SUT
46.1.1A standalone script or executable file
46.1.2An application launched through Java WebStart
46.1.3An application started with java -jar <archive>
46.1.4 An application started with java -classpath <classpath> <class>
46.1.5 A web application in a browser
46.1.6Opening a PDF Document
47
JRE and SWT instrumentation
47.1JRE deinstrumentation
47.2SWT instrumentation
47.2.1Preparation for manual SWT instrumentation
47.2.2Manual SWT instrumentation for eclipse based applications
47.2.3Manual instrumentation for standalone SWT applications
48
Technical information about components
48.1Weighting of recognition features for recorded components
48.2Generating the component QF-Test ID
48.3SmartIDs - general syntax
48.4SmartIDs - special characters
48.5Android - list of trivial component identifiers
49
Technical details about miscellaneous issues
49.1Drag&Drop
49.2Timing
49.3Regular expressions
49.4Line breaks under Linux and Windows
49.5Quoting and escaping special characters
49.6Include file resolution
50
Advanced scripting (Jython, Groovy and JavaScript)
50.1Advanced script concepts
50.1.1Module load-path
50.1.2The plugin directory
50.1.3Initialization (Jython)
50.1.4Namespace environment for script execution (Jython)
50.1.5Exception handling
50.1.6Debugging scripts (Jython)
50.2The rc module: Run context API
50.2.1The expand parameter
10.0+50.3 The ai module
50.4The qf module
50.5The Image API
50.5.1The ImageWrapper class
10.0+50.6WebAPI scripting API
10.0+50.6.1The QF-Test WebAPI module (qw)
10.0+50.6.2The WebRequest class (qw.request)
10.0+50.6.3The WebResponse class (qw.response)
50.7The JSON module
50.8The Assertions module: Natural Language Assertions
50.8.1Motivation
50.8.2API documentation
50.8.3Result handling
51
Web
51.1Improving component recognition with a CustomWebResolver
51.1.1General configuration
51.1.2The Install CustomWebResolver node
51.1.3CustomWebResolver – Tables
51.1.4CustomWebResolver – Tree
51.1.5CustomWebResolver – TreeTable
51.1.6CustomWebResolver – Lists
51.1.7CustomWebResolver – Combo boxes
51.1.8CustomWebResolver – TabPanel and Accordion
51.1.9Example for "CarConfigurator Web" demo
51.2Special support for various web frameworks
51.2.1Web framework resolver concepts
51.2.2Setting unique IDs
51.3Browser connection mode
51.3.1QF-Driver connection mode
5.3+51.3.2CDP-Driver connection mode
51.3.3WebDriver in general
51.3.4Known limitations of the WebDriver mode
51.4Web – Pseudo Attributes
51.5Accessing hidden fields on a web page
51.6WebDriver with Safari
52
Configuring the "Accessibility Checks" node
52.1YAML syntax of the Accessibility Checks node
52.2Top-level category Rules to Check
52.2.1Generic parameters of accessibility tests
52.2.2Rules to Check – axe
52.2.3Rules to Check – color-contrast-simple-graphics
52.2.4Rules to Check – focus-visible
52.2.5Rules to Check – language-lang-value
52.3Top-level category Issues to Ignore
52.3.1Issues to Ignore – URL
52.3.2Issues to Ignore – Errors and warnings
53
Controlling native Windows applications via the UIAuto module - without the QF-Test win engine
53.1Proceeding
53.1.1Starting the application
53.1.2Listing the GUI elements of a window
53.1.3Information on single GUI elements
53.1.4Identifiers for GUI elements
53.1.5Actions on GUI elements
53.2Example
53.2.1Starting the application
53.2.2GUI element information
54
Controlling and testing native MacOS applications
54.1Proceeding
54.1.1Starting the application
54.1.2Listing the GUI elements of a window
54.1.3Information on single GUI elements
54.1.4Identifiers for GUI elements
54.1.5Actions on GUI elements
55
Extension APIs
55.1The resolvers module
55.1.1Usage
55.1.2Implementation
55.1.3addResolver
55.1.4removeResolver
55.1.5listNames
55.1.6Accessing 'Best label'
55.1.7 The NameResolver Interface
55.1.8 The GenericClassNameResolver Interface
55.1.9 The ClassNameResolver Interface
55.1.10 The FeatureResolver Interface
55.1.11The ExtraFeatureResolver Interface
55.1.12 The ItemNameResolver Interface
55.1.13 The ItemValueResolver Interface
55.1.14The TreeTableResolver Interface
55.1.15The InterestingParentResolver Interface
55.1.16 The TooltipResolver Interface
55.1.17The IdResolver interface
55.1.18 The EnabledResolver Interface
55.1.19 The VisibilityResolver Interface
55.1.20 The MainTextResolver Interface
55.1.21 The WholeTextResolver Interface
55.1.22 The BusyPaneResolver Interfaces
55.1.23 The GlassPaneResolver Interfaces
8.0+55.1.24 The TreeIndentationResolver Interface
55.1.25 The EventSynchronizer Interface
55.1.26 The BusyApplicationDetector Interface
55.1.27Matcher
55.1.28External Implementation
55.2The ResolverRegistry
55.3 Implementing custom item types with the ItemResolver interface
55.3.1ItemResolver concepts
55.3.2The ItemResolver interface
55.3.3The class SubItemIndex
55.3.4The ItemRegistry
55.3.5Default item representations
55.4 Implementing custom checks with the Checker interface
55.4.1The Checker interface
55.4.2The class Pair
55.4.3 The CheckType interface and its implementation DefaultCheckType
55.4.4The class CheckDataType
55.4.5The class CheckData and its subclasses
55.4.6The CheckerRegistry
55.4.7Custom checker example
55.5 Working with the Eclipse Graphical Editing Framework (GEF)
55.5.1Recording GEF items
55.5.2Implementing a GEF ItemNameResolver2
55.5.3Implementing a GEF ItemValueResolver2
55.6Test run listeners
55.6.1The TestRunListener interface
55.6.2The class TestRunEvent
55.6.3The class TestSuiteNode
55.7ResetListener
55.8DOM processors
55.8.1The DOMProcessor interface
55.8.2The DOMProcessorRegistry
55.8.3Error handling
55.9Image API extensions
55.9.1The ImageRep class
55.9.2The ImageComparator interface
55.9.3The ImageRepDrawer class
55.10Pseudo DOM API
55.10.1The abstract Node class
55.10.2The DocumentNode class
55.10.3The FrameNode class
55.10.4The DomNode class
55.10.5The DialogNode class
55.11WebDriver SUT API
55.11.1The WebDriverConnection class
5.0+55.12Windows Control API
55.12.1The WinControl class
56
Daemon mode
56.1Daemon concepts
56.2Daemon API
56.2.1The DaemonLocator
56.2.2The Daemon
56.2.3The TestRunDaemon
56.2.4The DaemonRunContext
56.2.5The DaemonTestRunListener
56.3Daemon security considerations
56.3.1Creating your own keystore
56.3.2Specifying the keystore
56.3.3Specifying the keystore on the client side
57
The Procedure Builder definition file
57.1Placeholders
57.1.1Fallback values for placeholders
57.2Conditions for Package and Procedure Definition
57.3Interpretation of the Component Hierarchy
57.4Details about the @CONDITION tag
58
The ManualStepDialog
58.1The ManualStepDialog API
59
Details about transforming nodes
59.1Introduction
59.2Transformation with type changes
59.3Additional transformations below the Extras node
59.3.1Transformations without side-effects
59.3.2Transformations with side-effects
60
Details about the algorithm for image comparison
60.1Introduction
60.2Description of algorithms
60.2.1Classic image check
60.2.2Pixel-based identity check
60.2.3Pixel-based similarity check
60.2.4Block-based identity check
60.2.5Block-based similarity check
60.2.6Histogram check
60.2.7Analysis with Discrete Cosine Transformation
60.2.8Block-based analysis with Discrete Cosine Transformation
60.2.9Bilinear Filter
60.3Description of special functions
60.3.1Image-in-image search
61
Result lists
61.1Introduction
61.2Specific list actions
61.2.1All types of lists
61.2.2Replacing
61.2.3Error list
61.3Exporting and loading results
62
Generic classes
62.1Accordion
62.2BusyPane
62.3Button
62.4Calendar
62.5CheckBox
62.6Closer
62.7ColorPicker
62.8ComboBox
62.9Divider
62.10Expander
62.11FileChooser
62.12Graphics
62.13Icon
62.14Indicator
62.15Item
62.16Label
62.17Link
62.18List
62.19LoadingComponent
62.20Maximizer
62.21Menu
62.22MenuItem
62.23Minimizer
62.24ModalOverlay
62.25Panel
62.26Popup
62.27ProgressBar
62.28RadioButton
62.29Restore
62.30ScrollBar
62.31Separator
62.32Sizer
62.33Slider
62.34Spacer
62.35Spinner
62.36SplitPanel
62.37Table
62.38TableCell
62.39TableFooter
62.40TableHeader
62.41TableHeaderCell
62.42TableRow
62.43TabPanel
62.44Text
62.45TextArea
62.46TextField
62.47Thumb
62.48ToggleButton
62.49ToolBar
62.50ToolBarItem
62.51ToolTip
62.52Tree
62.53TreeNode
62.54TreeTable
62.55Window
63
Doctags
63.1Doctags for reporting and documentation
63.1.1@noreport Doctag
63.2Doctags for Robot Framework
63.3Doctags for test execution
63.4Doctags for Editing
63.5Doctags influencing the procedure builder
A
FAQ - Frequently Asked Questions
B
Release notes
B.1QF-Test version 10.0
B.1.1Version 10.0.1 - December 18, 2025
B.1.2Changes that can affect test execution
B.1.3Version 10.0.0 - December 9, 2025
B.2QF-Test version 9.0
B.2.1Version 9.0.6 - September 10, 2025
B.2.2Version 9.0.5 - July 30, 2025
B.2.3Version 9.0.4 - June 11, 2025
B.2.4Version 9.0.3 - April 29, 2025
B.2.5Version 9.0.2 - April 9, 2025
B.2.6Version 9.0.1 - March 12, 2025
B.2.7Changes that can affect test execution
B.2.8Version 9.0.0 - February 20, 2025
B.3QF-Test version 8.0
B.3.1Version 8.0.2 - December 05, 2024
B.3.2Version 8.0.1 - September 11, 2024
B.3.3Changes that can affect test execution
B.3.4Version 8.0.0 - August 8, 2024
B.4QF-Test version 7.1
B.4.1Version 7.1.5 - July 16, 2024
B.4.2Version 7.1.4 - June 12, 2024
B.4.3Version 7.1.3 - April 24, 2024
B.4.4Version 7.1.2 - March 14, 2024
B.4.5Version 7.1.1 - February 27, 2024
B.4.6Changes that can affect test execution
B.4.7Version 7.1.0 - February 20, 2024
B.5QF-Test version 7.0
B.5.1Version 7.0.8 - December 5, 2023
B.5.2Version 7.0.7 - October 11, 2023
B.5.3Version 7.0.6 - September 29, 2023
B.5.4Version 7.0.5 - September 20, 2023
B.5.5Version 7.0.4 - August 30, 2023
B.5.6Version 7.0.3 - Juli 13, 2023
B.5.7Version 7.0.2 - June 22, 2023
B.5.8Version 7.0.1 - May 31, 2023
B.5.9Changes that can affect test execution
B.5.10Version 7.0.0 - April 27, 2023
B.6QF-Test version 6.0
B.6.1Version 6.0.5 - March 15, 2023
B.6.2Version 6.0.4 - November 29, 2022
B.6.3Version 6.0.3 - September 6, 2022
B.6.4Version 6.0.2 - July 20, 2022
B.6.5Version 6.0.1 - June 9, 2022
B.6.6Changes that can affect test execution
B.6.7Version 6.0.0 - May 17, 2022
C
Keyboard shortcuts
C.1Navigation and editing
C.2UI Inspector
C.3Record and replay functions
C.4Keyboard helper
D
Glossary
E
Privacy
E.1Server data for version query
E.2Sending support requests from within QF-Test
E.3Context Information for Online Manual
E.4Request Data on WebDriver Download
E.5Client data in QF-Test log files
F
Third party software
List of figures
List of tables