Inhaltsverzeichnis

Vorwort
Hinweise zur Benutzung dieses Handbuchs
Inhaltsverzeichnis
Abbildungsverzeichnis
Tabellenverzeichnis
I
Anwenderhandbuch
1
Installation und Start
1.1Systemvoraussetzungen
1.1.1Hard- und Software
1.1.2Unterstützte Technologien - QF-Test
1.1.3Unterstützte Technologien - zu testende Systeme
1.2Windows Installation
1.2.1Installation mit dem Windows Setup-Programm QF-Test-8.0.2.exe
1.2.2Auspacken des selbstextrahierenden Archivs QF-Test-8.0.2-sfx.exe
1.2.3Abschluss der Installation und Java-Konfiguration
1.3Linux Installation
1.4macOS Installation
1.5Lizenzdatei
1.6Konfigurationsdateien
1.7Aufruf von QF-Test
1.8Firewall Sicherheitswarnung
2
Bedienung von QF-Test
2.1Die Testsuite
2.2Bearbeiten einer Testsuite
2.2.1Navigation im Baum
2.2.2Einfügemarkierung
2.2.3Knoten verschieben
2.2.4Knoten konvertieren
2.2.5Tabellen
2.2.6Packen und Entpacken
2.2.7Sortieren von Knoten
2.3Erweiterte Bearbeitungsmöglichkeiten
2.3.1Suchen
2.3.2Ersetzen
2.3.3Kompliziertere Such- und Ersetzungsvorgänge
2.3.4Mehrere Ansichten
2.3.5Toolbar-Buttons ausblenden
2.0+
3
Schnellstart Ihrer Anwendung
3.1Erzeugung der Startsequenz - Schnellstart-Assistent
3.2Ausführen der Startsequenz
3.3Wenn sich der Client nicht verbindet ...
3.4Programmausgaben und das Clients Menü
3.5 Indirektes Starten eines zweiten SUT als Kindprozess eines bereits verbundenen SUT
4
Aufnahme und Wiedergabe
4.1Aufnahme von Testsequenzen
4.2Abspielen von Tests
4.3Aufnehmen von Checks
4.4Komponenten aufnehmen
4.5HTTP-Requests aufnehmen (GET/POST)
5
Komponenten
5.1Komponenten eines GUI
5.2'Komponente'-Knoten versus SmartID
5.2.1Verbesserte Lesbarkeit eines Tests
5.2.2Testgesteuerte Entwicklung
5.2.3Schlüsselwort-basierende Tests
5.2.4Wiedererkennungsstabilität
5.2.5Wartbarkeit
5.2.6Performanz
5.2.7Kombination von 'Komponente'-Knoten und SmartIDs
5.3Wie erreicht man eine robuste Komponentenerkennung?
5.3.1Woran erkennt man eine robuste Komponentenerkennung?
5.3.2Welche Optimierungsmöglichkeiten gibt es?
5.4Wiedererkennungskriterien
5.4.1Klasse
5.4.2Name
5.4.3Merkmal
5.4.4Weitere Merkmale
5.4.5Index
5.4.6Geometrie
5.4.7Komponentenhierarchie
5.5'Komponente'-Knoten
5.6SmartID
5.6.1Anwendungsbereiche für SmartIDs
5.6.2SmartID-Syntax für 'Klasse'
5.6.3SmartID-Syntax für 'Name'
5.6.4SmartID-Syntax für 'Merkmal'
5.6.5SmartID-Syntax für 'Weitere Merkmale'
5.6.6SmartID mit Index
5.6.7SmartID-Syntax für Komponentenhierarchien
5.6.8Aufnehmen und Abspielen von SmartIDs
5.6.9'QF-Test ID' der Komponente als SmartID
5.7Geltungsbereich (Scope)
5.8Generische Komponenten
5.9Unterelemente: Adressierung relativ zur übergeordneten Komponente
5.9.1Adressierung mittels Index
5.9.2Adressierung mit QPath
5.9.3Adressierung mit XPath und/oder CSS-Selektoren
5.9.4Adressierung mit 'Elemente' Knoten
5.10Lösung von Problemen bei der Wiedererkennung
5.10.1Zeitliche Synchronisierung
5.10.2Wiedererkennung
5.11Bereinigung und Wartung des Komponentenbaums
5.11.1Komponentenbaum bereinigen
5.11.2'Komponenten' aktualisieren
3.1+5.12 Untersuchung von Komponenten
5.12.1Methoden anzeigen
7.0+5.12.2UI-Inspektor
6
Variablen
6.1Ermittlung des Wertes einer Variablen
6.2Definition von Variablen
6.3Variablen Beispiel
6.4Daten aus der GUI auslesen
6.5JSON-Daten
6.6Externe Daten und spezielle Gruppen
6.7Berechnungen
3.0+6.8Immediate und Lazy Binding
7
Problemanalyse und Debugging
7.1Das Protokoll
7.1.1Fehlerzustände
7.1.2Navigation im Protokoll
7.1.3Laufzeitverhalten
7.1.4Rückgabewerte anzeigen
7.1.5Werte von fehlgeschlagenen Checks als gültig akzeptieren
3.0+7.1.6Geteilte Protokolle
7.1.7Protokoll-Optionen
3.3+7.1.8Eine Testsuite aus dem Protokoll erstellen
4.1+7.1.9Protokolle zusammenführen
7.2Der Debugger
7.2.1Aktivieren des Debuggers
7.2.2Das Debugger-Fenster
7.2.3Debugger Kommandos
7.2.4Breakpoints setzen und löschen
8
Aufbau und Organisation einer Testsuite
8.1Struktur der Testsuite
8.2'Testfallsatz' und 'Testfall' Knoten
2.0+8.2.1 Verwaltung von Tests mit Hilfe von 'Testfallsatz' und 'Testfall' Knoten
8.2.2Konzepte
8.2.3Variablen und besondere Attribute
8.3'Sequenz' und 'Testschritt' Knoten
8.4'Vorbereitung' und 'Aufräumen' Knoten
8.5'Prozeduren' und 'Packages'
3.1+8.5.1Lokale 'Prozeduren' und 'Packages'
3.1+8.5.2Relative 'Prozeduren'
8.5.3Einfügen von 'Prozeduraufruf' Knoten
3.1+8.5.4Parametrisieren von Knoten
3.0+8.5.5Konvertieren von 'Sequenzen' und 'Testschritte' in 'Prozeduren'
8.6'Abhängigkeit' Knoten
8.6.1Funktionsweise
8.6.2Verwendung von 'Abhängigkeiten'
8.6.3'Abhängigkeiten' - Ausführung und Stapel von Abhängigkeiten
8.6.4'Charakteristische Variablen'
8.6.5'Aufräumen erzwingen'
8.6.6'Abhängigkeiten' abbauen
8.6.7Eskalation von Fehlern
8.6.8Fehlerbehandlung und Reaktion auf unerwartetes Verhalten
8.6.9Namensräume für Abhängigkeiten
8.7Dokumentieren von Testsuiten
3.5+
9
Projekte
10
Standardbibliothek
11
Skripting
11.1Allgemeines
11.2Der Runcontext rc
11.2.1Meldungen ausgeben
11.2.2Checks durchführen
11.2.3Variablen
11.2.4Zugriff auf die GUI-Komponenten des SUT
11.2.5Aufruf von 'Prozeduren'
3.1+11.2.6Setzen von Optionen
11.2.7Komponenten bei Bedarf setzen
11.3Jython Skripting
11.3.1Module
11.3.2Post-mortem Fehleranalyse von Jython Skripten
11.3.3Boolean Typ
11.3.4Jython Strings und Zeichenkodierung
11.3.5Den Namen einer Java-Klasse ermitteln
11.3.6Ein komplexes Beispiel
11.4Groovy Skripting
11.4.1Groovy Packages
11.5JavaScript Skripting
11.5.1Module
11.5.2Ausgaben
11.5.3Ausführung
12
Unit-Tests
12.1Java-Klassen als Quelle für Unit-Tests
12.2Grundlagen der Test-Skripte
12.2.1Groovy Unit-Tests
12.2.2Jython Unit-Tests
12.2.3JavaScript Unit-Test
12.3Injections
12.3.1Komponenten in den Unit-Tests verwenden
12.3.2WebDriver-Injections
12.4Unit-Tests im Report
13
Testen von Java Desktop-Anwendungen
14
Testen von Webseiten
14.1Unterstützte Browser
14.2Allgemeine Vorgehensweise
14.3Die Verbindung zum Browser
14.4Erkennung von Web-Komponenten und Toolkits
14.5Cross-Browser Tests
14.6Testen von mobilen Webseiten
14.7Web-Testen im Headless-Modus
14.8Einbindung vorhandener Selenium Web-Tests
14.9Auswahl der Browser Installation
5.0+
15
Testen nativer Windows-Anwendungen
15.1Einstieg
15.2Technischer Hintergrund
15.3Start/Anbindung einer Applikation
15.4Aufnahme
15.5Komponenten
15.6Wiedergabe und Patterns
15.7Skripting
15.8Optionen
15.8.1Windows Skalierung
15.8.2Sichtbarkeit
15.8.3Verbinden zu einem Fenster einer bestimmten Klasse
15.8.4Begrenzung der Anzahl von Kind-Elementen
15.9(Aktuelle) Einschränkungen
15.10Links
6.0+
16
Testen von Android-Anwendungen
16.1Voraussetzungen und bekannte Einschränkungen
16.1.1Voraussetzungen
16.1.2Bekannte Einschränkungen
16.2Emulator oder echtes Gerät
16.3Installation des Android Studios, Emulators und virtueller Geräte
16.3.1Android Studio installation
16.3.2Android Studio AVD Konfiguration
16.4Verbinden mit einem echten Android-Gerät
16.5Eine QF-Test Startsequenz für Android Tests erzeugen
16.5.1Nutzung eines Android-Emulators
16.5.2Nutzung eines echten Android-Gerätes
16.6Aktionen und Checks auf der Android-App aufnehmen
16.7Android Hilfsprozeduren
8.0+
17
Testen von iOS-Anwendungen
17.1Voraussetzungen und bekannte Einschränkungen
17.1.1Voraussetzungen
17.1.2Bekannte Einschränkungen
17.2Xcode, Simulatoren und IDB installieren
17.2.1Xcode installieren
17.2.2iOS Development Bridge (idb) installieren
17.3Auf einem echten iOS-Gerät testen
17.4QF-Test 'Vorbereitung' Sequenz für iOS Tests
17.5Aufnamen und Checks bei iOS
17.6iOS Hilfsprozeduren
18
Testen von PDF-Dokumenten
18.1PDF-Client
18.1.1PDF-Client starten
18.1.2Das Fenster des PDF-Client
18.2PDF Events
18.2.1PDF-Dokument öffnen
18.2.2Seite wechseln
18.3Checks für PDF-Komponenten
18.3.1'Check Text'
18.3.2'Check Abbild'
18.3.3'Check Font'
18.3.4'Check Font-Größe'
18.4PDF Komponententypen
18.5PDF Komponentenerkennung
19
Testen von Java Desktop-Anwendungen im Browser mit Webswing oder JPro
19.1Technische Konzepte von JiB für Webswing und JPro
20
Testen von Electron-Anwendungen
20.1Electron Client starten
20.1.1Electron Einstellungen im Schnellstart-Assistenten
20.2Electron spezifische Funktionalität in QF-Test
20.2.1Native Menüs
20.2.2Native Dialoge
20.2.3Erweiterte Javascript-API
20.3Technische Anmerkungen zum Testen von Electron-Anwendungen im WebDriver-Verbindungsmodus
21
Testen von Webdiensten
21.1REST Webservices
21.1.1Der HTTP Standard und Webdienste
21.1.2HTTP Anfragen
21.1.3Beispiele
22
Datengetriebenes Testen
22.1Beispiele für 'Datentreiber'
22.2Anwendung von 'Datentreibern'
22.3Beispiele für 'Datentreiber'
22.4Fortgeschrittene Anwendung
23
Reports und Testdokumentation
23.1Reports
23.1.1Reportkonzepte
23.1.2Inhalt von Reports
23.1.3Reports erstellen
23.1.4Individualisierung von Reports
23.2Testdoc-Dokumentation für 'Testfallsätze' und 'Testfälle'
23.3Pkgdoc-Dokumentation für 'Packages', 'Prozeduren' und 'Abhängigkeiten'
24
Testausführung
24.1Testausführung im Batchmodus
24.1.1Verwenden der Kommandozeile
24.1.2Windows Befehlsskript
3.0+24.1.3Groovy
24.2Testausführung im Daemonmodus
24.2.1Starten des Daemons
3.0+24.2.2Steuern des Daemons über die QF-Test Kommandozeile
24.2.3Steuern des Daemons über die Daemon API
4.1+24.3Erneute Ausführung von Knoten (Rerun)
24.3.1Erneute Ausführung aus dem Protokoll
24.3.2Fehlerhafte Knoten sofort wiederholen
25
Verteilte Entwicklung von Tests
25.1Der Aufruf einer 'Prozedur' in einer anderen Testsuite
25.2Die Verwaltung von 'Komponenten'
25.3Verschmelzen von Testsuiten
25.3.1Importieren von Komponenten
3.3+25.3.2 Importieren von Prozeduren und Testfällen
25.4Verteilte Entwicklung von Tests
3.1+25.5Statische Validierung von Testsuiten
25.5.1Ungültige Referenzen vermeiden
4.0.3+25.5.2Ungenutzte Prozeduren finden
3.0+
26
Automatisierte Erstellung von Basisprozeduren
26.1Einführung
26.2Die Verwendung vom Procedure Builder
26.3Konfiguration des Procedure Builder
26.3.1Die Procedure Builder Definitionsdatei
3.0+
27
Anbindung an Testmanagementtools
27.1HP ALM - Quality Center
27.1.1Einführung
27.1.2Schritt für Schritt Anleitung
27.1.3Fehlersuche
27.2Imbus TestBench
27.2.1Einführung
27.2.2Generieren von QF-Test Vorlage-Testsuiten aus den Interaktionen
27.2.3Importieren der Resultate
27.3QMetry
27.3.1Einführung
27.3.2Demokonfiguration Beispiel
27.4Klaros
27.4.1Einführung
27.4.2Importieren von QF-Test Ergebnissen in Klaros
27.5TestLink
27.5.1Einführung
27.5.2Generieren von QF-Test Vorlagen-Testsuiten aus den Testfällen
27.5.3Ausführung der Testfälle
27.5.4Importieren der QF-Test Resultate nach TestLink
28
Integration mit Entwickler-Tools
28.1Eclipse
28.1.1Installation
28.1.2Konfiguration
28.2Ant
28.3Maven
3.3+28.4Jenkins
28.4.1Jenkins installieren und starten
28.4.2Voraussetzungen für GUI-Tests
28.4.3Installation des QF-Test Plugins
7.0+28.5JUnit 5 Jupiter
28.6TeamCity CI
29
Integration mit Robot Framework (Preview)
29.1Einführung
29.2Voraussetzungen und Installation
29.3Erste Schritte
29.4Nutzung der Bibliothek
29.5Erstellung eigener Keywords
30
Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test
30.1Einführung
30.2Einfaches Keyword-Driven Testing mit QF-Test
30.2.1Fachliche Prozeduren
30.2.2Atomare Prozeduren
30.3Keyword-Driven Testing mit dynamischen/generischen Komponenten
30.4Behavior-Driven Testing (BDT)
30.4.1Behavior-Driven Testing (BDT) mit technischer Beschreibung
30.4.2Behavior-Driven Testing (BDT) mit fachlicher Beschreibung
30.5Szenariodateien
30.6Eigene Testbeschreibungen
30.7Anpassung an Ihre Software
31
Verwendung von QF-Test in Docker Umgebungen
31.1Was ist Docker?
31.2QF-Test Docker Images
32
Durchführung von Lasttests mit QF-Test
32.1Hintergrund und Vergleich mit anderen Techniken
32.2Lasttests mit QF-Test
32.2.1Bereitstellung der Testsysteme
32.2.2Konzeption des Testlaufes
32.2.3Vorbereiten der Testsysteme für den Testlauf
32.2.4Testausführung
32.2.5Testauswertung
32.3Spezielles zur Testausführung
32.3.1Synchronisierung
32.3.2Messen von End-to-End Zeiten
32.4Troubleshooting
32.5Web-Lasttests ohne sichtbare Browser-Fenster
3.0+
33
Ausführung manueller Tests mit QF-Test
33.1Einführung
33.2Schritt-für-Schritt Anleitung
33.3Aufbau der Excel-Datei
33.4Die Ausführungstestsuite
33.5Die möglichen Zustände
II
Best Practices
34
Einführung
35
Wie beginnt man in einem Testprojekt?
35.1Infrastruktur und Testumgebung
35.2Speicherorte
35.2.1Netzwerkinstallation
35.3Wiedererkennung von Komponenten
36
Organisation von Testsuiten
36.1Organisation von Tests
36.2Modularisierung
36.3Parametrisierung
36.4Arbeiten in mehreren Testsuiten
36.5Rollen und Zuständigkeiten
36.6Komponenten in unterschiedlichen Ebenen verwalten
36.7Umgekehrte Includes
37
Effiziente Arbeitstechniken
3.5+37.1Arbeiten mit QF-Test Projekten
37.2Erstellung von Testsuiten
37.3Die Standardbibliothek qfs.qft
37.4Ablage von Komponenten
37.5Erweitern von Testsuiten
37.6Arbeiten mit dem Skripteditor
38
Aufsetzen von Testsystemen
38.1Einrichten von Prozessen und Services via Aufgabenplaner
38.2Fernzugriff auf Windowsrechner
38.3Automatische Anmeldung auf Windowsrechnern
38.4Testausführung unter Linux
39
Testausführung
39.1Abhängigkeiten
39.2Wartezeiten und Verzögerungen
39.3Was soll man tun, wenn das Protokoll einen Fehler enthält?
III
Referenzteil
40
Einstellungen
40.1Allgemeine Optionen
3.5+40.1.1Einstellungen für Projekte
7.0+40.1.2Speichern von Testsuiten
40.1.3Darstellung
40.1.4Editieren
40.1.5Lesezeichen
40.1.6Externe Programme
40.1.7Sicherungskopien
40.1.8Bibliothekspfad
40.1.9Lizenz
40.1.10Updates
40.2Aufnahme
40.2.1Folgende Events aufnehmen
40.2.2Eventsequenzen packen
40.2.3Komponenten
40.2.4Unterelemente
6.0+40.2.5Aufnahmefenster
40.2.6Prozeduren
40.3Wiedergabe
40.3.1Client Optionen
40.3.2Terminal Optionen
40.3.3Events
40.3.4Wiedererkennung
40.3.5Verzögerungen
40.3.6Automatische Timeouts
40.3.7Rückwärtskompatibilität
7.0+40.4SmartID und qfs:label
6.0+40.5Android
8.0+40.6iOS
40.7Web-Optionen
40.7.1HTTP-Requests
40.7.2Rückwärtskompatibilität
40.8SWT-Optionen
40.9Debugger-Optionen
40.10Protokoll
40.10.1Allgemeine Protokoll-Optionen
40.10.2Optionen zur Aufteilung von Protokollen
40.10.3Optionen für den Inhalt von Protokollen
4.0+40.10.4Optionen für Verweise zwischen Verzeichnissen mit Testsuiten
40.11Variablen
40.12Nur zur Laufzeit
41
Bestandteile einer Testsuite
41.1Die Testsuite und ihre Struktur
41.1.1'Testsuite'
41.2Test- und Sequenz-Knoten
41.2.1'Testfall'
41.2.2'Testfallsatz'
41.2.3'Testaufruf'
41.2.4'Sequenz'
41.2.5'Testschritt'
41.2.6'Sequenz mit Zeitlimit'
41.2.7'Extrasequenzen'
41.3Abhängigkeiten
41.3.1'Abhängigkeit'
41.3.2'Bezug auf Abhängigkeit'
41.3.3'Vorbereitung'
41.3.4'Aufräumen'
41.3.5'Fehlerbehandlung'
41.4Datentreiber
41.4.1'Datentreiber'
41.4.2'Datentabelle'
41.4.3'Datenbank'
41.4.4'Excel-Datei'
41.4.5'CSV-Datei'
41.4.6'Datenschleife'
41.5Prozeduren
41.5.1'Prozedur'
41.5.2'Prozeduraufruf'
41.5.3'Return'
41.5.4'Package'
41.5.5'Prozeduren'
41.6Ablaufsteuerung
41.6.1'Schleife'
41.6.2'While'
41.6.3'Break'
41.6.4'If'
41.6.5'Elseif'
41.6.6'Else'
41.6.7'Try'
41.6.8'Catch'
41.6.9'Finally'
41.6.10'Throw'
41.6.11'Rethrow'
41.6.12'Server-Skript'
41.6.13'SUT-Skript'
41.7Prozesse
41.7.1'Java-SUT-Client starten'
41.7.2'SUT-Client starten'
41.7.3'Programm starten'
41.7.4'Shell-Kommando ausführen'
41.7.5'Web-Engine starten'
41.7.6'PDF-Client starten'
41.7.7'Windows-Anwendung starten'
41.7.8'Windows-Anwendung verbinden'
41.7.9'Android-Emulator starten'
41.7.10'Mit Android-Gerät verbinden'
41.7.11'Mit iOS-Gerät verbinden'
41.7.12'Warten auf Client'
41.7.13'Warten auf Mobil-Gerät'
41.7.14'Browser-Fenster öffnen'
41.7.15'Mobile-App starten'
41.7.16'Programm beenden'
41.7.17'Warten auf Programmende'
41.8Events
41.8.1'Mausevent'
41.8.2'Tastaturevent'
41.8.3'Texteingabe'
41.8.4'Fensterevent'
41.8.5'Komponentenevent'
41.8.6'Auswahl'
41.8.7'Dateiauswahl'
41.9Checks
41.9.1'Check Text'
41.9.2'Check Boolean'
41.9.3'Check Elemente'
41.9.4'Check selektierbare Elemente'
41.9.5'Check Abbild'
41.9.6'Check Geometrie'
41.10Abfragen
41.10.1'Text auslesen'
41.10.2'Index auslesen'
41.10.3'Geometrie auslesen'
41.11Verschiedenes
41.11.1'Kommentar'
41.11.2'Fehler'
41.11.3'Warnung'
41.11.4'Nachricht'
41.11.5'Variable setzen'
41.11.6'Warten auf Komponente'
41.11.7'Warten auf Laden des Dokuments'
41.11.8'Warten auf Ende des Downloads'
41.11.9'Ressourcen laden'
41.11.10'Properties laden'
41.11.11'Unit-Test'
41.11.12'CustomWebResolver installieren'
41.12HTTP-Requests
41.12.1'Server-HTTP-Request'
41.12.2'Browser-HTTP-Request'
41.13Fenster, Komponenten und Elemente
41.13.1'Fenster'
41.13.2'Webseite'
41.13.3'Komponente'
41.13.4'Element'
41.13.5'Fenstergruppe'
41.13.6'Komponentengruppe'
41.13.7'Fenster und Komponenten'
41.14Historische Knoten
41.14.1'Test'
41.14.2Prozedur installCustomWebResolver
42
Exceptions
IV
Technische Referenz
43
Kommandozeilenargumente und Rückgabewerte
43.1Aufrufsyntax
43.2Kommandozeilenargumente
43.2.1Argumente für das Startskript
43.2.2Argumente für die Java-VM
43.2.3Argumente für QF-Test
43.2.4Platzhalter im Dateinamen für Protokoll und Report
43.3Rückgabewerte von QF-Test
44
GUI-Engines
45
Starten einer Applikation aus QF-Test
45.1Verschiedene Methoden zum Starten des SUT
45.1.1Starten des SUT aus einem Skript oder ausführbaren Programm
45.1.2Starten des SUT mittels Java WebStart
45.1.3 Starten des SUT mittels java -jar <Archiv>
45.1.4 Starten des SUT mittels java -classpath <Pfad> <Startklasse>
45.1.5 Starten einer Web-Anwendung im Browser
45.1.6Öffnen eines PDF-Dokuments
46
JRE und SWT-Instrumentierung
46.1Deinstrumentieren eines JRE
46.2SWT-Instrumentierung
46.2.1Vorbereitung einer manuellen SWT-Instrumentierung
46.2.2Manuelle SWT-Instrumentierung für Eclipse basierte Anwendungen
46.2.3Manuelle Instrumentierung für eigenständige SWT-Anwendungen
47
Technisches zu Komponenten
47.1Gewichtung der Wiedererkennungsmerkmale bei aufgenommenen Komponenten
47.2Generierung der 'QF-Test ID' der Komponente
47.3SmartIDs - allgemeine Syntax
47.4SmartIDs: Sonderzeichen
47.5Android - Liste der trivialen Komponentenbezeichner
48
Technische Details zu verschiedenen Themen
48.1Drag&Drop
48.2Timing
48.3Reguläre Ausdrücke - Regexps
48.4Zeilenumbrüche in Linux und Windows
48.5Schützen von Sonderzeichen (quoting)
48.6Auflösen von inkludierten Dateien
49
Skripting (Jython, Groovy und JavaScript)
49.1Pfad für das Laden der Module
49.2Das Plugin Verzeichnis
49.3Initialisierung (Jython)
49.4Die Namespace Umgebung für Skript-Knoten (Jython)
49.5Die API des Runcontexts
49.6Das qf Modul
3.0+49.7Image API
49.7.1Die ImageWrapper Klasse
49.8Das JSON Modul
49.9Sprechende Prüfausdrücke (Assertions)
49.9.1Motivation
49.9.2API-Dokumentation
49.9.3Ergebnisbehandlung
49.10Exceptions
49.11Debuggen von Skripten (Jython)
50
Web
50.1Verbesserte Komponentenerkennung mittels CustomWebResolver
50.1.1Generelle Konfigurationsmöglichkeiten
50.1.2Der 'CustomWebResolver installieren' Knoten
50.1.3'CustomWebResolver' – Tabelle
50.1.4'CustomWebResolver' – Baum (Tree)
50.1.5'CustomWebResolver' – TreeTable
50.1.6'CustomWebResolver' – Liste
50.1.7'CustomWebResolver' – Combobox
50.1.8'CustomWebResolver' – TabPanel und Accordion
50.1.9Beispiel für den "CarConfigurator Web"
50.2Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken
50.2.1Konzepte für Webframework-Resolver
50.2.2Eindeutige Bezeichner setzen
50.3Browser Verbindungsmodus
50.3.1QF-Driver Verbindungsmodus
5.3+50.3.2CDP-Driver Verbindungsmodus
50.3.3WebDriver Verbindungsmodus
50.3.4Bekannte Einschränkungen des WebDriver Modus
50.4Web – Pseudoattribute
50.5Zugriff auf unsichtbare Felder einer Webseite
50.6WebDriver mit Safari
51
Steuern und Testen von nativen Windows-Anwendungen - ohne Verwendung der QF-Test win Engine
51.1Vorgehensweise
51.1.1Start der Anwendung
51.1.2Auflistung aller GUI-Elemente eines Fensters
51.1.3Informationen zu einzelnen GUI-Elementen
51.1.4Zugriff auf GUI Elemente
51.1.5Ausführen von Aktionen auf GUI-Elementen
51.2Beispiel
51.2.1Start der Anwendung
51.2.2Übersicht über die GUI-Elemente der Anwendung
52
Steuern und Testen von nativen MacOS-Anwendungen
52.1Vorgehensweise
52.1.1Start der Anwendung
52.1.2Auflistung aller GUI-Elemente eines Fensters
52.1.3Informationen zu einzelnen GUI-Elementen
52.1.4Zugriff auf GUI Elemente
52.1.5Ausführen von Aktionen auf GUI-Elementen
53
APIs für Erweiterungen
53.1Das resolvers Modul
53.1.1Verwendung
53.1.2Implementierung
53.1.3addResolver
53.1.4removeResolver
53.1.5listNames
53.1.6Zugriff auf die beste Beschriftung
3.1+53.1.7 Das NameResolver Interface
4.0+53.1.8 Das GenericClassNameResolver Interface
3.1+53.1.9 Das ClassNameResolver Interface
3.1+53.1.10 Das FeatureResolver Interface
53.1.11Das ExtraFeatureResolver Interface
3.1+53.1.12 Das ItemNameResolver Interface
3.1+53.1.13 Das ItemValueResolver Interface
53.1.14Das TreeTableResolver Interface
53.1.15Das InterestingParentResolver Interface
4.1+53.1.16 Das TooltipResolver Interface
53.1.17Das IdResolver Interface
4.1+53.1.18 Das EnabledResolver Interface
4.1+53.1.19 Das VisibilityResolver Interface
4.1+53.1.20 Das MainTextResolver Interface
4.1+53.1.21 Das WholeTextResolver Interface
4.1+53.1.22 Der BusyPaneResolver Interfaces
4.1+53.1.23 Der GlassPaneResolver Interfaces
8.0+53.1.24 Das TreeIndentationResolver Interface
4.1+53.1.25 Das EventSynchronizer Interface
4.1+53.1.26 Das BusyApplicationDetector Interface
53.1.27Matcher
53.1.28Externe Implementierung
53.2Das webResolvers-Modul (abgekündigt)
53.3Die ResolverRegistry
3.1+53.4 Implementierung eigener Unterelemente mit dem ItemResolver Interface
53.4.1ItemResolver Konzepte
53.4.2Das ItemResolver Interface
53.4.3Die Klasse SubItemIndex
53.4.4Die ItemRegistry
53.4.5Standard Repräsentation von Unterelementen
3.1+53.5 Implementierung eigener Checks mit dem Checker Interface
53.5.1Das Checker Interface
53.5.2Die Pair Klasse
53.5.3 Das CheckType Interface und seine Implementierung DefaultCheckType
53.5.4Die Klasse CheckDataType
53.5.5Die Klasse CheckData und ihre Unterklassen
53.5.6Die CheckerRegistry
53.5.7Beispiel für einen Checker
3.2+53.6 Das Eclipse Graphical Editing Framework (GEF)
53.6.1Aufnahme von GEF Elementen
53.6.2Implementierung eines ItemNameResolver2 für GEF
53.6.3Implementierung eines ItemValueResolver2 für GEF
3.1+53.7Listener für den aktuellen Testlauf
53.7.1Das TestRunListener Interface
53.7.2Die Klasse TestRunEvent
53.7.3Die Klasse TestSuiteNode
4.0.3+53.8ResetListener
53.9DOM Prozessoren
53.9.1Das DOMProcessor Interface
53.9.2Die DOMProcessorRegistry
53.9.3Fehlerbehandlung
3.0+53.10Image API Erweiterungen
53.10.1Die ImageRep Klasse
53.10.2Das ImageComparator Interface
53.10.3Die ImageRepDrawer Klasse
53.11Pseudo DOM API für Web-Anwendungen
53.11.1Die abstrakte Klasse Node
53.11.2Die Klasse DocumentNode
53.11.3Die Klasse FrameNode
53.11.4Die Klasse DomNode
53.11.5Die Klasse DialogNode
4.1+53.12WebDriverConnection SUT API
53.12.1Die WebDriverConnection Klasse
5.0+53.13Windows Control API
53.13.1Die WinControl Klasse
54
Daemon-Modus
54.1Daemon Konzepte
54.2Daemon API
54.2.1Der DaemonLocator
54.2.2Der Daemon
54.2.3Der TestRunDaemon
54.2.4Der DaemonRunContext
3.1+54.2.5Der DaemonTestRunListener
3.5+54.3Absicherung des QF-Test Daemon
54.3.1Erstellen einer eigenen Keystore-Datei
54.3.2Festlegen der Keystore-Datei
54.3.3Festlegen der Keystore-Datei auf der Client-Seite
55
Die Procedure Builder Definitionsdatei
55.1Platzhalter
4.1.3+55.1.1Rückgriffswerte für Platzhalter
55.2Spezielle Bedingungen für die Definition von Packages und Prozeduren
55.3Auswertung der Komponentenhierarchie
3.4+55.4Details zu @CONDITION
56
Der ManualStepDialog
56.1Die ManualStepDialog API
3.1+
57
Details zu Knotenkonvertierungen
57.1Einführung
57.2Konvertierungen mit Typwechseln
57.3Zusätzliche Konvertierungen unter 'Extrasequenzen'
57.3.1Konvertierungen ohne Seiteneffekte
57.3.2Konvertierungen mit Seiteneffekten
3.3+
58
Details des Algorithmus zum Bildvergleich
58.1Einführung
58.2Beschreibung der Algorithmen
58.2.1Klassischer Bildvergleich
58.2.2Pixelbasierter Vergleich
58.2.3Pixelbasierte Ähnlichkeitsanalyse
58.2.4Blockbildung mit Vergleich
58.2.5Blockbildung mit Ähnlichkeitsanalyse
58.2.6Häufigkeitsanalyse mittels Histogramm
58.2.7Bildanalyse mittels Diskreter Kosinustransformation
58.2.8Blockbildung zur Bildanalyse mittels Diskreter Kosinustransformation
58.2.9Bilinearer Filter
58.3Beschreibung der speziellen Funktionen
58.3.1Bild-in-Bild Suche
3.2+
59
Resultatslisten
59.1Einführung
59.2Spezielle Listenaktionen
59.2.1Alle Listen
59.2.2Ersetzen
59.2.3Fehlerliste
3.5+59.3Resultate exportieren und laden
4.0+
60
Generische Klassen
60.1Accordion
60.2BusyPane
60.3Button
60.4Calendar
60.5CheckBox
60.6Closer
60.7ColorPicker
60.8ComboBox
60.9Divider
60.10Expander
60.11FileChooser
60.12Graphics
60.13Icon
60.14Indicator
60.15Item
60.16Label
60.17Link
60.18List
60.19LoadingComponent
60.20Maximizer
60.21Menu
60.22MenuItem
60.23Minimizer
60.24ModalOverlay
60.25Panel
60.26Popup
60.27ProgressBar
60.28RadioButton
60.29Restore
60.30ScrollBar
60.31Separator
60.32Sizer
60.33Slider
60.34Spacer
60.35Spinner
60.36SplitPanel
60.37Table
60.38TableCell
60.39TableFooter
60.40TableHeader
60.41TableHeaderCell
60.42TableRow
60.43TabPanel
60.44Text
60.45TextArea
60.46TextField
60.47Thumb
60.48ToggleButton
60.49ToolBar
60.50ToolBarItem
60.51ToolTip
60.52Tree
60.53TreeNode
60.54TreeTable
60.55Window
61
Doctags
61.1Doctags für Reporting und Dokumentation
4.2+61.1.1@noreport Doctag
61.2Doctags für Robot Framework
61.3Doctags für die Ausführung
61.4Doctags für das Editieren
61.5Doctags für den Prozedurgenerator
A
FAQ - Häufig gestellte Fragen
B
Release Notes
B.1QF-Test Version 8.0
B.1.1Version 8.0.2 - 5. Dezember 2024
B.1.2Version 8.0.1 - 11. September 2024
B.1.3Änderungen mit möglichen Auswirkungen auf die Testausführung
B.1.4Version 8.0.0 - 8. August 2024
B.2QF-Test Version 7.1
B.2.1Version 7.1.5 - 16. Juli 2024
B.2.2Version 7.1.4 - 12. Juni 2024
B.2.3Version 7.1.3 - 24. April 2024
B.2.4Version 7.1.2 - 14. März 2024
B.2.5Version 7.1.1 - 27. Februar, 2024
B.2.6Änderungen mit möglichen Auswirkungen auf die Testausführung
B.2.7Version 7.1.0 - 20. Februar 2024
B.3QF-Test Version 7.0
B.3.1Version 7.0.8 - 5. Dezember 2023
B.3.2Version 7.0.7 - 11. Oktober 2023
B.3.3Version 7.0.6 - 29. September 2023
B.3.4Version 7.0.5 - 20. September 2023
B.3.5Version 7.0.4 - 30. August 2023
B.3.6Version 7.0.3 - 13. Juli 2023
B.3.7Version 7.0.2 - 22. Juni 2023
B.3.8Version 7.0.1 - 31. Mai 2023
B.3.9Änderungen mit möglichen Auswirkungen auf die Testausführung
B.3.10Version 7.0.0 - 27. April 2023
B.4QF-Test Version 6.0
B.4.1Version 6.0.5 - 15. März 2023
B.4.2Version 6.0.4 - 29. November 2022
B.4.3Version 6.0.3 - 6. September 2022
B.4.4Version 6.0.2 - 20. Juli 2022
B.4.5Version 6.0.1 - 9. Juni 2022
B.4.6Änderungen mit möglichen Auswirkungen auf die Testausführung
B.4.7Version 6.0.0 - 17. Mai 2022
B.5QF-Test Version 5.4
B.5.1Version 5.4.3 - 11. März 2022
B.5.2Version 5.4.2 - 18. Februar 2022
B.5.3Version 5.4.1 - 20. Januar 2022
B.5.4Änderungen mit möglichen Auswirkungen auf die Testausführung
B.5.5Version 5.4.0 - 15. Dezember 2021
B.6QF-Test Version 5.3
B.6.1Version 5.3.4 - 30. September 2021
B.6.2Version 5.3.3 - 14. September 2021
B.6.3Version 5.3.2 - 21. Juli 2021
B.6.4Version 5.3.1 - 15. Juni 2021
B.6.5Änderungen mit möglichen Auswirkungen auf die Testausführung
B.6.6Version 5.3.0 - 20. Mai 2021
B.7QF-Test Version 5.2
B.7.1Version 5.2.3 - 9. März 2021
B.7.2Version 5.2.2 - 12. Februar 2021
B.7.3Version 5.2.1 - 3. Dezember 2020
B.7.4Änderungen mit möglichen Auswirkungen auf die Testausführung
B.7.5Version 5.2.0 - 10. November 2020
B.8 QF-Test Version 5.1
B.8.1 Version 5.1.2 - 15. September 2020
B.8.2 Version 5.1.1 - 26. August 2020
B.8.3Änderungen mit möglichen Auswirkungen auf die Testausführung
B.8.4 Version 5.1.0 - 8. Juli 2020
B.9 QF-Test Version 5.0
B.9.1 Version 5.0.3 - 17. Juni 2020
B.9.2 Version 5.0.2 - 5. Mai 2020
B.9.3 Version 5.0.1 - 2. März 2020
B.9.4Wesentliche neue Features in Version 5
B.9.5 Version 5.0.0 - 6. Februar 2020
C
Tastaturkürzel
C.1Navigation und Editieren
C.2Aufnahme- und Wiedergabefunktionen
C.3Tastaturhelfer
D
Glossar
E
Datenschutz - Verarbeitung von personenbezogenen und anderen Daten
E.1Server-Daten für Versionsabfrage
E.2Direkter Versand von Support-Anfragen aus QF-Test heraus
E.3Kontext-Informationen für Online-Handbuch
E.4Anfragedaten beim Abruf von WebDriver-Dateien
E.5Client-Daten in QF-Test Protokolldateien
F
Benutzte Software