Manual

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.3.2.exe
1.2.2Unpacking the self-extracting archive QF-Test-4.3.2-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
II
Best Practices
28
Introduction
29
How to start a testing project
29.1Infrastructure and testing environment
29.2Location of files
29.2.1Network installation
29.3Component Recognition
30
Organizing test-suites
30.1Organizing tests
30.2Modularization
30.3Parameterization
30.4Working in multiple test-suites
30.5Roles and responsibilities
30.6Managing components at different levels
30.7Reverse includes
31
Efficient working techniques
3.5+31.1Using QF-Test projects
31.2Creating test-suites from scratch
31.3The standard library qfs.qft
31.4Component storage
31.5Extending test-suites
31.6Working in the script editor
32
How to achieve robust component recognition
32.1Using the default configuration
32.2Using the 'Name overrides everything' mode
32.3Using regular expressions for working with dynamic window titles
32.4Influencing the names by implementing a NameResolver
32.5Handling classes of components
32.5.1Handling class changes due to re-factoring by using 'Record system-classes only'
32.6Avoiding recording every component or using generic components
3.1+32.7 Switching component recognition settings dynamically
33
Hints on setting up test-systems
33.1Using the task scheduler
33.2Remote access to Windows systems
33.3Automated logon on Windows systems
33.4Test execution on Unix
34
Test execution
34.1Dependencies
34.2Timeout vs. delay
34.3What to do if the run-log contains an error
III
Reference manual
35
Options
35.1General options
3.5+35.1.1Projects
35.1.2Editing
35.1.3Bookmarks
35.1.4External tools
35.1.5Backup files
35.1.6Library path
35.1.7License
35.1.8Updates
35.2Recording options
35.2.1Events to record
35.2.2Events to pack
35.2.3Components
35.2.4Recording sub-items
35.2.5Recording procedures
35.3Replay options
35.3.1Client options
35.3.2Terminal options
35.3.3Event handling
35.3.4Component recognition
35.3.5Delays
35.3.6Timeouts
35.3.7Backward compatibility
35.4Web options
35.4.1HTTP Requests
35.4.2Backward compatibility
35.5Debugger options
35.6Run-log options
35.6.1General run-log options
35.6.2Options determining run-log content
4.0+35.6.3Options for mapping between directories with test-suites
35.7Variables
36
Elements of a test-suite
36.1The test-suite and its structure
36.1.1'Test-suite'
36.2Test and Sequence nodes
36.2.1'Test-case'
36.2.2'Test-set'
36.2.3'Test call'
36.2.4'Sequence'
36.2.5'Test-step'
36.2.6'Sequence with time limit'
36.2.7'Extras'
36.3Dependencies
36.3.1'Dependency'
36.3.2'Dependency reference'
36.3.3'Setup'
36.3.4'Cleanup'
36.3.5'Error handler'
36.4Data driver
36.4.1'Data driver'
36.4.2'Data table'
36.4.3'Database'
36.4.4'Excel data file'
36.4.5'CSV data file'
36.4.6'Data loop'
36.5Procedures
36.5.1'Procedure'
36.5.2'Procedure call'
36.5.3'Return'
36.5.4'Package'
36.5.5'Procedures'
36.6Control structures
36.6.1'Loop'
36.6.2'While'
36.6.3'Break'
36.6.4'If'
36.6.5'Elseif'
36.6.6'Else'
36.6.7'Try'
36.6.8'Catch'
36.6.9'Finally'
36.6.10'Throw'
36.6.11'Rethrow'
36.6.12'Server script'
36.6.13'SUT script'
36.7Processes
36.7.1'Start Java SUT client'
36.7.2'Start SUT client'
36.7.3'Start process'
36.7.4'Start web engine'
36.7.5'Open browser window'
36.7.6'Execute shell command'
36.7.7'Start PDF client'
36.7.8'Wait for client to connect'
36.7.9'Stop client'
36.7.10'Wait for process to terminate'
36.8Events
36.8.1'Mouse event'
36.8.2'Key event'
36.8.3'Text input'
36.8.4'Window event'
36.8.5'Component event'
36.8.6'Selection'
36.8.7'File selection'
36.9Checks
36.9.1'Check text'
36.9.2'Boolean check'
36.9.3'Check items'
36.9.4'Check selectable items'
36.9.5'Check image'
36.9.6'Check geometry'
36.10Queries
36.10.1'Fetch text'
36.10.2'Fetch index'
36.10.3'Fetch geometry'
36.11Miscellaneous
36.11.1'Set variable'
36.11.2'Wait for component to appear'
36.11.3'Wait for document to load'
36.11.4'Wait for download to finish'
36.11.5'Load resources'
36.11.6'Load properties'
36.11.7'Unit test'
36.12HTTP Requests
36.12.1'Server HTTP request'
36.12.2'Browser HTTP request'
36.13Windows, Components and Items
36.13.1'Window'
36.13.2'Web page'
36.13.3'Component'
36.13.4'Item'
36.13.5'Window group'
36.13.6'Component group'
36.13.7'Windows and components'
36.14Deprecated nodes
36.14.1'Test'
37
Exceptions
IV
Technical reference
38
Command line arguments and exit codes
38.1Call syntax
38.2Command line arguments
38.2.1Arguments for the starter script
38.2.2Arguments for the Java VM
38.2.3Arguments for QF-Test
38.2.4Placeholders in the filename parameter for run-log and report
38.3Exit codes for QF-Test
39
GUI engines
40
Running an application from QF-Test
40.1Various methods to start the SUT
40.1.1A standalone script or executable file
40.1.2An application launched through Java WebStart
40.1.3An applet in a web browser
40.1.4An application started with java -jar <archive>
40.1.5 An application started with java -classpath <classpath> <class>
40.1.6 A web application in a browser
40.1.7Opening a PDF Document
41
JDK and SWT instrumentation
41.1JDK instrumentation
41.2JDK instrumentation background
41.2.1Modifications to the JDK
41.2.2Effects of the instrumentation
41.3SWT instrumentation
41.3.1Preparation for manual SWT instrumentation
41.3.2Manual SWT instrumentation for eclipse based applications
41.3.3Manual instrumentation for standalone SWT applications
42
Technical details about miscellaneous issues
42.1Drag&Drop
42.2Component recognition
42.3Timing
42.4Regular expressions
42.5Line breaks under Unix and Windows
42.6Quoting and escaping special characters
42.7Include file resolution
43
Scripting (Jython, Groovy and JavaScript)
43.1Module load-path
43.2The plugin directory
43.3The package cache (Jython)
43.4Initialization (Jython)
43.5Namespace environment for script execution (Jython)
43.6Run-context API
43.7The qf module
3.0+43.8Image API
43.8.1The ImageWrapper class
43.9Exception handling
43.10Debugging scripts (Jython)
44
Special features for web applications
44.1Pseudo DOM API
44.1.1The abstract Node class
44.1.2The DocumentNode class
44.1.3The FrameNode class
44.1.4The DomNode class
44.1.5The DialogNode class
4.1+44.2WebDriver SUT API
44.2.1The WebDriverConnection class
44.3Special support for various AJAX toolkits
44.3.1AJAX resolver concepts
44.3.2Supported AJAX toolkits
44.3.3Setting unique IDs
44.3.4Using older versions of AJAX resolvers
44.4Customizing QF-Test for your AJAX toolkit with CustomWebResolver
44.4.1Determining specifics of your web page
44.4.2Example for WebCarConfigurator
45
Extension APIs
45.1The resolvers module
45.1.1Usage
45.1.2Implementation
45.1.3addResolver
45.1.4removeResolver
45.1.5listNames
3.1+45.1.6 The NameResolver Interface
3.1+45.1.7 The ClassNameResolver Interface
4.0+45.1.8 The GenericClassNameResolver Interface
3.1+45.1.9 The FeatureResolver Interface
45.1.10The ExtraFeatureResolver Interface
3.1+45.1.11 The ItemNameResolver Interface
3.1+45.1.12 The ItemValueResolver Interface
45.1.13The TreeTableResolver Interface
45.1.14The InterestingParentResolver Interface
4.1+45.1.15 The TooltipResolver Interface
45.1.16The IdResolver interface
4.1+45.1.17 The EnabledResolver Interface
4.1+45.1.18 The VisibilityResolver Interface
4.1+45.1.19 The MainTextResolver Interface
4.1+45.1.20 The BusyPaneResolver Interfaces
4.1+45.1.21 The GlassPaneResolver Interfaces
4.1+45.1.22 The EventSynchronizer Interface
4.1+45.1.23 The BusyApplicationDetector Interface
45.1.24Matcher
45.1.25External Implementation
45.2The webResolvers module
45.2.1General Information
45.2.2addResolver
45.2.3removeResolver
45.2.4listNames
45.2.5Examples
45.3The ResolverRegistry
3.1+45.4 Implementing custom item types with the ItemResolver interface
45.4.1ItemResolver concepts
45.4.2The ItemResolver interface
45.4.3The class SubItemIndex
45.4.4The ItemRegistry
45.4.5Default item representations
3.1+45.5 Implementing custom checks with the Checker interface
45.5.1The Checker interface
45.5.2The class Pair
45.5.3 The CheckType interface and its implementation DefaultCheckType
45.5.4The class CheckDataType
45.5.5The class CheckData and its subclasses
45.5.6The CheckerRegistry
45.5.7Custom checker example
3.2+45.6 Working with the Eclipse Graphical Editing Framework (GEF)
45.6.1Recording GEF items
45.6.2Implementing a GEF ItemNameResolver2
45.6.3Implementing a GEF ItemValueResolver2
3.1+45.7Test-run listeners
45.7.1The TestRunListener interface
45.7.2The class TestRunEvent
45.7.3The class TestSuiteNode
4.0.3+45.8ResetListener
45.9DOM processors
45.9.1The DOMProcessor interface
45.9.2The DOMProcessorRegistry
45.9.3Error handling
3.0+45.10Image API extensions
45.10.1The ImageRep class
45.10.2The ImageComparator interface
46
Daemon mode
46.1Daemon concepts
46.2Daemon API
46.2.1The DaemonLocator
46.2.2The Daemon
46.2.3The TestRunDaemon
46.2.4The DaemonRunContext
3.1+46.2.5The DaemonTestRunListener
3.5+46.3Daemon security considerations
46.3.1Creating your own keystore
46.3.2Specifying the keystore
46.3.3Specifying the keystore on the client side
47
The Procedure Builder definition file
47.1Placeholders
4.1.3+47.1.1Fallback values for placeholders
47.2Conditions for Package and Procedure Definition
47.3Interpretation of the Component Hierarchy
3.4+47.4Details about the @CONDITION tag
48
The ManualStepDialog
48.1The ManualStepDialog API
3.1+
49
Details about transforming nodes
49.1Introduction
49.2Transformation with type changes
49.3Additional transformations below the 'Extras' node
49.3.1Transformations without side-effects
49.3.2Transformations with side-effects
3.3+
50
Details about the algorithm for image comparison
50.1Introduction
50.2Description of algorithms
50.2.1Classic image check
50.2.2Pixel-based identity check
50.2.3Pixel-based similarity check
50.2.4Block-based identity check
50.2.5Block-based similarity check
50.2.6Histogram check
50.2.7Analysis with Discrete Cosine Transformation
50.2.8Block-based analysis with Discrete Cosine Transformation
50.2.9Bilinear Filter
50.3Description of special functions
50.3.1Image-in-image search
3.2+
51
Result lists
51.1Introduction
51.2Specific list actions
51.2.1All types of lists
51.2.2Replacing
51.2.3Error list
3.5+51.3Exporting and loading results
4.0+
52
Generic classes
52.1Overview generic classes
52.2Mapping of complex components
52.2.1Mapping of Comboboxes
52.2.2Mapping of Lists
52.2.3Mapping of TabPanels and Accordions
52.2.4Mapping of Tables and TreeTables
52.2.5Mapping of Trees
52.3Properties of generic classes
52.3.1Accordion
52.3.2BusyPane
52.3.3Button
52.3.4Calendar
52.3.5ColorPicker
52.3.6CheckBox
52.3.7Closer
52.3.8Divider
52.3.9ComboBox
52.3.10Expander
52.3.11FileChooser
52.3.12Graphics
52.3.13Icon
52.3.14Indicator
52.3.15Item
52.3.16Label
52.3.17Link
52.3.18List
52.3.19LoadingComponent
52.3.20Maximizer
52.3.21Menu
52.3.22MenuItem
52.3.23Minimizer
52.3.24Popup
52.3.25RadioButton
52.3.26Restore
52.3.27Panel
52.3.28ProgressBar
52.3.29ScrollBar
52.3.30Separator
52.3.31Sizer
52.3.32Slider
52.3.33Spacer
52.3.34Spinner
52.3.35SplitPanel
52.3.36Table
52.3.37TableCell
52.3.38TableFooter
52.3.39TableHeader
52.3.40TableHeaderCell
52.3.41TabPanel
52.3.42TableRow
52.3.43Text
52.3.44TextArea
52.3.45TextField
52.3.46Thumb
52.3.47ToggleButton
52.3.48ToolBar
52.3.49ToolBarItem
52.3.50ToolTip
52.3.51Tree
52.3.52TreeNode
52.3.53TreeTable
52.3.54Window
53
Doctags
53.1Doctags for reporting and documentation
4.2+53.1.1@noreport Doctag
53.2Doctags for test execution
53.3Doctags for Editing
A
FAQ - Frequently Asked Questions
B
Release notes
B.1QF-Test version 4.3
B.1.1Version 4.3.2 - September 11, 2018
B.1.2Version 4.3.1 - August 28, 2018
B.1.3Faster release cycle
B.1.4Version 4.3.0 - July 26, 2018
B.2QF-Test version 4.2
B.2.1Version 4.2.5 - July 11, 2018
B.2.2Version 4.2.4 - June 14, 2018
B.2.3Version 4.2.3 - May 3, 2018
B.2.4Version 4.2.2 - March 9, 2018
B.2.5Version 4.2.1 - February 26, 2018
B.2.6Highlights of version 4.2
B.2.7Changes that can affect test execution
B.2.8Software that is no longer supported
B.2.9Version 4.2.0 - January 10, 2018
B.3QF-Test version 4.1
B.3.1Version 4.1.6 - October 27, 2017
B.3.2Version 4.1.5 - August 9, 2017
B.3.3Version 4.1.4 - June 1, 2017
B.3.4Version 4.1.3 - March 29, 2017
B.3.5Version 4.1.2 - January 13, 2017
B.3.6Version 4.1.1 - November 23, 2016
B.3.7Highlights of version 4.1
B.3.8Changes that can affect test execution
B.3.9Software that is no longer supported
B.3.10Version 4.1.0 - October 6, 2016
B.3.11Version 4.1.0-rc2 - September 2, 2016
B.3.12Version 4.1.0-rc1 - July 29, 2016
B.4QF-Test version 4.0
B.4.1Version 4.0.11 - April 05, 2016
B.4.2Version 4.0.10 - January 28, 2016
B.4.3Version 4.0.9 - December 17, 2015
B.4.4Version 4.0.8 - November 4, 2015
B.4.5Version 4.0.7 - August 27, 2015
B.4.6Version 4.0.6 - July 16, 2015
B.4.7Version 4.0.5 - May 12, 2015
B.4.8Version 4.0.4 - March 5, 2015
B.4.9Version 4.0.3 - January 29, 2015
B.4.10Version 4.0.2-p2
B.4.11Version 4.0.2-p1
B.4.12Version 4.0.2 - October 22, 2014
B.4.13Version 4.0.1 - August 28, 2014
B.4.14Main new features in version 4
B.4.15Version 4.0.0 - July 31, 2014
B.4.16Version 4.0.0-rc1 - July 4, 2014
B.4.17Version 4.0.0-beta3 - May 13, 2014
B.4.18Version 4.0.0-beta2 - April 11, 2014
B.4.19Version 4.0.0-beta1 - March 26, 2014
B.5QF-Test version 3
B.5.1Version 3.5.7 - July 22, 2014
B.5.2Version 3.5.6 - April 29, 2014
B.5.3Version 3.5.5 - February 25, 2014
B.5.4Version 3.5.4 - December 11, 2013
B.5.5Version 3.5.3 - September 17, 2013
B.5.6Version 3.5.2 - July 2, 2013
B.5.7Version 3.5.1 - May 15, 2013
B.5.8Main new features in version 3.5
B.5.9Version 3.5.0 - March 20, 2013
B.5.10Version 3.5M3 - January 8, 2013
B.5.11Version 3.5M2 - November 16, 2012
B.5.12Version 3.5M1 - October 29, 2012
B.5.13Version 3.4.14 - March 20, 2013
B.5.14Version 3.4.13 - January 8, 2013
B.5.15Version 3.4.12 - November 16, 2012
B.5.16Version 3.4.11 - October 4, 2012
B.5.17Version 3.4.10 - August 7, 2012
B.5.18Version 3.4.9 - June 29, 2012
B.5.19Version 3.4.8 - June 5, 2012
B.5.20Version 3.4.7 - April 24, 2012
B.5.21Version 3.4.6 - March 27, 2012
B.5.22Version 3.4.5 - March 12, 2012
B.5.23Version 3.4.4 - January 30, 2012
B.5.24Version 3.4.3 - October 27, 2011
B.5.25Version 3.4.2 - September 15, 2011
B.5.26Version 3.4.1 - July 15, 2011
B.5.27Main new features in version 3.4
B.5.28Version 3.4.0 - May 26, 2011
B.5.29Version 3.4M2 - March 10, 2011
B.5.30Version 3.4M1 - February 3, 2011
B.5.31Version 3.3.0 - November 30, 2010
B.5.32Version 3.2.2 - July 15, 2010
B.5.33Version 3.2.1 - May 11, 2010
B.5.34New features in QF-Test version 3.2
B.5.35Version 3.2.0 - March 25, 2010
B.5.36Version 3.1.4 - February 9, 2010
B.5.37Version 3.1.3 - December 1, 2009
B.5.38Version 3.1.2 - October 15, 2009
B.5.39Version 3.1.1 - July 28, 2009
B.5.40Version 3.1.0 - May 19, 2009
B.5.41Version 3.0.2 - March 27, 2009
B.5.42Version 3.0.1 - January 23, 2009
B.5.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