pdf versionen

1209
QF-Test - Das Handbuch Version 4.2.0 Gregor Schmid Quality First Software GmbH 1 Copyright c 1999-2018 Quality First Software GmbH 9. Januar 2018 1 http://www.qfs.de

Upload: buitruc

Post on 04-Jan-2017

286 views

Category:

Documents


4 download

TRANSCRIPT

  • 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 . . . . . . . .