List of figures
2
Working with a Sample Test-suite [30-45 min]
2.1  The Test-suite Options.qft
2.2  The "Test-set: Options" Node
2.3  The Setup Node
2.4  The Start Java SUT Client Node
2.5  The Options Demo
2.6  The Clickstream Test-case Node
2.7  The "Table" Test Sequence
2.8  The Text Field to Check
2.9  The Text Check Test-case
2.10  Error in Check Text Node
2.11  Run-Log for the Check Text Sequence
2.12  Diagnosis of Error in the Check Text Sequence.
2.13  Screenshot node showing the error situation
2.14  The "Selected test" Node
2.15  Radio Buttons in the Options Demo
2.16  The Cleanup Sequence
2.17  Run-Log for the Completed Test-set "Options"
2.18  Report Generation Properties
2.19  An HTML Report
3
Creating a Test-suite [45-60 min]
3.1  The Quickstart Wizard
3.2  Select type of SUT
3.3  Specification of the Java executable.
3.4  Working directory.
3.5  Jar file selection.
3.6  SWT instrumentation
3.7  Client name
3.8  Final Information
3.9  Generated Setup Sequence
3.10  The FileChooserDemo Window
3.11  The Recorded Clickstream
3.12  Start organizing the Test-suite
3.13  Component selection dialog
3.14  Setup sequence of the FileChooserDemo
3.15  The Organization of your Test-suite
3.16  Recording a Check in the FileChooser Window
3.17  The Text-Check Test-case Organized into the Tree Structure
3.18   The Run-Log of Your Test-set
3.19  Properties of the "Check Text" Node
3.20  The Check Enabled Status Test-case
4
Using the Debugger [30-45 min]
4.1   Starting Options.qft with the debugger
4.2  The debugger window
4.3  After a step-in operation
4.4  Preparing for step-over command
4.5  Preparing for the step-out command
4.6  Setting a breakpoint
4.7  Select a node to modify
4.8  The modified node
4.9  An unknown component ID error
4.10  Jump to run-log
5
Writing a Procedure [30-45 min]
5.1  Skeleton for new Test-suite
5.2  Checkbox within the Miscellaneous Options of the SUT
5.3  Adding a Procedure
5.4  Recording the "Check boolean: selected" Node
5.5  A 'Check boolean: selected' Node within the Procedure
5.6  The Checkbox Component within the Component Tree
5.7  'Check boolean: selected' Error
5.8  Throw Exception on Failure
5.9  Selecting an Exception to Catch
5.10  CheckFailedException in the Run-Log
5.11  Procedure with Try/Catch
5.12  Procedure with Completed Try/Catch Mechanism
5.13  Variable Replacing Fixed Component
5.14  Properties of a Procedure Call
6
Creating a Generalized Procedure [30-45 min]
6.1  The Checkbox Package
6.2  Check for Unselected State
6.3  Checkbox Package with two Procedures
6.4  Default Value for Procedure Variable
6.5  Condition Statement for the "If" Node
6.6  The If/Else Construct
6.7  The If/Elseif/Else Construct
6.8  Procedure Call to setState
6.9  Comments for Package Documentation
6.10  The Package Documentation
7
Modularization [30-45 min]
7.1  Utility Suite utils.qft
7.2  Deselect Checkbox Sequence-Node
7.3  Sequence-Node with Recorded Click
7.4  Procedure Call to utils.qft
7.5  An Include List
7.6  Constant Reference to the SUT Client
7.7  Variable Reference to the SUT Client
7.8  Setting a Default Test-suite Variable
8
The Standard Library [30-45 min]
8.1  The Test-suite StdLibDemo.qft
8.2  The SUT for Testing the Standard Library
8.3  The Standard Library
8.4  Setting the $(client) Variable
8.5  Example Usage of the qfs.swing.checkbox Package
8.6  Example Call to qfs.swing.menu.setSubCheckItem
8.7  Selecting a Sub-Menu Check Item within the SUT
8.8  Selecting a Sub-Menu Item within a Popup Menu
8.9  Example Call to popupmenu.setSubItem
8.10  Example Usage of text.clearArea
8.11  Example Usage of tree.expand
8.12  Tree Component Items
8.13  A Test Configured to Implicitly Catch Exceptions
8.14  Implicit Error Examples
8.15  Example Usage of qfs.swing.filechooser.selectFile
8.16  Recorded JFileChooser Dialogs and Components
8.17  Using the Name Resolver
8.18  Implementation of selectFile with Generic Components
8.19  Generic FileChooser Components in qfs.qft
8.20  Generic OptionPane Components in qfs.qft
9
Managing Complex GUI Components [30-45 min]
9.1  Start Java SUT Client Node for ItemsDemo
9.2  The ItemsDemo Window
9.3  Mouse Operations Performed on a JList
9.4  Reference to a JList Item
9.5  JList Item Node
9.6  JList Item Properties
9.7  JList Item with Numeric Index
9.8  JList Item with Regular Expression Index
9.9  The Sample Table within the SUT
9.10  Mouse Clicks Recorded from the JTable
9.11  Registered Items Nodes for the JTable
9.12  Properties of a JTable Column Item Node
9.13  Mouse Clicks using the syntax for direct access
9.14  A Table with Duplicate Items
9.15  Mouse Clicks Recorded from the JTree
9.16  Direct Numeric Reference to a JTree Node
12
Working with a Sample Test-suite [30-45 min]
12.1  The Test-suite webdemo.qft
12.2  The "Test-set: Web demo" Node
12.3  The "Setup: Start browser"
12.4  The "Start brower" Node
12.5  The Web Demo Page in the Browser Window
12.6  The Clickstream Test-case Node
12.7  The "Menu items" Test Sequence
12.8  The "Name:" Label to Check
12.9  The Text Check Test-case
12.10  Error in String Check Node
12.11  Run-Log for the Text Check Sequence
12.12  Diagnosis of Error in the Text Check Sequence.
12.13  Screenshot node showing the error situation
12.14  The "Selected test" Node
12.15  Radio Buttons in the Web Demo
12.16  The Cleanup Sequence "Stop Browser"
12.17  Run-Log for the Completed Test-set "Web demo"
12.18  Report Generation Properties
12.19  An HTML Report
13
Creating a Test-suite [45-60 min]
13.1  The Quickstart Wizard
13.2  Select type of SUT
13.3  Specification of the URL.
13.4  AJAX toolkit.
13.5  Browser selection.
13.6  Browser settings
13.7  Browser window name
13.8  Client name
13.9  Final Information
13.10  Generated Setup Sequence
13.11  The Recorded Clickstream
13.12  The Organization of your Test-suite
13.13  Recording a Text Check
13.14  The Text-Check Test Organized into the Tree Structure
13.15   The Run-Log of Your Test
13.16  Properties of the "Check Text" Node
16
The Demo Application [5 min]
16.1  The main window of the JCarConfigurator
17
Data driven Testing: Running one 'Test-case' with different test data [30-45 min]
17.1  Traditional way of data driven testing
17.2  Traditional way with a nested 'Test-set'
17.3  Data table dialog
17.4  The filled data table
17.5  'Test-set' with 'Data driver'
17.6  Using the $(discount) parameter
17.7  Full data table
17.8  Name for run-log and report attribute
17.9  Run-log with different names per 'Test-case'
18
Dependencies: Automatically ensuring correct prerequisites for each 'Test-case' [60 min]
18.1  First 'Test-set' of dependencies_work.qft
18.2  First 'Test-set' of dependencies_work.qft
18.3  Sample test-suite with the first 'Dependency'
18.4  The run-log of the execution
18.5  The new 'Setup' implementation
18.6  The test-suite with a 'Dependency reference'
18.7  Ensuring prerequisites for 'Test-case' 'Discount 15'
18.8  'Open Vehicle Dialog' 'Dependency'
18.9  Implementation of specified test-cases
18.10  Run-log of nested 'Dependencies'
18.11  Test-suite of 'Error handler'
18.12  'Dependency' with 'Error handler'
18.13  Run-log for 'Dependency' with 'Error handler'
18.14  Try-catch nodes in each 'Test-case'
18.15  Test-suite with 'Catch'
18.16  Run-log of a 'Dependency' with 'Catch'
19
Automated creation of basic procedures [60 min]
19.1  Screenshot of test-suite
19.2  The test-suite automated_procedures_work.qft
19.3  The recorded procedures
19.4  The test-suite containing the procedures
19.5  The procedures for all panels
19.6  The current configuration
19.7  The own configuration file
19.8  The checkText procedure
19.9  The checkText procedure with parameters
19.10  Using the <COMPID> place holder
19.11  Your first automatically created procedures
19.12  The configuration for the current text
19.13  The created procedures with the current text
19.14  The template for container procedures
19.15  Usage of @FORCHILDREN tag
19.16  The created container procedures
19.17  Configuration of <CCURRENTVALUE>
19.18  Test-suite using <CCURRENTVALUE>
19.19  Parameters for container procedures
19.20  Parameters for container procedures in test-suite