Download - PDF Versionen
-
QF-Test - Das Handbuch
Version 4.2.0
Gregor SchmidQuality First Software GmbH1
Copyright c 1999-2018 Quality First Software GmbH
9. Januar 2018
1http://www.qfs.de
-
Vorwort
Wie unser Firmenname unschwer erkennen lsst, hat sich die Quality First SoftwareGmbH dem Thema Qualitt in der Softwareentwicklung verschrieben. Unser Beitraghierzu ist das Programm QF-Test, dessen Handbuch Sie gerade lesen.
Mit Hilfe von QF-Test knnen Funktionalittstests von Java Programmen oder Websei-ten automatisiert werden, sofern diese eine grafische Benutzeroberflche aufweisen.Die undankbare Aufgabe des Testens fllt je nach Gre und Struktur einer Firma undihrer Projekte mal einem eigenen Team zur Qualittssicherung zu, mal wird sie von denEntwicklern nebenbei erledigt und manchmal fllt sie ganz unter den Tisch, dann testeteben der Kunde. Anwender von QF-Test sind daher sowohl Entwickler als auch Tester,die zum Teil sehr unterschiedliche Vorkenntnisse im Bezug auf Java oder Web GUIsmitbringen.
Wir versuchen in diesem Handbuch sowohl Entwicklern als auch Testern gerecht zuwerden und die erforderlichen Grundlagen ber den Aufbau einer grafischen Benut-zeroberflche und die Handhabung von Ereignissen unter Java zu vermitteln. Solltendabei Fragen offen bleiben, wenden Sie sich als Tester am besten an Ihre Entwickler,die Ihnen sicherlich weiterhelfen knnen. Die Entwickler unter Ihnen werden wir hoffent-lich nicht zu sehr langweilen. Sie knnen die entsprechenden Stellen gegebenenfallseinfach berspringen.
Ursprnglich untersttzte QF-Test nur Java Swing GUIs, mit Version 2.0 kam Eclip-se/SWT hinzu mit Version 3.0 die Untersttzung von Webtesten. Teile von QF-Test unddieses Handbuch wurden entsprechend geprgt, so dass die Dinge aus Sicht des Te-stens von Swing GUIs erklrt sind. In den meisten Fllen sind die Konzepte universellfr alle GUIs anwendbar. Wo sie sich unterscheiden werden mit speziellen Hinweisendie Eigenheiten von SWT oder Web GUIs erklrt.
Und noch ein Wort zur Sprache: Deutsche Bcher zu Computerthemen leiden fast im-mer unter dem Problem, dass viele Begriffe aus dem Englischen kommen. Diese ha-ben im technischen Zusammenhang oft eine spezielle Bedeutung, die von der normal-sprachlichen abweicht. Die bersetzung solcher Begriffe ist schwierig, fhrt zu eigenar-tigen Wortkonstruktionen und verschleiert schlimmstenfalls die eigentliche Bedeutung.Belsst man sie dagegen in ihrer englischen Form, ergibt sich ein etwas holpriger Satz-bau. Wir werden in diesem Handbuch beide Wege gehen und von Fall zu Fall entschei-
-
ii
den.
Hinweise zur Benutzung dieses Handbuchs
Dieses Handbuch wird in HTML und PDF Versionen ausgeliefert. Die HTML Versionist zur besseren Navigation in kleinere Dateien aufgeteilt. Dank vieler Querverweise istdie HTML Version besser zum Lesen am Rechner geeignet, whrend die PDF Versionhohe Druckqualitt liefert. Zum Suchen im Text ist die PDF Version vorzuziehen, da dieAufteilung der HTML Dateien eine Suche durch das gesamte Handbuch verhindert.
Die PDF Version des Handbuchs befindet sich unterqftest-4.2.0/doc/manual_de.pdf, die Einstiegsseite der HTML Version unterqftest-4.2.0/doc/manual/de/manual.html.
Ein Webbrowser fr die HTML Version kann direkt aus QF-Test heraus gestartetwerden. Der Meneintrag HilfeHandbuch... fhrt Sie zur Einstiegsseite,HilfeNeuigkeiten... zur Dokumentation der nderungen seit der letzten Version.
Kontextsensitive Hilfe wird ebenfalls auf diesem Weg geboten. Klicken Sie dazu mit derrechten Maustaste auf einen beliebigen Baumknoten, ein Attribut oder eine Option undwhlen Sie Was ist das? im Popupmen. Das alles funktioniert nur, wenn der Browserdes Systems fr QF-Test zugnglich ist.
Das Handbuch besteht aus drei Teilen, die aus technischen Grnden in einem Doku-ment zusammengefasst sind (einfachere Querverweise und Indexgenerierung). Mgli-cherweise werden diese in spteren Versionen getrennt. Bei diesen Teilen handelt essich um:
Anwenderhandbuch(2)
Dieser Teil erklrt, wie QF-Test installiert und gestartet wird und wie dieBenutzeroberflche zu bedienen ist. Er zeigt, wie Tests erstellt und aufgebautwerden und widmet sich dann fortgeschrittenen Themen. Um doppelteErklrungen zu vermeiden bezieht sich das Anwenderhandbuch an vielen Stellenauf den Referenzteil, der den jeweiligen Punkt ausfhrlich erlutert. Es wirddringend empfohlen, diesen Verweisen zu folgen.
Referenzteil(336)
Dies ist eine vollstndige Referenz, die smtliche einstellbaren Optionen, alleBestandteile einer Testsuite und vieles weitere abdeckt. Wenn Sie spezielleInformation zu einem Thema suchen, ist dies der richtige Ort zum Nachschlagen.Die kontextsensitive Hilfe fhrt ebenfalls zum Referenzteil.
-
iii
Technische Referenz(706)
Die Technische Referenz enthlt Hintergrundinformationen ber dieFunktionsweise von QF-Test sowie eine umfassende API Referenz der SkriptSchnittstelle. Fr Einsteiger ist dieser Teil weniger geeignet, fr fortgeschritteneund technisch interessierte Anwender dagegen eine wertvolle Informationsquelle.
Ein learning-by-doing Tutorial ist ebenfalls in HTML und PDF Versionen verfgbar.Die HTML Version, die auch direkt mittels HilfeTutorial (HTML)... aufgerufen werdenkann, befindet sich unter qftest-4.2.0/doc/tutorial/de/tutorial.html. DiePDF Version in qftest-4.2.0/doc/tutorial_de.pdf ist ber den MeneintragHilfeTutorial (PDF)... ebenfalls direkt zugnglich.
Das Handbuch folgt folgenden Konventionen:
MenUntermen stellt ein Men oder einen Meneintrag dar.
Modifier-Taste steht fr einen Tastendruck. Mgliche Modifier sind Shift (Hoch-stellen),
Strg , Alt oder eine Kombination daraus. Der Schrifttyp Courier wird fr Datei- und Verzeichnisnamen, Programmein- und
-ausgaben verwendet.
Um die Vorzge von Querverweisen wenigstens ansatzweise zu Papier zu brin-gen, werden Verweise(ii) in der PDF Version unterstrichen und geben die Seiten-zahl des Ziels klein und in Klammern an.
-
iv
Inhaltsverzeichnis
I Anwenderhandbuch 1
1 Installation und Start 2
1.1 Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Primre Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Untersttzte Technologieversionen . . . . . . . . . . . . . . . . . 3
1.2 Windows Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Installation mit dem Windows Setup-ProgrammQF-Test-4.2.0.exe . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Auspacken des selbstextrahierenden ArchivsQF-Test-4.2.0-sfx.exe . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Abschluss der Installation und Java Konfiguration . . . . . . . . . 6
1.3 Linux/Unix Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 macOS Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Lizenzdatei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 Konfigurationsdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7 Aufruf von QF-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 Firewall Sicherheitswarnung . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Bedienung von QF-Test 13
2.1 Die Testsuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Bearbeiten einer Testsuite . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Navigation im Baum . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Einfgemarkierung . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Knoten verschieben . . . . . . . . . . . . . . . . . . . . . . . . . 17
-
INHALTSVERZEICHNIS v
2.2.4 Knoten konvertieren . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.5 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.6 Packen und Entpacken . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.7 Sortieren von Knoten . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Erweiterte Bearbeitungsmglichkeiten . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Suchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.3 Kompliziertere Such- und Ersetzungsvorgnge . . . . . . . . . . 29
2.3.4 Mehrere Ansichten . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Schnellstart Ihrer Anwendung 30
3.1 Schnellstart-Assistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Erzeugung der Startsequenz . . . . . . . . . . . . . . . . . . . . 31
3.1.2 Ausfhren der Startsequenz . . . . . . . . . . . . . . . . . . . . . 32
3.1.3 Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Programmausgaben und das Clients Men . . . . . . . . . . . . . . . . . 34
3.3 Indirektes Starten eines zweiten SUT als Kindprozess eines bereits ver-bundenen SUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4 Aufnahme und Wiedergabe 37
4.1 Aufnahme von Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Abspielen von Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Aufnehmen von Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Komponenten aufnehmen . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5 HTTP Requests aufnehmen (GET/POST) . . . . . . . . . . . . . . . . . 43
5 Komponenten 44
5.1 Hierarchie der Komponenten eines GUI . . . . . . . . . . . . . . . . . . . 44
5.2 Komponenten in QF-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 QF-Test IDs von Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Klassen von Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.4.1 Generische Klassen . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.4.2 Klassenaufbau in Webanwendungen . . . . . . . . . . . . . . . . 50
-
INHALTSVERZEICHNIS vi
5.4.3 Einstellungen zur Aufnahme von Klassen . . . . . . . . . . . . . 50
5.5 Untersuchung von Komponenten . . . . . . . . . . . . . . . . . . . . . . 51
5.6 Warum Namen so wichtig sind . . . . . . . . . . . . . . . . . . . . . . . . 51
5.7 Erwgungen zur Vergabe von Namen . . . . . . . . . . . . . . . . . . . . 53
5.8 Komponenten aktualisieren . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.9 Lsung von Problemen bei der Wiedererkennung . . . . . . . . . . . . . 57
5.10 Zugriff auf unsichtbare Felder einer Webseite . . . . . . . . . . . . . . . 59
6 Unterelemente komplexer GUI Komponenten 61
6.1 Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.2 Die QF-Test ID eines Elements . . . . . . . . . . . . . . . . . . . . . . . . 63
6.3 Besondere QF-Test ID-Syntax fr direkten Zugriff auf Elemente . . . . . . 63
6.3.1 Zugriff auf einfache Unterelemente . . . . . . . . . . . . . . . . . 63
6.3.2 Mehrstufige Unterelemente und deren Adressierung . . . . . . . 64
6.4 Element-Aufnahme fr Web-Tabellen aktivieren . . . . . . . . . . . . . . 67
7 Variablen 68
7.1 Ermittlung des Wertes einer Variablen . . . . . . . . . . . . . . . . . . . . 68
7.2 Definition von Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.3 Variablen Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.4 Daten aus der GUI auslesen . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.5 Externe Daten und spezielle Gruppen . . . . . . . . . . . . . . . . . . . . 73
7.6 Berechnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.7 Immediate und Lazy Binding . . . . . . . . . . . . . . . . . . . . . . . . . 79
8 Problemanalyse und Debugging 81
8.1 Das Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.1.1 Fehlerzustnde . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.1.2 Navigation im Protokoll . . . . . . . . . . . . . . . . . . . . . . . . 84
8.1.3 Werte von fehlgeschlagenen Checks als gltig akzeptieren . . . 85
8.1.4 Geteilte Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.1.5 Protokoll Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.1.6 Eine Testsuite aus dem Protokoll erstellen . . . . . . . . . . . . . 87
-
INHALTSVERZEICHNIS vii
8.1.7 Protokolle zusammenfhren . . . . . . . . . . . . . . . . . . . . . 88
8.2 Der Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8.2.1 Aktivieren des Debuggers . . . . . . . . . . . . . . . . . . . . . . 89
8.2.2 Das Debuggerfenster . . . . . . . . . . . . . . . . . . . . . . . . 90
8.2.3 Debugger Kommandos . . . . . . . . . . . . . . . . . . . . . . . 91
8.2.4 Breakpoints setzen und lschen . . . . . . . . . . . . . . . . . . 93
9 Aufbau und Organisation einer Testsuite 94
9.1 Struktur der Testsuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2 Testfallsatz und Testfall Knoten . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2.1 Verwaltung von Tests mit Hilfe von Testfallsatz und Testfall Knoten 96
9.2.2 Konzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2.3 Variablen und besondere Attribute . . . . . . . . . . . . . . . . . 97
9.3 Sequenz und Testschritt Knoten . . . . . . . . . . . . . . . . . . . . . . . . 98
9.4 Vorbereitung und Aufrumen Knoten . . . . . . . . . . . . . . . . . . . . . 98
9.5 Prozeduren und Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
9.5.1 Lokale Prozeduren und Packages . . . . . . . . . . . . . . . . . . . 102
9.5.2 Relative Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . 102
9.5.3 Einfgen von Prozeduraufruf Knoten . . . . . . . . . . . . . . . . . 103
9.5.4 Parametrisieren von Knoten . . . . . . . . . . . . . . . . . . . . . 103
9.5.5 Konvertieren von Sequenzen und Testschritte in Prozeduren . . . . . 103
9.6 Abhngigkeit Knoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.6.1 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.6.2 Verwendung von Abhngigkeiten . . . . . . . . . . . . . . . . . . . 105
9.6.3 Abhngigkeiten - Ausfhrung und Stapel von Abhngigkeiten . . . 106
9.6.4 Charakteristische Variablen . . . . . . . . . . . . . . . . . . . . . . 110
9.6.5 Aufrumen erzwingen . . . . . . . . . . . . . . . . . . . . . . . . . 112
9.6.6 Abhngigkeiten abbauen . . . . . . . . . . . . . . . . . . . . . . . 113
9.6.7 Eskalation von Fehlern . . . . . . . . . . . . . . . . . . . . . . . . 113
9.6.8 Fehlerbehandlung und Reaktion auf unerwartetes Verhalten . . 116
9.6.9 Namensrume fr Abhngigkeiten . . . . . . . . . . . . . . . . . 117
9.7 Dokumentieren von Testsuiten . . . . . . . . . . . . . . . . . . . . . . . . 120
-
INHALTSVERZEICHNIS viii
10 Projekte 122
11 Standardbibliothek 125
12 Skripting 127
12.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
12.2 Der Runcontext rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12.2.1 Meldungen ausgeben . . . . . . . . . . . . . . . . . . . . . . . . 130
12.2.2 Checks durchfhren . . . . . . . . . . . . . . . . . . . . . . . . . 131
12.2.3 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
12.2.4 Zugriff auf die GUI Komponenten des SUT . . . . . . . . . . . . 135
12.2.5 Aufruf von Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . 136
12.2.6 Setzen von Optionen . . . . . . . . . . . . . . . . . . . . . . . . . 137
12.2.7 Komponenten bei Bedarf setzen . . . . . . . . . . . . . . . . . . 137
12.3 Jython Skripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
12.3.1 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
12.3.2 Post-mortem Fehleranalyse von Jython Skripten . . . . . . . . . 140
12.3.3 Boolean Typ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
12.3.4 Zeichenkodierung . . . . . . . . . . . . . . . . . . . . . . . . . . 140
12.3.5 Den Namen einer Java Klasse ermitteln . . . . . . . . . . . . . . 141
12.3.6 Ein komplexes Beispiel . . . . . . . . . . . . . . . . . . . . . . . 142
12.4 Groovy Skripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
12.4.1 Groovy Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
12.5 JavaScript Skripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
12.5.1 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
12.5.2 Ausgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
12.5.3 Ausfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
13 Unit Tests 152
13.1 Java-Klassen als Quelle fr Unit Tests . . . . . . . . . . . . . . . . . . . . 152
13.2 Grundlagen der Test-Skripte . . . . . . . . . . . . . . . . . . . . . . . . . 154
13.2.1 Groovy Unit Tests . . . . . . . . . . . . . . . . . . . . . . . . . . 155
13.2.2 Jython Unit Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
-
INHALTSVERZEICHNIS ix
13.2.3 JavaScript Unit Test . . . . . . . . . . . . . . . . . . . . . . . . . 156
13.3 Injections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
13.3.1 Komponenten in den Unit Tests verwenden . . . . . . . . . . . . 157
13.3.2 WebDriver-Injections . . . . . . . . . . . . . . . . . . . . . . . . . 159
13.4 Unit Tests im Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
14 Testen von Webseiten 162
14.1 Testen mit Hilfe des QF-Driver Verbindungsmodus . . . . . . . . . . . . . 162
14.2 Testen mit Hilfe der WebDriver Anbindung . . . . . . . . . . . . . . . . . 163
14.2.1 WebDriver allgemein . . . . . . . . . . . . . . . . . . . . . . . . . 163
14.2.2 WebDriver mit Microsoft Edge . . . . . . . . . . . . . . . . . . . . 164
14.2.3 WebDriver mit Safari . . . . . . . . . . . . . . . . . . . . . . . . . 165
14.2.4 Bekannte Einschrnkungen des WebDriver Modus . . . . . . . . 165
15 Datengetriebenes Testen 167
15.1 Beispiele fr Datentreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
15.2 Anwendung von Datentreibern . . . . . . . . . . . . . . . . . . . . . . . . . 172
15.3 Beispiele fr Datentreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
15.4 Fortgeschrittene Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . 173
16 Reports und Testdokumentation 176
16.1 Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
16.1.1 Reportkonzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
16.1.2 Inhalt von Reports . . . . . . . . . . . . . . . . . . . . . . . . . . 179
16.1.3 Reports erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
16.2 Testdoc Dokumentation fr Testfallstze und Testflle . . . . . . . . . . . . 181
16.3 Pkgdoc Dokumentation fr Packages, Prozeduren und Abhngigkeiten . . . 183
17 Testausfhrung 186
17.1 Testausfhrung im Batchmodus . . . . . . . . . . . . . . . . . . . . . . . 186
17.1.1 Verwenden der Kommandozeile . . . . . . . . . . . . . . . . . . . 187
17.1.2 Windows Befehlsskript . . . . . . . . . . . . . . . . . . . . . . . . 189
17.1.3 Groovy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
-
INHALTSVERZEICHNIS x
17.2 Testausfhrung im Daemonmodus . . . . . . . . . . . . . . . . . . . . . . 192
17.2.1 Starten des Daemons . . . . . . . . . . . . . . . . . . . . . . . . 192
17.2.2 Steuern des Daemons ber die QF-Test Kommandozeile . . . . 193
17.2.3 Steuern des Daemons ber die Daemon API . . . . . . . . . . . 194
17.3 Erneute Ausfhrung von Knoten (Rerun) . . . . . . . . . . . . . . . . . . 198
17.3.1 Erneute Ausfhrung aus dem Protokoll . . . . . . . . . . . . . . . 198
17.3.2 Fehlerhafte Knoten sofort wiederholen . . . . . . . . . . . . . . . 201
18 Verteilte Entwicklung von Tests 204
18.1 Der Aufruf einer Prozedur in einer anderen Testsuite . . . . . . . . . . . . 205
18.2 Die Verwaltung von Komponenten . . . . . . . . . . . . . . . . . . . . . . . 206
18.3 Verschmelzen von Testsuiten . . . . . . . . . . . . . . . . . . . . . . . . . 207
18.3.1 Importieren von Komponenten . . . . . . . . . . . . . . . . . . . 207
18.3.2 Importieren von Prozeduren und Testfllen . . . . . . . . . . . . 208
18.4 Verteilte Entwicklung von Tests . . . . . . . . . . . . . . . . . . . . . . . . 208
18.5 Statische Validierung von Testsuiten . . . . . . . . . . . . . . . . . . . . . 210
18.5.1 Ungltige Referenzen vermeiden . . . . . . . . . . . . . . . . . . 210
18.5.2 Ungenutzte Prozeduren finden . . . . . . . . . . . . . . . . . . . 213
19 Automatisierte Erstellung von Basisprozeduren 214
19.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
19.2 Die Verwendung vom Procedure Builder . . . . . . . . . . . . . . . . . . 215
19.3 Konfiguration des Procedure Builder . . . . . . . . . . . . . . . . . . . . . 216
19.3.1 Die Procedure Builder Definitionsdatei . . . . . . . . . . . . . . . 217
20 Anbindung an Testmanagementtools 219
20.1 HP ALM - Quality Center . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
20.1.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
20.1.2 Schritt fr Schritt Anleitung . . . . . . . . . . . . . . . . . . . . . 221
20.1.3 Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
20.2 Imbus TestBench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
20.2.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
20.2.2 Generieren von QF-Test Vorlage-Testsuiten aus den Interaktionen233
-
INHALTSVERZEICHNIS xi
20.2.3 Importieren der Resultate . . . . . . . . . . . . . . . . . . . . . . 233
20.3 QMetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
20.3.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
20.3.2 Demokonfiguration Beispiel . . . . . . . . . . . . . . . . . . . . . 236
20.4 Klaros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
20.4.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
20.4.2 Importieren von QF-Test Ergebnissen in Klaros . . . . . . . . . . 237
20.5 SQS-TEST/Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
20.5.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
20.5.2 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
20.6 TestLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
20.6.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
20.6.2 Generieren von QF-Test Vorlagen-Testsuiten aus den Testfllen . 239
20.6.3 Ausfhrung der Testflle . . . . . . . . . . . . . . . . . . . . . . . 241
20.6.4 Importieren der QF-Test Resultate nach TestLink . . . . . . . . . 241
21 Integration mit Entwickler-Tools 244
21.1 Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
21.1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
21.1.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
21.2 Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
21.3 Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
21.4 Jenkins/Hudson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
21.4.1 Jenkins installieren und starten . . . . . . . . . . . . . . . . . . . 251
21.4.2 Voraussetzungen fr GUI-Tests . . . . . . . . . . . . . . . . . . . 252
21.4.3 Installation des QF-Test Plugins . . . . . . . . . . . . . . . . . . . 253
21.4.4 Konfiguration eines Jobs fr QF-Test . . . . . . . . . . . . . . . . 254
22 Schlsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test 258
22.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
22.2 Einfaches Keyword-Driven Testing mit QF-Test . . . . . . . . . . . . . . . 261
22.2.1 Fachliche Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . 261
-
INHALTSVERZEICHNIS xii
22.2.2 Atomare Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . 265
22.3 Keyword-Driven Testing mit dynamischen/generischen Komponenten . . 266
22.4 Behavior-Driven Testing (BDT) . . . . . . . . . . . . . . . . . . . . . . . . 270
22.4.1 Behavior-Driven Testing (BDT) mit technischer Beschreibung . . 270
22.4.2 Behavior-Driven Testing (BDT) mit fachlicher Beschreibung . . . 273
22.5 Szenariodateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
22.6 Eigene Testbeschreibungen . . . . . . . . . . . . . . . . . . . . . . . . . 277
22.7 Anpassung an Ihre Software . . . . . . . . . . . . . . . . . . . . . . . . . 278
23 Durchfhrung von Lasttests mit QF-Test 280
23.1 Hintergrund und Vergleich mit anderen Techniken . . . . . . . . . . . . . 280
23.2 Lasttests mit QF-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
23.2.1 Bereitstellung der Testsysteme . . . . . . . . . . . . . . . . . . . 286
23.2.2 Konzeption des Testlaufes . . . . . . . . . . . . . . . . . . . . . . 286
23.2.3 Vorbereiten der Testsysteme fr den Testlauf . . . . . . . . . . . 287
23.2.4 Testausfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
23.2.5 Testauswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
23.3 Spezielles zur Testausfhrung . . . . . . . . . . . . . . . . . . . . . . . . 289
23.3.1 Synchronisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
23.3.2 Messen von End-to-End Zeiten . . . . . . . . . . . . . . . . . . . 290
23.4 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
24 Ausfhrung manueller Tests mit QF-Test 293
24.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
24.2 Schritt-fr-Schritt Anleitung . . . . . . . . . . . . . . . . . . . . . . . . . . 294
24.3 Aufbau der Excel Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
24.4 Die Ausfhrungstestsuite . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
24.5 Die mglichen Zustnde . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
II Best Practices 298
25 Einfhrung 299
-
INHALTSVERZEICHNIS xiii
26 Wie beginnt man in einem Testprojekt? 300
26.1 Infrastruktur und Testumgebung . . . . . . . . . . . . . . . . . . . . . . . 300
26.2 Speicherorte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
26.2.1 Netzwerkinstallation . . . . . . . . . . . . . . . . . . . . . . . . . 303
26.3 Wiedererkennung von Komponenten . . . . . . . . . . . . . . . . . . . . 304
27 Organisation von Testsuiten 306
27.1 Organisation von Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
27.2 Modularisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
27.3 Parametrisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
27.4 Arbeiten in mehreren Testsuiten . . . . . . . . . . . . . . . . . . . . . . . 308
27.5 Rollen und Zustndigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . 310
27.6 Komponenten in unterschiedlichen Ebenen verwalten . . . . . . . . . . . 312
27.7 Umgekehrte Includes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
28 Effiziente Arbeitstechniken 313
28.1 Arbeiten mit QF-Test Projekten . . . . . . . . . . . . . . . . . . . . . . . . 313
28.2 Erstellung von Testsuiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
28.3 Die Standardbibliothek qfs.qft . . . . . . . . . . . . . . . . . . . . . . . . 314
28.4 Ablage von Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . 314
28.5 Erweitern von Testsuiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
28.6 Arbeiten mit dem Skripteditor . . . . . . . . . . . . . . . . . . . . . . . . . 316
29 Wie erreicht man eine robuste Komponentenerkennung? 317
29.1 Benutzen der Standardeinstellungen . . . . . . . . . . . . . . . . . . . . 317
29.2 Die Name bertrifft alles Einstellung benutzen . . . . . . . . . . . . . . 319
29.3 Verwendung von regulren Ausdrcken oder Arbeiten mit dynamischenFenstertiteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
29.4 Beeinflussen von Namen mittels NameResolver . . . . . . . . . . . . . . 323
29.5 Klassen von Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . 323
29.5.1 Umgehen von Klassennderungen durch Nur Systemklassenaufzeichnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
-
INHALTSVERZEICHNIS xiv
29.6 Nicht notwendige Aufzeichnungen ersparen oder generische Kompo-nenten einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
29.7 Optionen zur Laufzeit verndern . . . . . . . . . . . . . . . . . . . . . . 327
30 Aufsetzen von Testsystemen 328
30.1 Einrichten von Prozessen und Services via Aufgabenplaner . . . . . . . 328
30.2 Fernzugriff auf Windowsrechner . . . . . . . . . . . . . . . . . . . . . . . 329
30.3 Automatische Anmeldung auf Windowsrechnern . . . . . . . . . . . . . . 330
30.4 Testausfhrung unter Unix . . . . . . . . . . . . . . . . . . . . . . . . . . 331
31 Testausfhrung 332
31.1 Abhngigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
31.2 Wartezeiten und Verzgerungen . . . . . . . . . . . . . . . . . . . . . . . 333
31.3 Was soll man tun, wenn das Protokoll einen Fehler enthlt? . . . . . . . 333
III Referenzteil 335
32 Einstellungen 336
32.1 Allgemeine Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
32.1.1 Editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
32.1.2 Projekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
32.1.3 Lesezeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
32.1.4 Externe Programme . . . . . . . . . . . . . . . . . . . . . . . . . 346
32.1.5 Sicherungskopien . . . . . . . . . . . . . . . . . . . . . . . . . . 349
32.1.6 Bibliothekspfad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
32.1.7 Lizenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
32.2 Aufnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
32.2.1 Folgende Events aufnehmen . . . . . . . . . . . . . . . . . . . . 355
32.2.2 Eventsequenzen packen . . . . . . . . . . . . . . . . . . . . . . . 357
32.2.3 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
32.2.4 Unterelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
32.2.5 Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
32.3 Wiedergabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
-
INHALTSVERZEICHNIS xv
32.3.1 Client Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
32.3.2 Terminal Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . 379
32.3.3 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
32.3.4 Wiedererkennung . . . . . . . . . . . . . . . . . . . . . . . . . . 387
32.3.5 Verzgerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
32.3.6 Automatische Timeouts . . . . . . . . . . . . . . . . . . . . . . . 394
32.3.7 Rckwrtskompatibilitt . . . . . . . . . . . . . . . . . . . . . . . 398
32.4 Web Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
32.4.1 HTTP Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
32.4.2 Rckwrtskompatibilitt . . . . . . . . . . . . . . . . . . . . . . . 405
32.5 Debugger Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
32.6 Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
32.6.1 Allgemeine Protokoll Optionen . . . . . . . . . . . . . . . . . . . 408
32.6.2 Optionen fr den Inhalt von Protokollen . . . . . . . . . . . . . . 413
32.6.3 Optionen fr Verweise zwischen Verzeichnissen mit Testsuiten . 417
32.7 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
33 Bestandteile einer Testsuite 420
33.1 Die Testsuite und ihre Struktur . . . . . . . . . . . . . . . . . . . . . . . . 420
33.1.1 Testsuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
33.2 Test und Sequenz Knoten . . . . . . . . . . . . . . . . . . . . . . . . . . 423
33.2.1 Testfall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
33.2.2 Testfallsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
33.2.3 Testaufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
33.2.4 Sequenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
33.2.5 Testschritt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
33.2.6 Sequenz mit Zeitlimit . . . . . . . . . . . . . . . . . . . . . . . . . 447
33.2.7 Extrasequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
33.3 Abhngigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
33.3.1 Abhngigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
33.3.2 Bezug auf Abhngigkeit . . . . . . . . . . . . . . . . . . . . . . . . 455
33.3.3 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
-
INHALTSVERZEICHNIS xvi
33.3.4 Aufrumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
33.3.5 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
33.4 Datentreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
33.4.1 Datentreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
33.4.2 Datentabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
33.4.3 Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
33.4.4 Excel Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
33.4.5 CSV Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
33.4.6 Datenschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
33.5 Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
33.5.1 Prozedur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
33.5.2 Prozeduraufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
33.5.3 Return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
33.5.4 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
33.5.5 Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
33.6 Ablaufsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
33.6.1 Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
33.6.2 While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
33.6.3 Break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
33.6.4 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
33.6.5 Elseif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
33.6.6 Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
33.6.7 Try . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
33.6.8 Catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
33.6.9 Finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
33.6.10 Throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
33.6.11 Rethrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
33.6.12 Server Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
33.6.13 SUT Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
33.7 Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
33.7.1 Java SUT Client starten . . . . . . . . . . . . . . . . . . . . . . . . 537
-
INHALTSVERZEICHNIS xvii
33.7.2 SUT Client starten . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
33.7.3 Programm starten . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
33.7.4 Web-Engine starten . . . . . . . . . . . . . . . . . . . . . . . . . . 547
33.7.5 Browser-Fenster ffnen . . . . . . . . . . . . . . . . . . . . . . . . 551
33.7.6 Shellkommando ausfhren . . . . . . . . . . . . . . . . . . . . . . . 554
33.7.7 PDF Client starten . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
33.7.8 Warten auf Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
33.7.9 Programm beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
33.7.10 Warten auf Programmende . . . . . . . . . . . . . . . . . . . . . . . 564
33.8 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
33.8.1 Mausevent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
33.8.2 Tastaturevent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
33.8.3 Texteingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
33.8.4 Fensterevent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
33.8.5 Komponentenevent . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
33.8.6 Auswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
33.8.7 Dateiauswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
33.9 Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
33.9.1 Check Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
33.9.2 Check Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
33.9.3 Check Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
33.9.4 Check selektierbare Elemente . . . . . . . . . . . . . . . . . . . . . 608
33.9.5 Check Abbild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
33.9.6 Check Geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
33.10 Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
33.10.1 Text auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
33.10.2 Index auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
33.10.3 Geometrie auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
33.11 Verschiedenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
33.11.1 Variable setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
33.11.2 Warten auf Komponente . . . . . . . . . . . . . . . . . . . . . . . . 637
-
INHALTSVERZEICHNIS xviii
33.11.3 Warten auf Laden des Dokuments . . . . . . . . . . . . . . . . . . . 641
33.11.4 Warten auf Ende des Downloads . . . . . . . . . . . . . . . . . . . . 645
33.11.5 Ressourcen laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
33.11.6 Properties laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
33.11.7 Unit Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
33.12 HTTP Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
33.12.1 Server HTTP Request . . . . . . . . . . . . . . . . . . . . . . . . . 661
33.12.2 Browser HTTP Request . . . . . . . . . . . . . . . . . . . . . . . . 665
33.13 Fenster, Komponenten und Elemente . . . . . . . . . . . . . . . . . . . . 668
33.13.1 Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
33.13.2 Webseite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
33.13.3 Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
33.13.4 Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
33.13.5 Fenstergruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
33.13.6 Komponentengruppe . . . . . . . . . . . . . . . . . . . . . . . . . . 689
33.13.7 Fenster und Komponenten . . . . . . . . . . . . . . . . . . . . . . . 690
33.14 Historische Knoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
33.14.1 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
34 Exceptions 697
IV Technische Referenz 705
35 Kommandozeilenargumente und Rckgabewerte 706
35.1 Aufrufsyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
35.2 Kommandozeilenargumente . . . . . . . . . . . . . . . . . . . . . . . . . 711
35.2.1 Argumente fr das Startskript . . . . . . . . . . . . . . . . . . . . 711
35.2.2 Argumente fr die Java VM . . . . . . . . . . . . . . . . . . . . . 712
35.2.3 Argumente fr QF-Test . . . . . . . . . . . . . . . . . . . . . . . . 712
35.2.4 Platzhalter im Dateinamen fr Protokoll und Report . . . . . . . . 731
35.3 Rckgabewerte von QF-Test . . . . . . . . . . . . . . . . . . . . . . . . . 732
-
INHALTSVERZEICHNIS xix
36 GUI Engines 734
37 Starten einer Applikation aus QF-Test 736
37.1 Verschiedene Methoden zum Starten des SUT . . . . . . . . . . . . . . . 736
37.1.1 Starten des SUT aus einem Skript oder ausfhrbaren Programm 737
37.1.2 Starten des SUT mittels Java WebStart . . . . . . . . . . . . . . 738
37.1.3 Starten des SUT als Applet in einem Web Browser . . . . . . . . 739
37.1.4 Starten des SUT mittels java -jar . . . . . . . . 742
37.1.5 Starten des SUT mittels java -classpath . . . . . . . . . . . . . . . . . . . . . . . . . . 744
37.1.6 Starten einer Webanwendung im Browser . . . . . . . . . . . . 745
37.1.7 ffnen eines PDF Dokuments . . . . . . . . . . . . . . . . . . . . 747
38 JDK und SWT Instrumentierung 748
38.1 Verbindung mit einem JDK . . . . . . . . . . . . . . . . . . . . . . . . . . 748
38.2 Details zur JDK Instrumentierung . . . . . . . . . . . . . . . . . . . . . . 751
38.2.1 nderungen am JDK . . . . . . . . . . . . . . . . . . . . . . . . . 751
38.2.2 Ergebnis der Instrumentierung . . . . . . . . . . . . . . . . . . . 752
38.3 SWT Instrumentierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
38.3.1 Vorbereitung einer manuellen SWT Instrumentierung . . . . . . . 753
38.3.2 Manuelle SWT Instrumentierung fr Eclipse basierte Anwendun-gen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
38.3.3 Manuelle Instrumentierung fr eigenstndige SWT Anwendungen 754
39 Technische Details zu verschiedenen Themen 755
39.1 Drag&Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
39.2 Wiedererkennung von Komponenten . . . . . . . . . . . . . . . . . . . . 756
39.3 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
39.4 Regulre Ausdrcke - Regexps . . . . . . . . . . . . . . . . . . . . . . . 759
39.5 Zeilenumbrche in Unix und Windows . . . . . . . . . . . . . . . . . . . . 760
39.6 Schtzen von Sonderzeichen (quoting) . . . . . . . . . . . . . . . . . . . 761
39.7 Auflsen von Include Dateien . . . . . . . . . . . . . . . . . . . . . . . . 762
40 Skripting (Jython, Groovy und JavaScript) 765
-
INHALTSVERZEICHNIS xx
40.1 Pfad fr das Laden der Module . . . . . . . . . . . . . . . . . . . . . . . 765
40.2 Das Plugin Verzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
40.3 Der Package Cache (Jython) . . . . . . . . . . . . . . . . . . . . . . . . . 766
40.4 Initialisierung (Jython) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
40.5 Die Namespace Umgebung fr Skript Knoten (Jython) . . . . . . . . . . 767
40.6 Das API des Runcontexts . . . . . . . . . . . . . . . . . . . . . . . . . . 768
40.7 Das qf Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
40.8 Image API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
40.8.1 Die ImageWrapper Klasse . . . . . . . . . . . . . . . . . . . . . 791
40.9 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
40.10 Debuggen von Skripten (Jython) . . . . . . . . . . . . . . . . . . . . . . . 794
41 Besondere Features fr Webanwendungen 795
41.1 Pseudo DOM API fr Webanwendungen . . . . . . . . . . . . . . . . . . 795
41.1.1 Die abstrakte Klasse Node . . . . . . . . . . . . . . . . . . . . . 795
41.1.2 Die Klasse DocumentNode . . . . . . . . . . . . . . . . . . . . . 803
41.1.3 Die Klasse FrameNode . . . . . . . . . . . . . . . . . . . . . . . 805
41.1.4 Die Klasse DomNode . . . . . . . . . . . . . . . . . . . . . . . . . 805
41.1.5 Die Klasse DialogNode . . . . . . . . . . . . . . . . . . . . . . 808
41.2 WebDriverConnection SUT API . . . . . . . . . . . . . . . . . . . . . . . 808
41.2.1 Die WebDriverConnection Klasse . . . . . . . . . . . . . . . 809
41.3 Besondere Untersttzung fr verschiedene AJAX Toolkits . . . . . . . . . 811
41.3.1 Konzepte fr AJAX Resolver . . . . . . . . . . . . . . . . . . . . 812
41.3.2 Untersttzte AJAX Toolkits . . . . . . . . . . . . . . . . . . . . . 814
41.3.3 Eindeutige Bezeichner setzen . . . . . . . . . . . . . . . . . . . . 820
41.3.4 Verwendung lterer AJAX Resolver fr Ihr Projekt . . . . . . . . 822
41.4 QF-Test an Ihr AJAX Toolkit anpassen per CustomWebResolver . . . . . 827
41.4.1 Untersuchung einer Webseite . . . . . . . . . . . . . . . . . . . . 828
41.4.2 Beispiel fr den WebCarConfigurator . . . . . . . . . . . . . . . . 830
42 APIs fr Erweiterungen 844
42.1 Das resolvers Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
-
INHALTSVERZEICHNIS xxi
42.1.1 Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
42.1.2 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
42.1.3 addResolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
42.1.4 removeResolver . . . . . . . . . . . . . . . . . . . . . . . . . . 851
42.1.5 listNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
42.1.6 Das NameResolver Interface . . . . . . . . . . . . . . . . . . . 852
42.1.7 Das ClassNameResolver Interface . . . . . . . . . . . . . . . 854
42.1.8 Das GenericClassNameResolver Interface . . . . . . . . . . 856
42.1.9 Das FeatureResolver Interface . . . . . . . . . . . . . . . . . 856
42.1.10 Das ExtraFeatureResolver Interface . . . . . . . . . . . . . 857
42.1.11 Das ItemNameResolver Interface . . . . . . . . . . . . . . . . 862
42.1.12 Das ItemValueResolver Interface . . . . . . . . . . . . . . . 863
42.1.13 Das TreeTableResolver Interface . . . . . . . . . . . . . . . . 864
42.1.14 Das InterestingParentResolver Interface . . . . . . . . . 866
42.1.15 Das TooltipResolver Interface . . . . . . . . . . . . . . . . . 867
42.1.16 Das IdResolver Interface . . . . . . . . . . . . . . . . . . . . . 867
42.1.17 Das EnabledResolver Interface . . . . . . . . . . . . . . . . . 869
42.1.18 Das VisibilityResolver Interface . . . . . . . . . . . . . . 870
42.1.19 Das MainTextResolver Interface . . . . . . . . . . . . . . . . 871
42.1.20 Der BusyPaneResolver Interfaces . . . . . . . . . . . . . . . . 872
42.1.21 Der GlassPaneResolver Interfaces . . . . . . . . . . . . . . . 872
42.1.22 Das EventSynchronizer Interface . . . . . . . . . . . . . . . 873
42.1.23 Das BusyApplicationDetector Interface . . . . . . . . . . . 874
42.1.24Matcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
42.2 Das webResolvers-Modul . . . . . . . . . . . . . . . . . . . . . . . . . 876
42.2.1 Allgemeine Informationen . . . . . . . . . . . . . . . . . . . . . . 876
42.2.2 addResolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
42.2.3 removeResolver . . . . . . . . . . . . . . . . . . . . . . . . . . 878
42.2.4 listNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
42.2.5 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
42.3 Die ResolverRegistry . . . . . . . . . . . . . . . . . . . . . . . . . . 884
-
INHALTSVERZEICHNIS xxii
42.4 Implementierung eigener Unterelemente mit dem ItemResolver In-terface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
42.4.1 ItemResolver Konzepte . . . . . . . . . . . . . . . . . . . . . . 891
42.4.2 Das ItemResolver Interface . . . . . . . . . . . . . . . . . . . 892
42.4.3 Die Klasse SubItemIndex . . . . . . . . . . . . . . . . . . . . . 897
42.4.4 Die ItemRegistry . . . . . . . . . . . . . . . . . . . . . . . . . 898
42.4.5 Standard Reprsentation von Unterelementen . . . . . . . . . . 901
42.5 Implementierung eigener Checks mit dem Checker Interface . . . . . . 903
42.5.1 Das Checker Interface . . . . . . . . . . . . . . . . . . . . . . . 903
42.5.2 Die Pair Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
42.5.3 Das CheckType Interface und seine ImplementierungDefaultCheckType . . . . . . . . . . . . . . . . . . . . . . . . 906
42.5.4 Die Klasse CheckDataType . . . . . . . . . . . . . . . . . . . . 906
42.5.5 Die Klasse CheckData und ihre Unterklassen . . . . . . . . . . 907
42.5.6 Die CheckerRegistry . . . . . . . . . . . . . . . . . . . . . . . 909
42.5.7 Beispiel fr einen Checker . . . . . . . . . . . . . . . . . . . . . . 910
42.6 Das Eclipse Graphical Editing Framework (GEF) . . . . . . . . . . . . . 912
42.6.1 Aufnahme von GEF Elementen . . . . . . . . . . . . . . . . . . . 912
42.6.2 Implementierung eines ItemNameResolver2 fr GEF . . . . . . . 914
42.6.3 Implementierung eines ItemValueResolver2 fr GEF . . . . . . . 916
42.7 Listener fr den aktuellen Testlauf . . . . . . . . . . . . . . . . . . . . . . 917
42.7.1 Das TestRunListener Interface . . . . . . . . . . . . . . . . . 917
42.7.2 Die Klasse TestRunEvent . . . . . . . . . . . . . . . . . . . . . 918
42.7.3 Die Klasse TestSuiteNode . . . . . . . . . . . . . . . . . . . . 920
42.8 ResetListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
42.9 DOM Prozessoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
42.9.1 Das DOMProcessor Interface . . . . . . . . . . . . . . . . . . . 923
42.9.2 Die DOMProcessorRegistry . . . . . . . . . . . . . . . . . . . 924
42.9.3 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . 925
42.10 Image API Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . 925
42.10.1 Die ImageRep Klasse . . . . . . . . . . . . . . . . . . . . . . . . 926
42.10.2 Das ImageComparator Interface . . . . . . . . . . . . . . . . . 928
-
INHALTSVERZEICHNIS xxiii
43 Daemon Modus 930
43.1 Daemon Konzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
43.2 Daemon API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
43.2.1 Der DaemonLocator . . . . . . . . . . . . . . . . . . . . . . . . 932
43.2.2 Der Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
43.2.3 Der TestRunDaemon . . . . . . . . . . . . . . . . . . . . . . . . 935
43.2.4 Der DaemonRunContext . . . . . . . . . . . . . . . . . . . . . . 938
43.2.5 Der DaemonTestRunListener . . . . . . . . . . . . . . . . . . 944
43.3 Absicherung des QF-Test Daemon . . . . . . . . . . . . . . . . . . . . . 945
43.3.1 Erstellen einer eigenen Keystore-Datei . . . . . . . . . . . . . . . 945
43.3.2 Festlegen der Keystore-Datei . . . . . . . . . . . . . . . . . . . . 946
43.3.3 Festlegen der Keystore-Datei auf der Client-Seite . . . . . . . . . 946
44 Die Procedure Builder Definitionsdatei 948
44.1 Platzhalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
44.1.1 Rckgriffswerte fr Platzhalter . . . . . . . . . . . . . . . . . . . 950
44.2 Spezielle Bedingungen fr die Definition von Packages und Prozeduren . 951
44.3 Auswertung der Komponentenhierarchie . . . . . . . . . . . . . . . . . . 951
44.4 Details zu @CONDITION . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
45 PDF 955
45.1 PDF Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
45.2 PDF Komponententypen . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
45.3 Check Knoten fr PDF-Komponenten . . . . . . . . . . . . . . . . . . . . 956
45.3.1 Check Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
45.3.2 Check Abbild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
45.3.3 Check Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
45.3.4 Check Font Gre . . . . . . . . . . . . . . . . . . . . . . . . . . 957
45.4 PDF Komponentenerkennung . . . . . . . . . . . . . . . . . . . . . . . . 957
45.5 PDF Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
45.5.1 Seite wechseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
45.5.2 PDF ffnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
-
INHALTSVERZEICHNIS xxiv
46 Der ManualStepDialog 960
46.1 Die ManualStepDialog API . . . . . . . . . . . . . . . . . . . . . . . . . . 960
47 Details zu Knotenkonvertierungen 962
47.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
47.2 Konvertierungen mit Typwechseln . . . . . . . . . . . . . . . . . . . . . . 962
47.3 Zustzliche Konvertierungen unter Extrasequenzen . . . . . . . . . . . . . 963
47.3.1 Konvertierungen ohne Seiteneffekte . . . . . . . . . . . . . . . . 963
47.3.2 Konvertierungen mit Seiteneffekten . . . . . . . . . . . . . . . . . 963
48 Details des Algorithmus zum Bildvergleich 965
48.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
48.2 Beschreibung der Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . 966
48.2.1 Klassischer Bildvergleich . . . . . . . . . . . . . . . . . . . . . . 966
48.2.2 Pixelbasierter Vergleich . . . . . . . . . . . . . . . . . . . . . . . 967
48.2.3 Pixelbasierte hnlichkeitsanalyse . . . . . . . . . . . . . . . . . . 968
48.2.4 Blockbildung mit Vergleich . . . . . . . . . . . . . . . . . . . . . . 970
48.2.5 Blockbildung mit hnlichkeitsanalyse . . . . . . . . . . . . . . . . 971
48.2.6 Hufigkeitsanalyse mittels Histogramm . . . . . . . . . . . . . . . 973
48.2.7 Bildanalyse mittels Diskreter Kosinustransformation . . . . . . . 975
48.2.8 Blockbildung zur Bildanalyse mittels Diskreter Kosinustransfor-mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
48.2.9 Bilinearer Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
48.3 Beschreibung der speziellen Funktionen . . . . . . . . . . . . . . . . . . 980
48.3.1 Bild-in-Bild Suche . . . . . . . . . . . . . . . . . . . . . . . . . . 980
49 Resultatslisten 983
49.1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
49.2 Spezielle Listenaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
49.2.1 Alle Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
49.2.2 Ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
49.2.3 Fehlerliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
49.3 Resultate exportieren und laden . . . . . . . . . . . . . . . . . . . . . . . 986
-
INHALTSVERZEICHNIS xxv
50 Generische Klassen 987
50.1 bersicht der generischen Klassen . . . . . . . . . . . . . . . . . . . . . 987
50.2 Mapping von komplexen Komponenten . . . . . . . . . . . . . . . . . . . 992
50.2.1 Mapping von ComboBoxen . . . . . . . . . . . . . . . . . . . . . 992
50.2.2 Mapping von Listen . . . . . . . . . . . . . . . . . . . . . . . . . 993
50.2.3 Mapping von TabPanel bzw. Accordions . . . . . . . . . . . . . . 994
50.2.4 Mapping von Tabellen . . . . . . . . . . . . . . . . . . . . . . . . 994
50.2.5 Mapping von Bumen . . . . . . . . . . . . . . . . . . . . . . . . 995
50.3 Eigenschaften von generischen Klassen . . . . . . . . . . . . . . . . . . 996
50.3.1 Accordion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
50.3.2 BusyPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
50.3.3 Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
50.3.4 Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
50.3.5 ColorPicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
50.3.6 CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
50.3.7 Closer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
50.3.8 Divider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
50.3.9 ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
50.3.10 Expander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
50.3.11 FileChooser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
50.3.12 Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
50.3.13 Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
50.3.14 Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
50.3.15 Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
50.3.16 Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
50.3.17 Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
50.3.18 List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
50.3.19 LoadingComponent . . . . . . . . . . . . . . . . . . . . . . . . . 1004
50.3.20 Maximizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004
50.3.21 Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
50.3.22 MenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
-
INHALTSVERZEICHNIS xxvi
50.3.23 Minimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
50.3.24 Popup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
50.3.25 RadioButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
50.3.26 Restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
50.3.27 Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
50.3.28 ProgressBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
50.3.29 ScrollBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
50.3.30 Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
50.3.31 Sizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
50.3.32 Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
50.3.33 Spacer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
50.3.34 Spinner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
50.3.35 SplitPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
50.3.36 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
50.3.37 TableCell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
50.3.38 TableFooter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
50.3.39 TableHeader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
50.3.40 TableHeaderCell . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
50.3.41 TabPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
50.3.42 TableRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
50.3.43 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
50.3.44 TextArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
50.3.45 TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
50.3.46 Thumb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
50.3.47 ToggleButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
50.3.48 ToolBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
50.3.49 ToolBarItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
50.3.50 ToolTip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
50.3.51 Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
50.3.52 TreeNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
50.3.53 TreeTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
-
INHALTSVERZEICHNIS xxvii
50.3.54 Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
51 Doctags 1021
51.1 Doctags fr Reporting und Dokumentation . . . . . . . . . . . . . . . . . 1021
51.1.1 @noreport Doctag . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
51.2 Doctags fr die Ausfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
51.3 Doctags fr das Editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
A FAQ - Hufig gestellte Fragen 1024
B Release Notes 1034
B.1 QF-Test Version 4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
B.1.1 Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
B.1.2 nderungen mit mglichen Auswirkungen auf die Testausfhrung 1035
B.1.3 Nicht mehr untersttzte Software . . . . . . . . . . . . . . . . . . 1036
B.1.4 Version 4.2.0 - 10. Januar 2018 . . . . . . . . . . . . . . . . . . . 1036
B.2 QF-Test Version 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
B.2.1 Version 4.1.6 - 27. Oktober 2017 . . . . . . . . . . . . . . . . . . 1040
B.2.2 Version 4.1.5 - 9. August 2017 . . . . . . . . . . . . . . . . . . . 1040
B.2.3 Version 4.1.4 - 1. Juni 2017 . . . . . . . . . . . . . . . . . . . . . 1041
B.2.4 Version 4.1.3 - 29. Mrz 2017 . . . . . . . . . . . . . . . . . . . . 1043
B.2.5 Version 4.1.2 - 13. Januar 2017 . . . . . . . . . . . . . . . . . . . 1046
B.2.6 Version 4.1.1 - 23. November 2016 . . . . . . . . . . . . . . . . . 1048
B.2.7 Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
B.2.8 nderungen mit mglichen Auswirkungen auf die Testausfhrung 1052
B.2.9 Nicht mehr untersttzte Software . . . . . . . . . . . . . . . . . . 1053
B.2.10 Version 4.1.0 - 6. Oktober 2016 . . . . . . . . . . . . . . . . . . . 1053
B.2.11 Version 4.1.0-rc2 - 2. September 2016 . . . . . . . . . . . . . . . 1054
B.2.12 Version 4.1.0-rc1 - 29. Juli 2016 . . . . . . . . . . . . . . . . . . . 1055
B.3 QF-Test Version 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
B.4 Version 4.0.11 - 5. April 2016 . . . . . . . . . . . . . . . . . . . . . . . . . 1059
B.5 Version 4.0.10 - 28. Januar 2016 . . . . . . . . . . . . . . . . . . . . . . . 1060
B.6 Version 4.0.9 - 17. Dezember 2015 . . . . . . . . . . . . . . . . . . . . . 1061
-
INHALTSVERZEICHNIS xxviii
B.7 Version 4.0.8 - 4. November 2015 . . . . . . . . . . . . . . . . . . . . . . 1062
B.8 Version 4.0.7 - 27. August 2015 . . . . . . . . . . . . . . . . . . . . . . . 1063
B.9 Version 4.0.6 - 16. Juli 2015 . . . . . . . . . . . . . . . . . . . . . . . . . 1064
B.10 Version 4.0.5 - 12. Mai 2015 . . . . . . . . . . . . . . . . . . . . . . . . . 1065
B.11 Version 4.0.4 - 5. Mrz 2015 . . . . . . . . . . . . . . . . . . . . . . . . . 1066
B.12 Version 4.0.3 - 29. Januar 2015 . . . . . . . . . . . . . . . . . . . . . . . 1068
B.13 Version 4.0.2-p2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
B.14 Version 4.0.2-p1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
B.15 Version 4.0.2 - 22. Oktober 2014 . . . . . . . . . . . . . . . . . . . . . . . 1072
B.16 Version 4.0.1 - 28. August 2014 . . . . . . . . . . . . . . . . . . . . . . . 1074
B.17 Wesentliche neue Features in Version 4 . . . . . . . . . . . . . . . . . . 1076
B.18 Version 4.0.0 - 31. Juli 2014 . . . . . . . . . . . . . . . . . . . . . . . . . 1078
B.19 Version 4.0.0-rc1 - 4. Juli 2014 . . . . . . . . . . . . . . . . . . . . . . . . 1080
B.20 Version 4.0.0-beta3 - 13. Mai 2014 . . . . . . . . . . . . . . . . . . . . . 1082
B.21 Version 4.0.0-beta2 - 11. April 2014 . . . . . . . . . . . . . . . . . . . . . 1083
B.22 Version 4.0.0-beta1 - 26. Mrz 2014 . . . . . . . . . . . . . . . . . . . . . 1084
B.23 QF-Test Version 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
B.24 Version 3.5.7 - 22. Juli 2014 . . . . . . . . . . . . . . . . . . . . . . . . . 1089
B.25 Version 3.5.6 - 29. April 2014 . . . . . . . . . . . . . . . . . . . . . . . . . 1090
B.26 Version 3.5.5 - 25. Februar 2014 . . . . . . . . . . . . . . . . . . . . . . . 1091
B.27 Version 3.5.4 - 11. Dezember 2013 . . . . . . . . . . . . . . . . . . . . . 1092
B.28 Version 3.5.3 - 11. Dezember 2013 - 17. September 2013 . . . . . . . . 1092
B.29 Version 3.5.2 - 2. Juli 2013 . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
B.30 Version 3.5.1 - 15. Mai 2013 . . . . . . . . . . . . . . . . . . . . . . . . . 1095
B.31 Wesentliche neue Features in Version 3.5 . . . . . . . . . . . . . . . . . 1096
B.32 Version 3.5.0 - 20. Mrz 2013 . . . . . . . . . . . . . . . . . . . . . . . . 1097
B.33 Version 3.5M3 - 8. Januar 2013 . . . . . . . . . . . . . . . . . . . . . . . 1100
B.34 Version 3.5M2 - 16. November 2012 . . . . . . . . . . . . . . . . . . . . . 1101
B.35 Version 3.5M1 - 4. Oktober 2012 . . . . . . . . . . . . . . . . . . . . . . . 1102
B.36 Version 3.4.14 - 20. Mrz 2013 . . . . . . . . . . . . . . . . . . . . . . . . 1107
B.37 Version 3.4.13 - 8. Januar 2013 . . . . . . . . . . . . . . . . . . . . . . . 1108
-
INHALTSVERZEICHNIS xxix
B.38 Version 3.4.12 - 16. November 2012 . . . . . . . . . . . . . . . . . . . . . 1108
B.39 Version 3.4.11 - 4. Oktober 2012 . . . . . . . . . . . . . . . . . . . . . . . 1109
B.40 Version 3.4.10 - 7. August 2012 . . . . . . . . . . . . . . . . . . . . . . . 1110
B.41 Version 3.4.9 - 29. Juni 2012 . . . . . . . . . . . . . . . . . . . . . . . . . 1111
B.42 Version 3.4.8 - 5. Juni 2012 . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
B.43 Version 3.4.7 - 24. April 2012 . . . . . . . . . . . . . . . . . . . . . . . . . 1112
B.44 Version 3.4.6 - 27. Mrz 2012 . . . . . . . . . . . . . . . . . . . . . . . . 1113
B.45 Version 3.4.5 - 12. Mrz 2012 . . . . . . . . . . . . . . . . . . . . . . . . 1113
B.46 Version 3.4.4 - 30. Januar 2012 . . . . . . . . . . . . . . . . . . . . . . . 1114
B.47 Version 3.4.3 - 27. Oktober 2011 . . . . . . . . . . . . . . . . . . . . . . . 1116
B.48 Version 3.4.2 - 15. September 2011 . . . . . . . . . . . . . . . . . . . . . 1117
B.49 Version 3.4.1 - 15. Juli 2011 . . . . . . . . . . . . . . . . . . . . . . . . . 1118
B.50 Wesentliche neue Features in Version 3.4 . . . . . . . . . . . . . . . . . 1120
B.51 Version 3.4.0 - 26. Mai 2011 . . . . . . . . . . . . . . . . . . . . . . . . . 1121
B.52 Version 3.4M2 - 10. Mrz 2011 . . . . . . . . . . . . . . . . . . . . . . . . 1124
B.53 Version 3.4M1 - 3. Februar 2011 . . . . . . . . . . . . . . . . . . . . . . . 1126
B.54 Version 3.3.0 - 30. November 2010 . . . . . . . . . . . . . . . . . . . . . 1128
B.55 Version 3.2.2 - 15. Juli 2010 . . . . . . . . . . . . . . . . . . . . . . . . . 1131
B.56 Version 3.2.1 - 11. Mai 2010 . . . . . . . . . . . . . . . . . . . . . . . . . 1132
B.57 Neue Features in QF-Test Version 3.2 . . . . . . . . . . . . . . . . . . . . 1133
B.58 Version 3.2.0 - 25. Mrz 2010 . . . . . . . . . . . . . . . . . . . . . . . . 1133
B.59 Version 3.1.4 - 9. Februar 2010 . . . . . . . . . . . . . . . . . . . . . . . 1135
B.60 Version 3.1.3 - 1. Dezember 2009 . . . . . . . . . . . . . . . . . . . . . . 1136
B.61 Version 3.1.2 - 15. Oktober 2009 . . . . . . . . . . . . . . . . . . . . . . . 1138
B.62 Version 3.1.1 - 28. Juli 2009 . . . . . . . . . . . . . . . . . . . . . . . . . 1140
B.63 Version 3.1.0 - 19. Mai 2009 . . . . . . . . . . . . . . . . . . . . . . . . . 1142
B.64 Version 3.0.2 - 27. Mrz 2009 . . . . . . . . . . . . . . . . . . . . . . . . 1145
B.65 Version 3.0.1 - 23. Januar 2009 . . . . . . . . . . . . . . . . . . . . . . . 1146
B.66 Neue Features in QF-Test Version 3 - 5. Dezember 2008 . . . . . . . . . 1147
C Tastaturkrzel 1149
C.1 Navigation und Editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
-
INHALTSVERZEICHNIS xxx
C.2 Aufnahme- und Wiedergabefunktionen . . . . . . . . . . . . . . . . . . . 1152
C.3 Tastaturhelfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
D Glossar 1154
E Benutzte Software 1155
-
xxxi
Abbildungsverzeichnis
2.1 Struktur einer Testsuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Einfgemarkierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Beispieltabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Der Dialog fr die einfache Suche . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Der fortgeschrittene Suchdialog . . . . . . . . . . . . . . . . . . . . . . . 23
2.6 Resultatsliste von Referenzen finden . . . . . . . . . . . . . . . . . . . . 25
2.7 Die inkrementelle Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8 Der Ersetzen Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.9 Der Rckfrage Dialog beim Ersetzen . . . . . . . . . . . . . . . . . . . . 28
3.1 Der Schnellstart-Assistent . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Startsequenz als Resultat des Schnellstart-Assistenten . . . . . . . . . . 32
3.3 Information zu genutzten GUI-Technologien . . . . . . . . . . . . . . . . 35
4.1 Gesperrter und aktivierbarer Aufnahmeknopf . . . . . . . . . . . . . . . . 37
5.1 Komponenten eines GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Komponentenhierarchie eines Swing SUT . . . . . . . . . . . . . . . . . 47
5.3 Pseudo Klassenhierarchie fr Elemente von Webanwendungen . . . . . 50
5.4 Komponenten aktualisieren Dialog . . . . . . . . . . . . . . . . . . . . . . 55
6.1 Ein Element fr ein Tabellenfeld . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2 Extra Feature Attribute fr die Komponentenerkennung anhand vonXPath oder CSS-Selektoren. . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.1 Direkte Zuordnungen und Defaultwerte . . . . . . . . . . . . . . . . . . . 69
-
ABBILDUNGSVERZEICHNIS xxxii
7.2 System Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.3 Variablen Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.4 Beispiel zu Variablenbindungen . . . . . . . . . . . . . . . . . . . . . . . 72
8.1 Ein einfacher Test und sein Protokoll . . . . . . . . . . . . . . . . . . . . 82
8.2 Fehlerzustnde im Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.1 Struktur einer Testsuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2 Teststruktur mit einfacher Vorbereitung und Aufrumen . . . . . . . . . . . 99
9.3 Ausfhrungsreihenfolge bei einfacher Vorbereitung und Aufrumen . . . 100
9.4 Packages und Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
9.5 Stapel von Abhngigkeiten A-B-C . . . . . . . . . . . . . . . . . . . . . . 108
9.6 Typischer Vorbereitung Knoten . . . . . . . . . . . . . . . . . . . . . . . . 109
9.7 Stapel von Abhngigkeiten A-B-D-E . . . . . . . . . . . . . . . . . . . . . 110
9.8 Charakteristische Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
9.9 Fehlereskalation in Abhngigkeiten . . . . . . . . . . . . . . . . . . . . . . 115
9.10 Typischer Aufrumen Knoten . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.11 Beispiel Testfallsatz fr Namensrume . . . . . . . . . . . . . . . . . . . . 118
9.12 Abhngigkeitenbehandlung fr Testfall Datenerfassung durch Anwender A118
9.13 Abhngigkeitenbehandlung fr Testfall Angebotserstellung durchAnwender C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
9.14 Abhngigkeitenbehandlung fr Testfall Angebot 1 im Archiv prfen . . . . 119
9.15 Abhngigkeitenbehandlung fr Testfall Datenerfassung durch Anwender B119
9.16 Abhngigkeitenbehandlung fr Testfall Angebotserstellung durchAnwender D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
9.17 Abhngigkeitenbehandlung fr Testfall Angebot 2 im Archiv prfen . . . . 120
10.1 Die Projektansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
11.1 Standardbibliothek qfs.qft . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.1 Detailansicht eines Server Skript Knotens mit Hilfefenster fr rc-Methoden 128
12.2 bersicht ber die verschiedenen Variablen in QF-Test . . . . . . . . . . 132
13.1 Unit Test-Knoten mit Java-Klassen . . . . . . . . . . . . . . . . . . . . . . 153
-
ABBILDUNGSVERZEICHNIS xxxiii
13.2 Beispiel eines Unit Test Knotens mit Injections . . . . . . . . . . . . . . . 158
13.3 Beispiel eines Unit Test-Knotens mit WebDriver-Injections . . . . . . . . 160
13.4 Unit Test Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
15.1 Ein einfacher datengetriebener Test . . . . . . . . . . . . . . . . . . . . . 168
15.2 Beispiel einer Datentabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
15.3 Protokoll eines datengetriebenen Tests . . . . . . . . . . . . . . . . . . . 170
15.4 Datengetriebene Tests mit verschachtelten Schleifen . . . . . . . . . . . 170
15.5 Zweites Beispiel einer Datentabelle . . . . . . . . . . . . . . . . . . . . . . 171
15.6 Protokoll eines datengetriebenen Tests mit verschachtelten Schleifen . . 172
16.1 Beispiel Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
17.1 Dialog zur Wiederausfhrung von Testfllen . . . . . . . . . . . . . . . . 200
18.1 Ergebnis einer Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
19.1 Aufgezeichnete Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . 216
19.2 Die Procedure Builder Definitionsdatei . . . . . . . . . . . . . . . . . . . 217
20.1 Integration mit ALM - Quality Center . . . . . . . . . . . . . . . . . . . . . 220
20.2 QF-Test VAPI-XP-TEST Testfall in HP ALM - Quality Center . . . . . . . 221
20.3 Im Testplan einen neuen Testfallsatz anlegen . . . . . . . . . . . . . . . . 222
20.4 Test vom Typ VAPI-XP-TEST anlegen . . . . . . . . . . . . . . . . . . . . 223
20.5 HP VAPI-XP Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
20.6 VAPI-XP-TEST Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
20.7 Template in Textbereich des Skripts kopieren . . . . . . . . . . . . . . . . 226
20.8 Neuer Testfallsatz im Testlabor . . . . . . . . . . . . . . . . . . . . . . . . 227
20.9 Test zu Ausfhrung hinzufgen . . . . . . . . . . . . . . . . . . . . . . . 228
20.10 Ausfhrung des Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
20.11 Testresultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
20.12 Hochgeladenes Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
20.13 Skript Debuglauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
20.14 QF-Test Protokoll in QMetry . . . . . . . . . . . . . . . . . . . . . . . . . 236
-
ABBILDUNGSVERZEICHNIS xxxiv
21.1 Eclipse Plugin Konfiguration - Reiter Main . . . . . . . . . . . . . . . . . 246
21.2 Eclipse Plugin Konfiguration - Reiter Settings . . . . . . . . . . . . . . . 247
21.3 Eclipse Plugin Konfiguration - Reiter Initial Settings . . . . . . . . . . . 248
21.4 Jenkins nach dem Start. . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
21.5 QF-Test Plugin installiert. . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
21.6 Verzeichnis des Arbeitsbereichs anpassen. . . . . . . . . . . . . . . . . . 254
21.7 Build-Schritt hinzufgen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
21.8 Erweitere Optionen fr den Build-Schritt. . . . . . . . . . . . . . . . . . . 256
21.9 Post-Build-Aktionen konfigurieren. . . . . . . . . . . . . . . . . . . . . . . 257
22.1 Exceldatei fachliche Schlsselwrter . . . . . . . . . . . . . . . . . . . . 262
22.2 Testsuite fachliche Schlsselwrter . . . . . . . . . . . . . . . . . . . . . 263
22.3 Prozedur fillDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
22.4 Exceldatei generische Komponenten . . . . . . . . . . . . . . . . . . . . 268
22.5 Testsuite generische Komponenten . . . . . . . . . . . . . . . . . . . . . 269
22.6 Testsuite Behavior-Driven Testing technisch . . . . . . . . . . . . . . . . 272
22.7 Testsuite Behavior-Driven Testing fachlich . . . . . . . . . . . . . . . . . 274
22.8 Exceldatei als Szenariodatei . . . . . . . . . . . . . . . . . . . . . . . . . 275
22.9 Testsuite Szenariodateien . . . . . . . . . . . . . . . . . . . . . . . . . . 276
23.1 Lasttest Szenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
23.2 bersicht Lasttest Umgebung . . . . . . . . . . . . . . . . . . . . . . . . 284
23.3 Die Beispieltestsuite daemonController_twoPhases.qft . . . . . . . . . . 285
23.4 Der Aufruf von rc.syncThreads in der Beispieltestsuite . . . . . . . . . . . 290
24.1 Beispiel fr einen ManualStepDialog . . . . . . . . . . . . . . . . . . . . 294
27.1 Struktur mit mehreren Testsuiten . . . . . . . . . . . . . . . . . . . . . . . 309
27.2 Include Bereich von Ebene 1 Testsuiten . . . . . . . . . . . . . . . . . . 310
27.3 Struktur von Testsuiten mit Rollen . . . . . . . . . . . . . . . . . . . . . . 311
29.1 Standardeinstellung Komponentenaufzeichnung . . . . . . . . . . . . . . 318
29.2 Standardeinstellungen fr die Wiedergabe . . . . . . . . . . . . . . . . . 319
29.3 Name bertrifft alles Einstellung fr die Aufzeichnung . . . . . . . . . . 320
-
ABBILDUNGSVERZEICHNIS xxxv
29.4 Name bertrifft alles Einstellung fr das Abspielen . . . . . . . . . . . . 321
29.5 Ein regulrer Ausdruck im Merkmal Attribut . . . . . . . . . . . . . . . . . 322
29.6 Option um nur Systemklassen aufzuzeichnen . . . . . . . . . . . . . . . 325
32.1 Optionen Baumstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
32.2 Allgemeine Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
32.3 Editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
32.4 Projekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
32.5 Lesezeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
32.6 Optionen fr Externe Programme . . . . . . . . . . . . . . . . . . . . . . 346
32.7 Optionen fr Sicherungskopien . . . . . . . . . . . . . . . . . . . . . . . 350
32.8 Bibliothekspfad Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
32.9 Lizenz Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
32.10 Aufnahme Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
32.11 Optionen fr die Aufnahme von Events . . . . . . . . . . . . . . . . . . . 356
32.12 Optionen fr das Packen von Events . . . . . . . . . . . . . . . . . . . . 358
32.13 Ziehen in ein Untermen . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
32.14 Option fr die Aufnahme von Komponenten . . . . . . . . . . . . . . . . . 361
32.15 Popupmen zum Aufnehmen von Komponenten . . . . . . . . . . . . . . 362
32.16 Option fr die Aufnahme von Unterelementen . . . . . . . . . . . . . . . 368
32.17 Procedure Builder Optionen . . . . . . . . . . . . . . . . . . . . . . . . . 370
32.18 Wiedergabe Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
32.19 Client Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
32.20 Terminal options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
32.21 Optionen zur Eventbehandlung . . . . . . . . . . . . . . . . . . . . . . . 383
32.22 Optionen zur Wiedererkennung . . . . . . . . . . . . . . . . . . . . . . . 388
32.23 Verzgerungsoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
32.24 Timeout Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
32.25 Optionen fr Wiedergabe Rckwrtskompatibilitt . . . . . . . . . . . . . 398
32.26 Web Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
32.27 Optionen fr HTTP Requests . . . . . . . . . . . . . . . . . . . . . . . . . 404
32.28 Optionen fr Web Rckwrtskompatibilitt . . . . . . . . . . . . . . . . . 405
-
ABBILDUNGSVERZEICHNIS xxxvi
32.29 Debugger Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
32.30 Protokoll Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
32.31 Optionen fr den Inhalt von Protokollen . . . . . . . . . . . . . . . . . . . 413
32.32 Optionen fr Verweise zwischen Verzeichnissen mit Testsuiten . . . . . . 417
32.33 Variablen Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
33.1 Testsuite Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
33.2 Testfall Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
33.3 Testfallsatz Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
33.4 Testaufruf Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
33.5 Sequenz Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
33.6 Testschritt Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
33.7 Sequenz mit Zeitlimit Attribute . . . . . . . . . . . . . . . . . . . . . . . . . 448
33.8 Extrasequenzen Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
33.9 Abhngigkeit Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
33.10 Bezug auf Abhngigkeit Attribute . . . . . . . . . . . . . . . . . . . . . . . 456
33.11 Vorbereitung Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
33.12 Aufrumen Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
33.13 Fehlerbehandlung Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
33.14 Datentreiber Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
33.15 Datentabelle Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
33.16 Datenbank Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
33.17 Excel Datei Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
33.18 CSV Datei Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
33.19 Datenschleife Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
33.20 Prozedur Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
33.21 Prozeduraufruf Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
33.22 Return Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
33.23 Package Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
33.24 Prozeduren Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
33.25 Schleife Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
33.26 While Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
-
ABBILDUNGSVERZEICHNIS xxxvii
33.27 Break Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
33.28 If Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
33.29 Elseif Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
33.30 Else Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
33.31 Try Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
33.32 Catch Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
33.33 Finally Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
33.34 Throw Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
33.35 Rethrow Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
33.36 Server Skript Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
33.37 SUT Skript Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
33.38 Java SUT Client starten Attribute . . . . . . . . . . . . . . . . . . . . . . . . 538
33.39 SUT Client starten Attribute . . . . . . . .