Handbuch

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.1Prime precondition
1.1.2Supported technology versions
1.2Windows Installation
1.2.1Installing via the Windows setup file QF-Test-4.4.1.exe
1.2.2Unpacking the self-extracting archive QF-Test-4.4.1-sfx.exe
1.2.3Completing the installation and configuring Java
1.3Linux/Unix 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
3
Quickstart your application
2.0+3.1Quickstart Wizard
3.1.1Setup sequence creation
3.1.2Executing the setup sequence
3.1.3Troubleshooting
3.2Program output and the Clients menu
3.3An 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.1GUI component hierarchy
5.2'Components' in QF-Test
5.3'QF-Test IDs'
5.4Component class
4.0+5.4.1Generic classes
5.4.2Class hierarchy for web applications
5.4.3Settings for class recording
3.1+5.5 Component inspection
5.6The importance of naming components
5.7Considerations for setting names
5.8Updating 'Components'
5.9Troubleshooting component recognition problems
5.10Accessing hidden fields on a web page
6
Sub-items of complex GUI components
6.1'Item' nodes
6.2The 'QF-Test ID' of an 'Item'
6.3Special 'QF-Test ID'-syntax for direct element access
6.3.1Accessing simple subcomponents
4.0+6.3.2Addressing multi-level sub-items
6.4Activating item recording for web tables
7
Variables
7.1Variable lookup
7.2Defining variables
7.3Variable example
7.4Fetching data from the GUI
7.5External data and special groups
7.6Expressions
3.0+7.7Immediate and lazy binding
8
Problem analysis and debugging
8.1The run-log
8.1.1Error states
8.1.2Navigating the run-log tree
8.1.3Accepting values of failed checks as good
3.0+8.1.4Split run-logs
8.1.5Run-log options
3.3+8.1.6Creating a test-suite from the run-log
4.1+8.1.7Merging run-logs
8.2The debugger
8.2.1Entering the debugger
8.2.2The debugger window
8.2.3Debugger commands
8.2.4Manipulating breakpoints
9
Organizing the test-suite
9.1Test-suite structure
9.2'Test-set' and 'Test-case' nodes
2.0+9.2.1 Test management with 'Test-set' and 'Test-case' nodes
9.2.2Concept
9.2.3Variables and special attributes
9.3'Sequence' and 'Test-step' nodes
9.4'Setup' and 'Cleanup' nodes
9.5'Procedures' and 'Packages'
3.1+9.5.1Local 'Procedures' and 'Packages'
3.1+9.5.2Relative 'Procedures'
9.5.3Inserting 'Procedure call' nodes
3.1+9.5.4Parameterizing nodes
3.0+9.5.5Transforming a 'Sequence' into a 'Procedure'
9.6'Dependency' nodes
9.6.1Concept
9.6.2Usage of 'Dependencies'
9.6.3'Dependency' execution and 'Dependency' stack
9.6.4'Characteristic variables'
9.6.5'Forced cleanup'
9.6.6Rolling back 'Dependencies'
9.6.7Error escalation
9.6.8Error handling
9.6.9Name spaces for Dependencies
9.7Documenting test-suites
3.5+
10
Projects
11
The standard library
12
Scripting
12.1General
12.2The run-context rc
12.2.1Logging messages
12.2.2Performing checks
12.2.3Variables
12.2.4Accessing the SUT's GUI components
12.2.5Calling 'Procedures'
3.1+12.2.6Setting options
12.2.7Override components
12.3Fundamentals of the Jython integration
12.3.1Modules
12.3.2Post-mortem debugging of Jython scripts
12.3.3Boolean type
12.3.4Character encodings
12.3.5Getting the name of a Java class
12.3.6A complex example
12.4Scripting with Groovy
12.4.1Groovy packages
12.5Scripting with JavaScript
12.5.1JavaScript imports
12.5.2NPM modules
12.5.3Print statements
12.5.4Execution
13
Unit Tests
13.1Java Classes as the Source for the Unit Test
13.2Basics of the Test Scripts
13.2.1Groovy Unit Tests
13.2.2Jython Unit Tests
13.2.3JavaScript Unit-Test
13.3Injections
13.3.1Component-Injections
13.3.2WebDriver-Injections
13.4Unit Tests in Report
14
Web testing
14.1Web testing using QF-Driver connection mode
14.2Website Testing using WebDriver
14.2.1WebDriver in general
14.2.2WebDriver with Microsoft Edge
14.2.3WebDriver with Safari
14.2.4Known limitations of the WebDriver mode
14.3Web-Tests without visible Window
15
Testing PDF documents
15.1PDF Client
15.1.1PDF Client start
15.1.2PDF Client window
15.2PDF events
15.2.1Open a PDF document
15.2.2Switch page
15.3Checks for PDF components
15.3.1'Check text'
15.3.2'Check image'
15.3.3'Check Font'
15.3.4'Check Font size'
15.4PDF component types
15.5PDF component recognition
16
Testing web services
16.1RESTful web services
16.1.1HTTP standards and web services
16.1.2HTTP request
16.1.3Examples
17
Data-driven testing
17.1Data-driver examples
17.2General use of 'Data drivers'
17.3Examples for 'Data drivers'
17.4Advanced use
18
Reports and test documentation
18.1Reports
18.1.1Report concepts
18.1.2Report contents
18.1.3Creating reports
18.2Testdoc documentation for 'Test-sets' and 'Test-cases'
18.3Pkgdoc documentation for 'Packages', 'Procedures' and 'Dependencies'
19
Test execution
19.1Test execution in batch mode
19.1.1Command line usage
19.1.2Windows batch script
3.0+19.1.3Groovy
19.2Executing tests in daemon mode
19.2.1Launching the daemon
3.0+19.2.2Controlling a daemon from QF-Test's command line
19.2.3Controlling a daemon with the daemon API
4.1+19.3Re-execution of nodes (Re-run)
19.3.1Triggering re-run from a run-log
19.3.2Re-running failing nodes immediately
20
Distributed test development
20.1Referencing nodes in another test-suite
20.2Managing 'Components'
20.3Merging test-suites
20.3.1Importing Components
3.3+20.3.2 Importing Procedures and Testcases
20.4Strategies for distributed development
3.1+20.5Static validation of test-suites
20.5.1Avoiding invalid references
4.0.3+20.5.2Unused procedures
3.0+
21
Automated Creation of Basic Procedures
21.1Introduction
21.2How to use the Procedure Builder
21.3Configuration of the Procedure Builder
21.3.1The Procedure Builder definition file
3.0+
22
Interaction with Test Management Tools
22.1HP ALM - Quality Center
22.1.1Introduction
22.1.2Step-by-step integration guide
22.1.3Troubleshooting
22.2Imbus TestBench
22.2.1Introduction
22.2.2Creating QF-Test template from interactions
22.2.3Importing test-execution results
22.3QMetry
22.3.1Introduction
22.3.2Sample Configuration
22.4Klaros
22.4.1Introduction
22.4.2Importing QF-Test results into Klaros
22.5SQS-TEST/Professional
22.5.1Introduction
22.5.2Integration
22.6TestLink
22.6.1Introduction
22.6.2Generating template test-suites for QF-Test from test-cases
22.6.3Execution of test-cases
22.6.4Importing QF-Test results into TestLink
23
Integration with Development Tools
23.1Eclipse
23.1.1Installation
23.1.2Configuration of the test nodes
23.2Ant
23.3Maven
3.3+23.4Jenkins/Hudson
23.4.1Install and start Jenkins
23.4.2Requirements for GUI tests
23.4.3Install QF-Test Plugin
23.4.4Configure a job for QF-Test
24
Keyword-driven testing with QF-Test
24.1Introduction
24.2Simple Keyword-driven testing with QF-Test
24.2.1Business-related Procedures
24.2.2Atomic component-oriented procedures
24.3Keyword-driven testing using dynamic or generic components
24.4Behavior-driven testing (BDT)
24.4.1Behavior-Driven Testing (BDT) from technical perspective
24.4.2Behavior-Driven Testing (BDT) from business perspective
24.5Scenario files
24.6Custom test-case description
24.7Adapting to your software
25
Performing GUI-based load tests
25.1Background and comparison with other techniques
25.2Load testing with QF-Test
25.2.1Provision of test-systems
25.2.2Conception of the test-run
25.2.3Preparing test-systems prior to the test-run
25.2.4Test execution
25.2.5Evaluating results
25.3Hints on test execution
25.3.1Synchronization
25.3.2Measuring end-to-end response times
25.4Troubleshooting
3.0+
26
Executing Manual Tests in QF-Test
26.1Introduction
26.2Step-by-step Guide
26.3Structure of the Excel file
26.4The ManualTestRunner test-suite
26.5Results
27
Controlling and testing native Windows applications
27.1Proceeding
27.1.1Starting the application
27.1.2Listing the GUI elements of a window
27.1.3Information on single GUI elements
27.1.4Identifiers for GUI elements
27.1.5Actions on GUI elements
27.2Example
27.2.1Starting the application
27.2.2GUI element information
27.2.3Performing actions on the GUI elements
28
Controlling and testing native MacOS applications
28.1Proceeding
28.1.1Starting the application
28.1.2Listing the GUI elements of a window
28.1.3Information on single GUI elements
28.1.4Identifiers for GUI elements
28.1.5Actions on GUI elements
II
Best Practices
29
Introduction
30
How to start a testing project
30.1Infrastructure and testing environment
30.2Location of files
30.2.1Network installation
30.3Component Recognition
31
Organizing test-suites
31.1Organizing tests
31.2Modularization
31.3Parameterization
31.4Working in multiple test-suites
31.5Roles and responsibilities
31.6Managing components at different levels
31.7Reverse includes
32
Efficient working techniques
3.5+32.1Using QF-Test projects
32.2Creating test-suites from scratch
32.3The standard library qfs.qft
32.4Component storage
32.5Extending test-suites
32.6Working in the script editor
33
How to achieve robust component recognition
33.1Using the default configuration
33.2Using the 'Name overrides everything' mode
33.3Using regular expressions for working with dynamic window titles
33.4Influencing the names by implementing a NameResolver
33.5Handling classes of components
33.5.1Handling class changes due to re-factoring by using 'Record system-classes only'
33.6Avoiding recording every component or using generic components
3.1+33.7 Switching component recognition settings dynamically
34
Hints on setting up test-systems
34.1Using the task scheduler
34.2Remote access to Windows systems
34.3Automated logon on Windows systems
34.4Test execution on Unix
35
Test execution
35.1Dependencies
35.2Timeout vs. delay
35.3What to do if the run-log contains an error
III
Reference manual
36
Options
36.1General options
3.5+36.1.1Projects
36.1.2Editing
36.1.3Bookmarks
36.1.4External tools
36.1.5Backup files
36.1.6Library path
36.1.7License
36.1.8Updates
36.2Recording options
36.2.1Events to record
36.2.2Events to pack
36.2.3Components
36.2.4Recording sub-items
36.2.5Recording procedures
36.3Replay options
36.3.1Client options
36.3.2Terminal options
36.3.3Event handling
36.3.4Component recognition
36.3.5Delays
36.3.6Timeouts
36.3.7Backward compatibility
36.4Web options
36.4.1HTTP Requests
36.4.2Backward compatibility
36.5Debugger options
36.6Run-log options
36.6.1General run-log options
36.6.2Options determining run-log content
4.0+36.6.3Options for mapping between directories with test-suites
36.7Variables
37
Elements of a test-suite
37.1The test-suite and its structure
37.1.1'Test-suite'
37.2Test and Sequence nodes
37.2.1'Test-case'
37.2.2'Test-set'
37.2.3'Test call'
37.2.4'Sequence'
37.2.5'Test-step'
37.2.6'Sequence with time limit'
37.2.7'Extras'
37.3Dependencies
37.3.1'Dependency'
37.3.2'Dependency reference'
37.3.3'Setup'
37.3.4'Cleanup'
37.3.5'Error handler'
37.4Data driver
37.4.1'Data driver'
37.4.2'Data table'
37.4.3'Database'
37.4.4'Excel data file'
37.4.5'CSV data file'
37.4.6'Data loop'
37.5Procedures
37.5.1'Procedure'
37.5.2'Procedure call'
37.5.3'Return'
37.5.4'Package'
37.5.5'Procedures'
37.6Control structures
37.6.1'Loop'
37.6.2'While'
37.6.3'Break'
37.6.4'If'
37.6.5'Elseif'
37.6.6'Else'
37.6.7'Try'
37.6.8'Catch'
37.6.9'Finally'
37.6.10'Throw'
37.6.11'Rethrow'
37.6.12'Server script'
37.6.13'SUT script'
37.7Processes
37.7.1'Start Java SUT client'
37.7.2'Start SUT client'
37.7.3'Start process'
37.7.4'Start web engine'
37.7.5'Open browser window'
37.7.6'Execute shell command'
37.7.7'Start PDF client'
37.7.8'Wait for client to connect'
37.7.9'Stop client'
37.7.10'Wait for process to terminate'
37.8Events
37.8.1'Mouse event'
37.8.2'Key event'
37.8.3'Text input'
37.8.4'Window event'
37.8.5'Component event'
37.8.6'Selection'
37.8.7'File selection'
37.9Checks
37.9.1'Check text'
37.9.2'Boolean check'
37.9.3'Check items'
37.9.4'Check selectable items'
37.9.5'Check image'
37.9.6'Check geometry'
37.10Queries
37.10.1'Fetch text'
37.10.2'Fetch index'
37.10.3'Fetch geometry'
37.11Miscellaneous
37.11.1'Set variable'
37.11.2'Wait for component to appear'
37.11.3'Wait for document to load'
37.11.4'Wait for download to finish'
37.11.5'Load resources'
37.11.6'Load properties'
37.11.7'Unit test'
37.12HTTP Requests
37.12.1'Server HTTP request'
37.12.2'Browser HTTP request'
37.13Windows, Components and Items
37.13.1'Window'
37.13.2'Web page'
37.13.3'Component'
37.13.4'Item'
37.13.5'Window group'
37.13.6'Component group'
37.13.7'Windows and components'
37.14Deprecated nodes
37.14.1'Test'
38
Exceptions
IV
Technical reference
39
Command line arguments and exit codes
39.1Call syntax
39.2Command line arguments
39.2.1Arguments for the starter script
39.2.2Arguments for the Java VM
39.2.3Arguments for QF-Test
39.2.4Placeholders in the filename parameter for run-log and report
39.3Exit codes for QF-Test
40
GUI engines
41
Running an application from QF-Test
41.1Various methods to start the SUT
41.1.1A standalone script or executable file
41.1.2An application launched through Java WebStart
41.1.3An applet in a web browser
41.1.4An application started with java -jar <archive>
41.1.5 An application started with java -classpath <classpath> <class>
41.1.6 A web application in a browser
41.1.7Opening a PDF Document
42
JDK and SWT instrumentation
42.1JDK instrumentation
42.2JDK instrumentation background
42.2.1Modifications to the JDK
42.2.2Effects of the instrumentation
42.3SWT instrumentation
42.3.1Preparation for manual SWT instrumentation
42.3.2Manual SWT instrumentation for eclipse based applications
42.3.3Manual instrumentation for standalone SWT applications
43
Technical details about miscellaneous issues
43.1Drag&Drop
43.2Component recognition
43.3Timing
43.4Regular expressions
43.5Line breaks under Unix and Windows
43.6Quoting and escaping special characters
43.7Include file resolution
44
Scripting (Jython, Groovy and JavaScript)
44.1Module load-path
44.2The plugin directory
44.3The package cache (Jython)
44.4Initialization (Jython)
44.5Namespace environment for script execution (Jython)
44.6Run-context API
44.7The qf module
3.0+44.8Image API
44.8.1The ImageWrapper class
44.9Exception handling
44.10Debugging scripts (Jython)
45
Special features for web applications
45.1Pseudo DOM API
45.1.1The abstract Node class
45.1.2The DocumentNode class
45.1.3The FrameNode class
45.1.4The DomNode class
45.1.5The DialogNode class
4.1+45.2WebDriver SUT API
45.2.1The WebDriverConnection class
45.3Special support for various AJAX toolkits
45.3.1AJAX resolver concepts
45.3.2Supported AJAX toolkits
45.3.3Setting unique IDs
45.3.4Using older versions of AJAX resolvers
45.4Customizing QF-Test for your AJAX toolkit with CustomWebResolver
45.4.1Determining specifics of your web page
45.4.2Example for WebCarConfigurator
46
Extension APIs
46.1The resolvers module
46.1.1Usage
46.1.2Implementation
46.1.3addResolver
46.1.4removeResolver
46.1.5listNames
3.1+46.1.6 The NameResolver Interface
3.1+46.1.7 The ClassNameResolver Interface
4.0+46.1.8 The GenericClassNameResolver Interface
3.1+46.1.9 The FeatureResolver Interface
46.1.10The ExtraFeatureResolver Interface
3.1+46.1.11 The ItemNameResolver Interface
3.1+46.1.12 The ItemValueResolver Interface
46.1.13The TreeTableResolver Interface
46.1.14The InterestingParentResolver Interface
4.1+46.1.15 The TooltipResolver Interface
46.1.16The IdResolver interface
4.1+46.1.17 The EnabledResolver Interface
4.1+46.1.18 The VisibilityResolver Interface
4.1+46.1.19 The MainTextResolver Interface
4.1+46.1.20 The BusyPaneResolver Interfaces
4.1+46.1.21 The GlassPaneResolver Interfaces
4.1+46.1.22 The EventSynchronizer Interface
4.1+46.1.23 The BusyApplicationDetector Interface
46.1.24Matcher
46.1.25External Implementation
46.2The webResolvers module
46.2.1General Information
46.2.2addResolver
46.2.3removeResolver
46.2.4listNames
46.2.5Examples
46.3The ResolverRegistry
3.1+46.4 Implementing custom item types with the ItemResolver interface
46.4.1ItemResolver concepts
46.4.2The ItemResolver interface
46.4.3The class SubItemIndex
46.4.4The ItemRegistry
46.4.5Default item representations
3.1+46.5 Implementing custom checks with the Checker interface
46.5.1The Checker interface
46.5.2The class Pair
46.5.3 The CheckType interface and its implementation DefaultCheckType
46.5.4The class CheckDataType
46.5.5The class CheckData and its subclasses
46.5.6The CheckerRegistry
46.5.7Custom checker example
3.2+46.6 Working with the Eclipse Graphical Editing Framework (GEF)
46.6.1Recording GEF items
46.6.2Implementing a GEF ItemNameResolver2
46.6.3Implementing a GEF ItemValueResolver2
3.1+46.7Test-run listeners
46.7.1The TestRunListener interface
46.7.2The class TestRunEvent
46.7.3The class TestSuiteNode
4.0.3+46.8ResetListener
46.9DOM processors
46.9.1The DOMProcessor interface
46.9.2The DOMProcessorRegistry
46.9.3Error handling
3.0+46.10Image API extensions
46.10.1The ImageRep class
46.10.2The ImageComparator interface
47
Daemon mode
47.1Daemon concepts
47.2Daemon API
47.2.1The DaemonLocator
47.2.2The Daemon
47.2.3The TestRunDaemon
47.2.4The DaemonRunContext
3.1+47.2.5The DaemonTestRunListener
3.5+47.3Daemon security considerations
47.3.1Creating your own keystore
47.3.2Specifying the keystore
47.3.3Specifying the keystore on the client side
48
The Procedure Builder definition file
48.1Placeholders
4.1.3+48.1.1Fallback values for placeholders
48.2Conditions for Package and Procedure Definition
48.3Interpretation of the Component Hierarchy
3.4+48.4Details about the @CONDITION tag
49
The ManualStepDialog
49.1The ManualStepDialog API
3.1+
50
Details about transforming nodes
50.1Introduction
50.2Transformation with type changes
50.3Additional transformations below the 'Extras' node
50.3.1Transformations without side-effects
50.3.2Transformations with side-effects
3.3+
51
Details about the algorithm for image comparison
51.1Introduction
51.2Description of algorithms
51.2.1Classic image check
51.2.2Pixel-based identity check
51.2.3Pixel-based similarity check
51.2.4Block-based identity check
51.2.5Block-based similarity check
51.2.6Histogram check
51.2.7Analysis with Discrete Cosine Transformation
51.2.8Block-based analysis with Discrete Cosine Transformation
51.2.9Bilinear Filter
51.3Description of special functions
51.3.1Image-in-image search
3.2+
52
Result lists
52.1Introduction
52.2Specific list actions
52.2.1All types of lists
52.2.2Replacing
52.2.3Error list
3.5+52.3Exporting and loading results
4.0+
53
Generic classes
53.1Overview generic classes
53.2Mapping of complex components
53.2.1Mapping of Comboboxes
53.2.2Mapping of Lists
53.2.3Mapping of TabPanels and Accordions
53.2.4Mapping of Tables and TreeTables
53.2.5Mapping of Trees
53.3Properties of generic classes
53.3.1Accordion
53.3.2BusyPane
53.3.3Button
53.3.4Calendar
53.3.5ColorPicker
53.3.6CheckBox
53.3.7Closer
53.3.8Divider
53.3.9ComboBox
53.3.10Expander
53.3.11FileChooser
53.3.12Graphics
53.3.13Icon
53.3.14Indicator
53.3.15Item
53.3.16Label
53.3.17Link
53.3.18List
53.3.19LoadingComponent
53.3.20Maximizer
53.3.21Menu
53.3.22MenuItem
53.3.23Minimizer
53.3.24Popup
53.3.25RadioButton
53.3.26Restore
53.3.27Panel
53.3.28ProgressBar
53.3.29ScrollBar
53.3.30Separator
53.3.31Sizer
53.3.32Slider
53.3.33Spacer
53.3.34Spinner
53.3.35SplitPanel
53.3.36Table
53.3.37TableCell
53.3.38TableFooter
53.3.39TableHeader
53.3.40TableHeaderCell
53.3.41TabPanel
53.3.42TableRow
53.3.43Text
53.3.44TextArea
53.3.45TextField
53.3.46Thumb
53.3.47ToggleButton
53.3.48ToolBar
53.3.49ToolBarItem
53.3.50ToolTip
53.3.51Tree
53.3.52TreeNode
53.3.53TreeTable
53.3.54Window
54
Doctags
54.1Doctags for reporting and documentation
4.2+54.1.1@noreport Doctag
54.2Doctags for test execution
54.3Doctags for Editing
A
FAQ - Frequently Asked Questions
B
Release notes
B.1QF-Test version 4.4
B.1.1Version 4.4.1 - October 26, 2018
B.1.2Version 4.4.0 - October 11, 2018
B.2QF-Test version 4.3
B.2.1Version 4.3.2 - September 11, 2018
B.2.2Version 4.3.1 - August 28, 2018
B.2.3Faster release cycle
B.2.4Version 4.3.0 - July 26, 2018
B.3QF-Test version 4.2
B.3.1Version 4.2.5 - July 11, 2018
B.3.2Version 4.2.4 - June 14, 2018
B.3.3Version 4.2.3 - May 3, 2018
B.3.4Version 4.2.2 - March 9, 2018
B.3.5Version 4.2.1 - February 26, 2018
B.3.6Highlights of version 4.2
B.3.7Changes that can affect test execution
B.3.8Software that is no longer supported
B.3.9Version 4.2.0 - January 10, 2018
B.4QF-Test version 4.1
B.4.1Version 4.1.6 - October 27, 2017
B.4.2Version 4.1.5 - August 9, 2017
B.4.3Version 4.1.4 - June 1, 2017
B.4.4Version 4.1.3 - March 29, 2017
B.4.5Version 4.1.2 - January 13, 2017
B.4.6Version 4.1.1 - November 23, 2016
B.4.7Highlights of version 4.1
B.4.8Changes that can affect test execution
B.4.9Software that is no longer supported
B.4.10Version 4.1.0 - October 6, 2016
B.4.11Version 4.1.0-rc2 - September 2, 2016
B.4.12Version 4.1.0-rc1 - July 29, 2016
B.5QF-Test version 4.0
B.5.1Version 4.0.11 - April 05, 2016
B.5.2Version 4.0.10 - January 28, 2016
B.5.3Version 4.0.9 - December 17, 2015
B.5.4Version 4.0.8 - November 4, 2015
B.5.5Version 4.0.7 - August 27, 2015
B.5.6Version 4.0.6 - July 16, 2015
B.5.7Version 4.0.5 - May 12, 2015
B.5.8Version 4.0.4 - March 5, 2015
B.5.9Version 4.0.3 - January 29, 2015
B.5.10Version 4.0.2-p2
B.5.11Version 4.0.2-p1
B.5.12Version 4.0.2 - October 22, 2014
B.5.13Version 4.0.1 - August 28, 2014
B.5.14Main new features in version 4
B.5.15Version 4.0.0 - July 31, 2014
B.5.16Version 4.0.0-rc1 - July 4, 2014
B.5.17Version 4.0.0-beta3 - May 13, 2014
B.5.18Version 4.0.0-beta2 - April 11, 2014
B.5.19Version 4.0.0-beta1 - March 26, 2014
B.6QF-Test version 3
B.6.1Version 3.5.7 - July 22, 2014
B.6.2Version 3.5.6 - April 29, 2014
B.6.3Version 3.5.5 - February 25, 2014
B.6.4Version 3.5.4 - December 11, 2013
B.6.5Version 3.5.3 - September 17, 2013
B.6.6Version 3.5.2 - July 2, 2013
B.6.7Version 3.5.1 - May 15, 2013
B.6.8Main new features in version 3.5
B.6.9Version 3.5.0 - March 20, 2013
B.6.10Version 3.5M3 - January 8, 2013
B.6.11Version 3.5M2 - November 16, 2012
B.6.12Version 3.5M1 - October 29, 2012
B.6.13Version 3.4.14 - March 20, 2013
B.6.14Version 3.4.13 - January 8, 2013
B.6.15Version 3.4.12 - November 16, 2012
B.6.16Version 3.4.11 - October 4, 2012
B.6.17Version 3.4.10 - August 7, 2012
B.6.18Version 3.4.9 - June 29, 2012
B.6.19Version 3.4.8 - June 5, 2012
B.6.20Version 3.4.7 - April 24, 2012
B.6.21Version 3.4.6 - March 27, 2012
B.6.22Version 3.4.5 - March 12, 2012
B.6.23Version 3.4.4 - January 30, 2012
B.6.24Version 3.4.3 - October 27, 2011
B.6.25Version 3.4.2 - September 15, 2011
B.6.26Version 3.4.1 - July 15, 2011
B.6.27Main new features in version 3.4
B.6.28Version 3.4.0 - May 26, 2011
B.6.29Version 3.4M2 - March 10, 2011
B.6.30Version 3.4M1 - February 3, 2011
B.6.31Version 3.3.0 - November 30, 2010
B.6.32Version 3.2.2 - July 15, 2010
B.6.33Version 3.2.1 - May 11, 2010
B.6.34New features in QF-Test version 3.2
B.6.35Version 3.2.0 - March 25, 2010
B.6.36Version 3.1.4 - February 9, 2010
B.6.37Version 3.1.3 - December 1, 2009
B.6.38Version 3.1.2 - October 15, 2009
B.6.39Version 3.1.1 - July 28, 2009
B.6.40Version 3.1.0 - May 19, 2009
B.6.41Version 3.0.2 - March 27, 2009
B.6.42Version 3.0.1 - January 23, 2009
B.6.43New features in QF-Test version 3 - December 5, 2008
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.2Client data in QF-Test log files
F
Third party software