Table of contents

Preface
How to use this manual
Table of contents
List of figures
List of tables
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-8.0.1.exe
1.2.2Unpacking the self-extracting archive QF-Test-8.0.1-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
1.8Firewall Security Warning
2
The user interface
2.1The test suite
2.2Basic editing
2.2.1Navigating the tree
2.2.2Insertion marker
2.2.3Moving nodes
2.2.4Transforming nodes
2.2.5Tables
2.2.6Packing and Unpacking
2.2.7Sorting 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
2.0+
3
Quickstart your application
3.1Setup sequence creation
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.4Recording components
4.5Recording of HTTP requests (GET/POST)
5
Components
5.1Components of a GUI
5.2'Component' 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.5'Component' 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'
3.1+5.12 Inspecting components
5.12.1Show methods
7.0+5.12.2UI Inspector
6
Variables
6.1Variable lookup
6.2Defining variables
6.3Variable example
6.4Fetching data from the GUI
6.5JSON data
6.6External data and special groups
6.7Expressions
3.0+6.8Immediate 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
3.0+7.1.6Split run logs
7.1.7Run log options
3.3+7.1.8Creating a test suite from the run log
4.1+7.1.9Merging run logs
7.2The debugger
7.2.1Entering the debugger
7.2.2The debugger window
7.2.3Debugger commands
7.2.4Manipulating breakpoints
8
Organizing the test suite
8.1Test suite structure
8.2'Test set' and 'Test case' nodes
2.0+8.2.1 Test management with 'Test set' and 'Test case' nodes
8.2.2Concept
8.2.3Variables and special attributes
8.3'Sequence' and 'Test step' nodes
8.4'Setup' and 'Cleanup' nodes
8.5'Procedures' and 'Packages'
3.1+8.5.1Local 'Procedures' and 'Packages'
3.1+8.5.2Relative 'Procedures'
8.5.3Inserting 'Procedure call' nodes
3.1+8.5.4Parameterizing nodes
3.0+8.5.5Transforming a 'Sequence' into a 'Procedure'
8.6'Dependency' nodes
8.6.1Concept
8.6.2Usage of 'Dependencies'
8.6.3'Dependency' execution and 'Dependency' stack
8.6.4'Characteristic variables'
8.6.5'Forced cleanup'
8.6.6Rolling back 'Dependencies'
8.6.7Error escalation
8.6.8Error handling
8.6.9Name spaces for Dependencies
8.7Documenting test suites
3.5+
9
Projects
10
The standard library
11
Scripting
11.1General
11.2The run context rc
11.2.1Logging messages
11.2.2Performing checks
11.2.3Variables
11.2.4Accessing the SUT's GUI components
11.2.5Calling 'Procedures'
3.1+11.2.6Setting options
11.2.7Override components
11.3Fundamentals of the Jython integration
11.3.1Modules
11.3.2Post-mortem debugging of Jython scripts
11.3.3Boolean type
11.3.4Jython strings and character encodings
11.3.5Getting the name of a Java class
11.3.6A complex example
11.4Scripting with Groovy
11.4.1Groovy packages
11.5Scripting with JavaScript
11.5.1JavaScript imports
11.5.2NPM modules
11.5.3Print statements
11.5.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
Testing Java desktop applications
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
Testing native Windows applications
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
Testing Android applications
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
Testing iOS applications
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
Testing PDF documents
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.1'Check text'
18.3.2'Check image'
18.3.3'Check Font'
18.3.4'Check Font size'
18.4PDF component types
18.5PDF component recognition
19
Testing Java desktop applications in a browser with Webswing and JPro
19.1Technical concepts of JiB for Webswing and JPro
20
Testing Electron applications
20.1Starting the Electron Client
20.1.1Electron settings for the quickstart wizard
20.2Electron specific functionality of QF-Test
20.2.1Native Menus
20.2.2Native Dialogs
20.2.3Extended Javascript-API
20.3Technical remarks on testing Electron applications in WebDriver connection mode
21
Testing web services
21.1RESTful web services
21.1.1HTTP standards and web services
21.1.2HTTP request
21.1.3Examples
22
Data-driven testing
22.1Data driver examples
22.2General use of 'Data drivers'
22.3Examples for 'Data drivers'
22.4Advanced use
23
Reports and test documentation
23.1Reports
23.1.1Report concepts
23.1.2Report contents
23.1.3Creating reports
23.1.4Customizing reports
23.2Testdoc documentation for 'Test sets' and 'Test cases'
23.3Pkgdoc documentation for 'Packages', 'Procedures' and 'Dependencies'
24
Test execution
24.1Test execution in batch mode
24.1.1Command line usage
24.1.2Windows batch script
3.0+24.1.3Groovy
24.2Executing tests in daemon mode
24.2.1Launching the daemon
3.0+24.2.2Controlling a daemon from QF-Test's command line
24.2.3Controlling a daemon with the daemon API
4.1+24.3Re-execution of nodes (Rerun)
24.3.1Triggering rerun from a run log
24.3.2Rerunning failing nodes immediately
25
Distributed test development
25.1Referencing nodes in another test suite
25.2Managing 'Components'
25.3Merging test suites
25.3.1Importing Components
3.3+25.3.2 Importing Procedures and Testcases
25.4Strategies for distributed development
3.1+25.5Static validation of test suites
25.5.1Avoiding invalid references
4.0.3+25.5.2Unused procedures
3.0+
26
Automated Creation of Basic Procedures
26.1Introduction
26.2How to use the Procedure Builder
26.3Configuration of the Procedure Builder
26.3.1The Procedure Builder definition file
3.0+
27
Interaction with Test Management Tools
27.1HP ALM - Quality Center
27.1.1Introduction
27.1.2Step-by-step integration guide
27.1.3Troubleshooting
27.2Imbus TestBench
27.2.1Introduction
27.2.2Creating QF-Test template from interactions
27.2.3Importing test execution results
27.3QMetry
27.3.1Introduction
27.3.2Sample Configuration
27.4Klaros
27.4.1Introduction
27.4.2Importing QF-Test results into Klaros
27.5TestLink
27.5.1Introduction
27.5.2Generating template test suites for QF-Test from test cases
27.5.3Execution of test cases
27.5.4Importing QF-Test results into TestLink
28
Integration with Development Tools
28.1Eclipse
28.1.1Installation
28.1.2Configuration of the test nodes
28.2Ant
28.3Maven
3.3+28.4Jenkins
28.4.1Install and start Jenkins
28.4.2Requirements for GUI tests
28.4.3Install QF-Test Plugin
7.0+28.5JUnit 5 Jupiter
28.6TeamCity CI
29
Integration with Robot Framework (Preview)
29.1Introduction
29.2Prerequisites and installation
29.3Getting started
29.4Using the library
29.5Creating your own keywords
30
Keyword-driven testing with QF-Test
30.1Introduction
30.2Simple Keyword-driven testing with QF-Test
30.2.1Business-related Procedures
30.2.2Atomic component-oriented procedures
30.3Keyword-driven testing using dynamic or generic components
30.4Behavior-driven testing (BDT)
30.4.1Behavior-Driven Testing (BDT) from technical perspective
30.4.2Behavior-Driven Testing (BDT) from business perspective
30.5Scenario files
30.6Custom test case description
30.7Adapting to your software
31
Usage of QF-Test in Docker Environments
31.1What is Docker?
31.2QF-Test Docker Images
32
Performing GUI-based load tests
32.1Background and comparison with other techniques
32.2Load testing with QF-Test
32.2.1Provision of test systems
32.2.2Conception of the test run
32.2.3Preparing test systems prior to the test run
32.2.4Test execution
32.2.5Evaluating results
32.3Hints on test execution
32.3.1Synchronization
32.3.2Measuring end-to-end response times
32.4Troubleshooting
32.5Web load testing with headless browsers
3.0+
33
Executing Manual Tests in QF-Test
33.1Introduction
33.2Step-by-step Guide
33.3Structure of the Excel file
33.4The ManualTestRunner test suite
33.5Results
II
Best Practices
34
Introduction
35
How to start a testing project
35.1Infrastructure and testing environment
35.2Location of files
35.2.1Network installation
35.3Component Recognition
36
Organizing test suites
36.1Organizing tests
36.2Modularization
36.3Parameterization
36.4Working in multiple test suites
36.5Roles and responsibilities
36.6Managing components at different levels
36.7Reverse includes
37
Efficient working techniques
3.5+37.1Using QF-Test projects
37.2Creating test suites from scratch
37.3The standard library qfs.qft
37.4Component storage
37.5Extending test suites
37.6Working in the script editor
38
Hints on setting up test systems
38.1Using the task scheduler
38.2Remote access to Windows systems
38.3Automated logon on Windows systems
38.4Test execution on Linux
39
Test execution
39.1Dependencies
39.2Timeout vs. delay
39.3What to do if the run log contains an error
III
Reference manual
40
Options
40.1General options
3.5+40.1.1Project settings
7.0+40.1.2Saving test suites
40.1.3Display
40.1.4Editing
40.1.5Bookmarks
40.1.6External tools
40.1.7Backup files
40.1.8Library path
40.1.9License
40.1.10Updates
40.2Recording options
40.2.1Events to record
40.2.2Events to pack
40.2.3Components
40.2.4Recording sub-items
6.0+40.2.5Recording Window
40.2.6Recording procedures
40.3Replay options
40.3.1Client options
40.3.2Terminal options
40.3.3Event handling
40.3.4Component recognition
40.3.5Delays
40.3.6Timeouts
40.3.7Backward compatibility
7.0+40.4SmartID und qfs:label
6.0+40.5Android
8.0+40.6iOS
40.7Web options
40.7.1HTTP Requests
40.7.2Backward compatibility
40.8SWT options
40.9Debugger options
40.10Run log options
40.10.1General run log options
40.10.2Options for splitting run logs
40.10.3Options determining run log content
4.0+40.10.4Options for mapping between directories with test suites
40.11Variables
40.12Runtime only
41
Elements of a test suite
41.1The test suite and its structure
41.1.1'Test suite'
41.2Test and Sequence nodes
41.2.1'Test case'
41.2.2'Test set'
41.2.3'Test call'
41.2.4'Sequence'
41.2.5'Test step'
41.2.6'Sequence with time limit'
41.2.7'Extras'
41.3Dependencies
41.3.1'Dependency'
41.3.2'Dependency reference'
41.3.3'Setup'
41.3.4'Cleanup'
41.3.5'Error handler'
41.4Data driver
41.4.1'Data driver'
41.4.2'Data table'
41.4.3'Database'
41.4.4'Excel data file'
41.4.5'CSV data file'
41.4.6'Data loop'
41.5Procedures
41.5.1'Procedure'
41.5.2'Procedure call'
41.5.3'Return'
41.5.4'Package'
41.5.5'Procedures'
41.6Control structures
41.6.1'Loop'
41.6.2'While'
41.6.3'Break'
41.6.4'If'
41.6.5'Elseif'
41.6.6'Else'
41.6.7'Try'
41.6.8'Catch'
41.6.9'Finally'
41.6.10'Throw'
41.6.11'Rethrow'
41.6.12'Server script'
41.6.13'SUT script'
41.7Processes
41.7.1'Start Java SUT client'
41.7.2'Start SUT client'
41.7.3'Start process'
41.7.4'Execute shell command'
41.7.5'Start web engine'
41.7.6'Start PDF client'
41.7.7'Start windows application'
41.7.8'Attach to windows application'
41.7.9'Launch Android emulator'
41.7.10'Connect to Android device'
41.7.11'Connect to iOS device'
41.7.12'Wait for client to connect'
41.7.13'Wait for mobile device'
41.7.14'Open browser window'
41.7.15'Launch a mobile app'
41.7.16'Stop client'
41.7.17'Wait for process to terminate'
41.8Events
41.8.1'Mouse event'
41.8.2'Key event'
41.8.3'Text input'
41.8.4'Window event'
41.8.5'Component event'
41.8.6'Selection'
41.8.7'File selection'
41.9Checks
41.9.1'Check text'
41.9.2'Boolean check'
41.9.3'Check items'
41.9.4'Check selectable items'
41.9.5'Check image'
41.9.6'Check geometry'
41.10Queries
41.10.1'Fetch text'
41.10.2'Fetch index'
41.10.3'Fetch geometry'
41.11Miscellaneous
41.11.1'Comment'
41.11.2'Error'
41.11.3'Warning'
41.11.4'Message'
41.11.5'Set variable'
41.11.6'Wait for component to appear'
41.11.7'Wait for document to load'
41.11.8'Wait for download to finish'
41.11.9'Load resources'
41.11.10'Load properties'
41.11.11'Unit test'
41.11.12'Install CustomWebResolver'
41.12HTTP Requests
41.12.1'Server HTTP request'
41.12.2'Browser HTTP request'
41.13Windows, Components and Items
41.13.1'Window'
41.13.2'Web page'
41.13.3'Component'
41.13.4'Item'
41.13.5'Window group'
41.13.6'Component group'
41.13.7'Windows and components'
41.14Deprecated nodes
41.14.1'Test'
41.14.2Procedure installCustomWebResolver
42
Exceptions
IV
Technical reference
43
Command line arguments and exit codes
43.1Call syntax
43.2Command line arguments
43.2.1Arguments for the starter script
43.2.2Arguments for the Java VM
43.2.3Arguments for QF-Test
43.2.4Placeholders in the filename parameter for run log and report
43.3Exit codes for QF-Test
44
GUI engines
45
Running an application from QF-Test
45.1Various methods to start the SUT
45.1.1A standalone script or executable file
45.1.2An application launched through Java WebStart
45.1.3An application started with java -jar <archive>
45.1.4 An application started with java -classpath <classpath> <class>
45.1.5 A web application in a browser
45.1.6Opening a PDF Document
46
JRE and SWT instrumentation
46.1JRE deinstrumentation
46.2SWT instrumentation
46.2.1Preparation for manual SWT instrumentation
46.2.2Manual SWT instrumentation for eclipse based applications
46.2.3Manual instrumentation for standalone SWT applications
47
Technical information about components
47.1Weighting of recognition features for recorded components
47.2Generating the component 'QF-Test ID'
47.3SmartIDs - general syntax
47.4SmartIDs - special characters
47.5Android - list of trivial component identifiers
48
Technical details about miscellaneous issues
48.1Drag&Drop
48.2Timing
48.3Regular expressions
48.4Line breaks under Linux and Windows
48.5Quoting and escaping special characters
48.6Include file resolution
49
Scripting (Jython, Groovy and JavaScript)
49.1Module load-path
49.2The plugin directory
49.3Initialization (Jython)
49.4Namespace environment for script execution (Jython)
49.5Run context API
49.6The qf module
3.0+49.7Image API
49.7.1The ImageWrapper class
49.8The JSON module
49.9Natural Language Assertions
49.9.1Motivation
49.9.2API documentation
49.9.3Result handling
49.10Exception handling
49.11Debugging scripts (Jython)
50
Web
50.1Improving component recognition with a CustomWebResolver
50.1.1General configuration
50.1.2The 'Install CustomWebResolver' node
50.1.3'CustomWebResolver' – Tables
50.1.4'CustomWebResolver' – Tree
50.1.5'CustomWebResolver' – TreeTable
50.1.6'CustomWebResolver' – Lists
50.1.7'CustomWebResolver' – Combo boxes
50.1.8'CustomWebResolver' – TabPanel and Accordion
50.1.9Example for "CarConfigurator Web" demo
50.2Special support for various web frameworks
50.2.1Web framework resolver concepts
50.2.2Setting unique IDs
50.3Browser connection mode
50.3.1QF-Driver connection mode
5.3+50.3.2CDP-Driver connection mode
50.3.3WebDriver in general
50.3.4Known limitations of the WebDriver mode
50.4Web – Pseudo Attributes
50.5Accessing hidden fields on a web page
50.6WebDriver with Safari
51
Controlling native Windows applications via the UIAuto module - without the QF-Test win engine
51.1Proceeding
51.1.1Starting the application
51.1.2Listing the GUI elements of a window
51.1.3Information on single GUI elements
51.1.4Identifiers for GUI elements
51.1.5Actions on GUI elements
51.2Example
51.2.1Starting the application
51.2.2GUI element information
52
Controlling and testing native MacOS applications
52.1Proceeding
52.1.1Starting the application
52.1.2Listing the GUI elements of a window
52.1.3Information on single GUI elements
52.1.4Identifiers for GUI elements
52.1.5Actions on GUI elements
53
Extension APIs
53.1The resolvers module
53.1.1Usage
53.1.2Implementation
53.1.3addResolver
53.1.4removeResolver
53.1.5listNames
53.1.6Accessing 'Best label'
3.1+53.1.7 The NameResolver Interface
4.0+53.1.8 The GenericClassNameResolver Interface
3.1+53.1.9 The ClassNameResolver Interface
3.1+53.1.10 The FeatureResolver Interface
53.1.11The ExtraFeatureResolver Interface
3.1+53.1.12 The ItemNameResolver Interface
3.1+53.1.13 The ItemValueResolver Interface
53.1.14The TreeTableResolver Interface
53.1.15The InterestingParentResolver Interface
4.1+53.1.16 The TooltipResolver Interface
53.1.17The IdResolver interface
4.1+53.1.18 The EnabledResolver Interface
4.1+53.1.19 The VisibilityResolver Interface
4.1+53.1.20 The MainTextResolver Interface
4.1+53.1.21 The WholeTextResolver Interface
4.1+53.1.22 The BusyPaneResolver Interfaces
4.1+53.1.23 The GlassPaneResolver Interfaces
8.0+53.1.24 The TreeIndentationResolver Interface
4.1+53.1.25 The EventSynchronizer Interface
4.1+53.1.26 The BusyApplicationDetector Interface
53.1.27Matcher
53.1.28External Implementation
53.2The webResolvers module (deprecated)
53.3The ResolverRegistry
3.1+53.4 Implementing custom item types with the ItemResolver interface
53.4.1ItemResolver concepts
53.4.2The ItemResolver interface
53.4.3The class SubItemIndex
53.4.4The ItemRegistry
53.4.5Default item representations
3.1+53.5 Implementing custom checks with the Checker interface
53.5.1The Checker interface
53.5.2The class Pair
53.5.3 The CheckType interface and its implementation DefaultCheckType
53.5.4The class CheckDataType
53.5.5The class CheckData and its subclasses
53.5.6The CheckerRegistry
53.5.7Custom checker example
3.2+53.6 Working with the Eclipse Graphical Editing Framework (GEF)
53.6.1Recording GEF items
53.6.2Implementing a GEF ItemNameResolver2
53.6.3Implementing a GEF ItemValueResolver2
3.1+53.7Test run listeners
53.7.1The TestRunListener interface
53.7.2The class TestRunEvent
53.7.3The class TestSuiteNode
4.0.3+53.8ResetListener
53.9DOM processors
53.9.1The DOMProcessor interface
53.9.2The DOMProcessorRegistry
53.9.3Error handling
3.0+53.10Image API extensions
53.10.1The ImageRep class
53.10.2The ImageComparator interface
53.10.3The ImageRepDrawer class
53.11Pseudo DOM API
53.11.1The abstract Node class
53.11.2The DocumentNode class
53.11.3The FrameNode class
53.11.4The DomNode class
53.11.5The DialogNode class
4.1+53.12WebDriver SUT API
53.12.1The WebDriverConnection class
5.0+53.13Windows Control API
53.13.1The WinControl class
54
Daemon mode
54.1Daemon concepts
54.2Daemon API
54.2.1The DaemonLocator
54.2.2The Daemon
54.2.3The TestRunDaemon
54.2.4The DaemonRunContext
3.1+54.2.5The DaemonTestRunListener
3.5+54.3Daemon security considerations
54.3.1Creating your own keystore
54.3.2Specifying the keystore
54.3.3Specifying the keystore on the client side
55
The Procedure Builder definition file
55.1Placeholders
4.1.3+55.1.1Fallback values for placeholders
55.2Conditions for Package and Procedure Definition
55.3Interpretation of the Component Hierarchy
3.4+55.4Details about the @CONDITION tag
56
The ManualStepDialog
56.1The ManualStepDialog API
3.1+
57
Details about transforming nodes
57.1Introduction
57.2Transformation with type changes
57.3Additional transformations below the 'Extras' node
57.3.1Transformations without side-effects
57.3.2Transformations with side-effects
3.3+
58
Details about the algorithm for image comparison
58.1Introduction
58.2Description of algorithms
58.2.1Classic image check
58.2.2Pixel-based identity check
58.2.3Pixel-based similarity check
58.2.4Block-based identity check
58.2.5Block-based similarity check
58.2.6Histogram check
58.2.7Analysis with Discrete Cosine Transformation
58.2.8Block-based analysis with Discrete Cosine Transformation
58.2.9Bilinear Filter
58.3Description of special functions
58.3.1Image-in-image search
3.2+
59
Result lists
59.1Introduction
59.2Specific list actions
59.2.1All types of lists
59.2.2Replacing
59.2.3Error list
3.5+59.3Exporting and loading results
4.0+
60
Generic classes
60.1Accordion
60.2BusyPane
60.3Button
60.4Calendar
60.5CheckBox
60.6Closer
60.7ColorPicker
60.8ComboBox
60.9Divider
60.10Expander
60.11FileChooser
60.12Graphics
60.13Icon
60.14Indicator
60.15Item
60.16Label
60.17Link
60.18List
60.19LoadingComponent
60.20Maximizer
60.21Menu
60.22MenuItem
60.23Minimizer
60.24ModalOverlay
60.25Panel
60.26Popup
60.27ProgressBar
60.28RadioButton
60.29Restore
60.30ScrollBar
60.31Separator
60.32Sizer
60.33Slider
60.34Spacer
60.35Spinner
60.36SplitPanel
60.37Table
60.38TableCell
60.39TableFooter
60.40TableHeader
60.41TableHeaderCell
60.42TableRow
60.43TabPanel
60.44Text
60.45TextArea
60.46TextField
60.47Thumb
60.48ToggleButton
60.49ToolBar
60.50ToolBarItem
60.51ToolTip
60.52Tree
60.53TreeNode
60.54TreeTable
60.55Window
61
Doctags
61.1Doctags for reporting and documentation
4.2+61.1.1@noreport Doctag
61.2Doctags for Robot Framework
61.3Doctags for test execution
61.4Doctags for Editing
61.5Doctags influencing the procedure builder
A
FAQ - Frequently Asked Questions
B
Release notes
B.1QF-Test version 8.0
B.1.1Version 8.0.1 - September 11, 2024
B.1.2Changes that can affect test execution
B.1.3Version 8.0.0 - August 8, 2024
B.2QF-Test version 7.1
B.2.1Version 7.1.5 - July 16, 2024
B.2.2Version 7.1.4 - June 12, 2024
B.2.3Version 7.1.3 - April 24, 2024
B.2.4Version 7.1.2 - March 14, 2024
B.2.5Version 7.1.1 - February 27, 2024
B.2.6Changes that can affect test execution
B.2.7Version 7.1.0 - February 20, 2024
B.3QF-Test version 7.0
B.3.1Version 7.0.8 - December 5, 2023
B.3.2Version 7.0.7 - October 11, 2023
B.3.3Version 7.0.6 - September 29, 2023
B.3.4Version 7.0.5 - September 20, 2023
B.3.5Version 7.0.4 - August 30, 2023
B.3.6Version 7.0.3 - Juli 13, 2023
B.3.7Version 7.0.2 - June 22, 2023
B.3.8Version 7.0.1 - May 31, 2023
B.3.9Changes that can affect test execution
B.3.10Version 7.0.0 - April 27, 2023
B.4QF-Test version 6.0
B.4.1Version 6.0.5 - March 15, 2023
B.4.2Version 6.0.4 - November 29, 2022
B.4.3Version 6.0.3 - September 6, 2022
B.4.4Version 6.0.2 - July 20, 2022
B.4.5Version 6.0.1 - June 9, 2022
B.4.6Changes that can affect test execution
B.4.7Version 6.0.0 - May 17, 2022
B.5QF-Test Version 5.4
B.5.1Version 5.4.3 - March 11, 2022
B.5.2Version 5.4.2 - February 18, 2022
B.5.3Version 5.4.1 - January 20, 2022
B.5.4Changes that can affect test execution
B.5.5Version 5.4.0 - December 15, 2021
B.6QF-Test Version 5.3
B.6.1Version 5.3.4 - September 30, 2021
B.6.2Version 5.3.3 - September 14, 2021
B.6.3Version 5.3.2 - July 21, 2021
B.6.4Version 5.3.1 - June 15, 2021
B.6.5Changes that can affect test execution
B.6.6Version 5.3.0 - May 20, 2021
B.7QF-Test version 5.2
B.7.1Version 5.2.3 - March 9, 2021
B.7.2Version 5.2.2 - February 12, 2021
B.7.3Version 5.2.1 - December 3, 2020
B.7.4Changes that can affect test execution
B.7.5Version 5.2.0 - November 10, 2020
B.8 QF-Test version 5.1
B.8.1 Version 5.1.2 - September 15, 2020
B.8.2 Version 5.1.1 - August 26, 2020
B.8.3Changes that can affect test execution
B.8.4 Version 5.1.0 - July 8, 2020
B.9 QF-Test version 5.0
B.9.1 Version 5.0.3 - June 17, 2020
B.9.2 Version 5.0.2 - May 5, 2020
B.9.3 Version 5.0.1 - March 2, 2020
B.9.4Main new features in version 5
B.9.5 Version 5.0.0 - February 6, 2020
C
Keyboard shortcuts
C.1Navigation and editing
C.2Record and replay functions
C.3Keyboard helper
D
Glossary
E
Privacy - Processing of personal and other data
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