SilkTest User's Guide: Book Outline
The Basics
Overview
The automated testing process
Getting started
The anatomy of a basic testcase
The built-in recovery system
SilkTest architecture
The 4Test language
The basic tools
Online information
Where to go from here
Creating Testplans
Starting a new testplan
Understanding the outline model
Structuring an outline
Using a template of the GUI hierarchy as an outlin...
Linking the testplan to scripts and testcases
Documenting manual tests in the testplan
Enabling Extensions for Applications Under Test
How extensions work with applications
When to enable extensions
General process for enabling extensions
Recording a Test Frame
Why window declarations make your tests robust
Preparing to record window declarations
How to record window declarations
Window declaration syntax and structure
Modifying identifiers and tags
Mapping custom classes to standard classes
Specifying how a dialog is invoked
Defining a method for a GUI object
Defining a data structure for an object
Modifying the message box declaration
Designing and Recording Testcases
Preparing to design and record testcases
Test running the built-in recovery system
Testcase design principles
Defining test requirements
Overview of recording the stages of a testcase
Recording the setup stage
Recording the verification stage
Recording the cleanup stage and pasting the record...
Saving a script file
Using object files
Recording from within a QA Organizer testplan
How recorded commands uniquely identify GUI object...
Recording without window declarations
Recording 4Test components
Running Tests and Interpreting Results
Preparing to run tests
Running tests
Results files
Using the results file to find errors
Fixing errors in a script
Managing results file information
Using the Debugger
Starting the debugger
Setting breakpoints
Executing a script in the debugger
Viewing the debugging transcript
Viewing the call stack
Viewing other script elements
Evaluating expressions
Running, resetting, and terminating execution
Tips on debugging
Enhancing Your Tests
Generalizing a Testcase
Using application states
Using data-driven testcases
Testing applications that have been made Year 2000...
Handling Exceptions
Default error handling
Using do...except
Performing more than one verification in a testcas...
Adding to the default error handling
Trapping the exception number
Writing an error-handling function
Programmatically logging an error
Defining your own exceptions
Enabling fault trapping
Adding Data to a Testplan
Linking a testplan to a data-driven testcase
Specifying data that is unique to a single test de...
Specifying data that is shared by multiple tests
Converting the data in a results file into a plan
Categorizing and Marking Testplans
Overview
Defining and modifying attributes and values
Assigning attributes and values to a testplan
Marking a testplan
Creating and modifying testplan queries
Working With Large Testplans
Navigating through a large testplan
Measuring testplan completion
Dividing a testplan into a master plan and subplan...
Editing a master plan in a multi-user environment
Cross-Platform Testing
Porting Tests to Other GUIs
Marking 4Test code as GUI-specific
Conditional compilation
Supporting GUI-specific executables
Supporting GUI-specific captions
Supporting GUI-specific menu hierarchies
Supporting extra controls
Supporting different implementations of the same c...
Supporting differences in application behavior
Supporting Internationalized Applications
Built-in support for international keyboards
Testing applications with single-byte internationa...
Internationalizing tags
Customizing SilkTest
Understanding the Recovery System
Introduction to the recovery system
Setting up the recovery system
The recovery systems flow of control
How the recovery system starts the application
How the recovery system closes windows
Specifying new window closing procedures
Specifying windows to be left open
Handling login windows
Adding to the default base state
Overriding the default recovery system
Modifying the default recovery system
Extending the Class Hierarchy
The class hierarchy
Adding methods to a class
Defining new class properties
Defining new verification properties
Defining new attributes
Defining new classes
Supporting Custom Objects
Why SilkTest sees objects as custom windows
Mapping custom classes to standard classes
Supporting graphical controls
Supporting nongraphical controls
Modifying the Library Browser
The standard Library Browser contents
Modifying the Library Browser contents
Testing Client/Server Applications
Introduction to Client/Server Testing
Client/server testing challenges
Client/server testing with SilkTest
The kinds of network testing you can perform
Client/server testing configurations
QADBTester features
Concurrent programming issues
Configuring SilkTest for Client/Server Testing
Understanding host and target machines
Networking protocols used by SilkTest
The configuration process
Selecting the SilkTest protocol
Configuration tasks
Implementing Client/Server Testing
Evolving a testing strategy
Connecting to a target machine
Using 4Tests parallel processing features
Reporting distributed results
Incremental functional test design
Running tests on one remote target
Running tests serially on multiple targets
Testing clients plus server serially
Testing clients concurrently
Testing in parallel, but not synchronously
Application states and the recovery system
Multi-Application Testing
Multi-application startup and recovery
Testcase structure in a single-application environ...
Testcase structure in a multi-application environm...
Recording window declarations for remote machines
Code for template.t
template.t explained
Code for concurrency test example
Concurrency test explained
Code for notification example 1
Notification example 1 explained
Code for notification example 2
Notification example 2 explained
GUI-Specific Tips and Tools
Using the Windows Bitmap Tool
Introduction to the Windows Bitmap Tool
Windows Bitmap Tool window
Starting the Windows Bitmap Tool
Capturing bitmaps
Comparing bitmaps
Creating and applying masks
Calling Windows DLLs From 4Test Scripts
Declaring a DLL function
Aliasing a DLL name
Using DLL support files installed with SilkTest
Passing arguments to DLL functions
Using PVCS with SilkTest
Overview of using PVCS
Setting up PVCS with SilkTest
Using PVCS with SilkTest
Possible problems
Command Reference
Command Line Syntax
Syntax of the partner command
Examples
Menu Commands
Breakpoint menu
Debug menu
Edit menu
File menu
Help menu
Include menu
Options menu
Outline menu
Record menu
Results menu
Run Menu
Testplan menu
View menu
Window menu
Appendices
QA Organizer Keywords
Using Drag-and-Drop
Supporting Owner-Draw List Boxes
Useful Multitestcase Code Templates
Parallel template
Client/Server template
Glossary
Index