Navigation überspringen
DE
EN
Handbuch
Inhaltsverzeichnis
F
Handbuch
Vorwort
→
Inhaltsverzeichnis
Inhaltsverzeichnis
Vorwort
Hinweise zur Benutzung dieses Handbuchs
I
Anwenderhandbuch
1
Installation und Start
1.1
Systemvoraussetzungen
1.1.1
Hard- und Software
1.1.2
Unterstützte Technologien - QF-Test
1.1.3
Unterstützte Technologien - zu testende Systeme
1.2
Windows Installation
1.2.1
Installation mit dem Windows Setup-Programm QF-Test-.exe
1.2.2
Auspacken des selbstextrahierenden Archivs QF-Test--sfx.exe
1.2.3
Abschluss der Installation und Java-Konfiguration
1.3
Linux Installation
1.4
macOS Installation
1.5
Lizenzdatei
1.6
Konfigurationsdateien
1.7
Aufruf von QF-Test
2
Bedienung von QF-Test
2.1
Die Testsuite
2.2
Bearbeiten einer Testsuite
2.2.1
Überprüfen der Gültigkeit von Attributwerten
2.2.2
Navigation im Baum
2.2.3
Einfügemarkierung
2.2.4
Knoten verschieben
2.2.5
Knoten konvertieren
2.2.6
Tabellen
2.2.7
Packen und Entpacken
2.2.8
Sortieren von Knoten
2.3
Erweiterte Bearbeitungsmöglichkeiten
2.3.1
Suchen
2.3.2
Ersetzen
2.3.3
Kompliziertere Such- und Ersetzungsvorgänge
2.3.4
Mehrere Ansichten
2.3.5
Toolbar-Buttons ausblenden
3
Schnellstart Ihrer Anwendung
3.1
Erzeugung der Startsequenz - Schnellstart-Assistent
3.2
Ausführen der Startsequenz
3.3
Wenn sich der Client nicht verbindet ...
3.4
Programmausgaben und das Clients Menü
3.5
Indirektes Starten eines zweiten SUT als Kindprozess eines bereits verbundenen SUT
4
Aufnahme und Wiedergabe
4.1
Aufnahme von Testsequenzen
4.2
Abspielen von Tests
4.3
Aufnehmen von Checks
4.4
Daten aus der GUI auslesen
4.5
Komponenten aufnehmen
4.6
HTTP-Requests aufnehmen (GET/POST)
5
Komponenten
5.1
Komponenten eines GUI
5.2
Komponente-Knoten versus SmartID
5.2.1
Verbesserte Lesbarkeit eines Tests
5.2.2
Testgesteuerte Entwicklung
5.2.3
Schlüsselwort-basierende Tests
5.2.4
Wiedererkennungsstabilität
5.2.5
Wartbarkeit
5.2.6
Performanz
5.2.7
Kombination von Komponente-Knoten und SmartIDs
5.3
Wie erreicht man eine robuste Komponentenerkennung?
5.3.1
Woran erkennt man eine robuste Komponentenerkennung?
5.3.2
Welche Optimierungsmöglichkeiten gibt es?
5.4
Wiedererkennungskriterien
5.4.1
Klasse
5.4.2
Name
5.4.3
Merkmal
5.4.4
Weitere Merkmale
5.4.5
Index
5.4.6
Geometrie
5.4.7
Komponentenhierarchie
5.5
Komponente-Knoten
5.6
SmartID
5.6.1
Anwendungsbereiche für SmartIDs
5.6.2
SmartID-Syntax für Klasse
5.6.3
SmartID-Syntax für Name
5.6.4
SmartID-Syntax für Merkmal
5.6.5
SmartID-Syntax für Weitere Merkmale
5.6.6
SmartID mit Index
5.6.7
SmartID-Syntax für Komponentenhierarchien
5.6.8
Aufnehmen und Abspielen von SmartIDs
5.6.9
QF-Test ID der Komponente als SmartID
5.7
Geltungsbereich (Scope)
5.8
Generische Komponenten
5.9
Unterelemente: Adressierung relativ zur übergeordneten Komponente
5.9.1
Adressierung mittels Index
5.9.2
Adressierung mit QPath
5.9.3
Adressierung mit XPath und/oder CSS-Selektoren
5.9.4
Adressierung mit Elemente Knoten
5.10
Lösung von Problemen bei der Wiedererkennung
5.10.1
Zeitliche Synchronisierung
5.10.2
Wiedererkennung
5.11
Bereinigung und Wartung des Komponentenbaums
5.11.1
Komponentenbaum bereinigen
5.11.2
Komponenten aktualisieren
5.12
Komponenten untersuchen
5.12.1
Methoden anzeigen
7.0+
5.12.2
UI-Inspektor
6
Variablen
6.1
Variablenreferenzen
6.1.1
Referenzierung einfacher Variablen
6.1.2
Referenzierung von Gruppenvariablen
6.1.3
Referenzierung von Variablen in Skripten und Skriptausdrücken
6.2
Ermittlung des Wertes einer Variablen
6.3
Definition von Variablen
6.4
Variablenebenen
6.4.1
Primärstapel
6.4.2
Sekundärstapel
6.5
Anzeige der Variablen im Debug-Modus – Beispiel
6.6
Datentypen von Variablen
6.6.1
JSON-Daten
6.7
Externe Daten
6.8
Spezielle Gruppen
6.9
Immediate und Lazy Binding
7
Problemanalyse und Debugging
7.1
Das Protokoll
7.1.1
Fehlerzustände
7.1.2
Navigation im Protokoll
7.1.3
Laufzeitverhalten
7.1.4
Rückgabewerte anzeigen
7.1.5
Werte von fehlgeschlagenen Checks als gültig akzeptieren
7.1.6
Geteilte Protokolle
7.1.7
Protokoll-Optionen
7.1.8
Eine Testsuite aus dem Protokoll erstellen
7.1.9
Protokolle zusammenführen
7.2
Der Debugger
7.2.1
Aktivieren des Debuggers
7.2.2
Anzeige der aktuellen Variablenwerte
7.2.3
Debugger Kommandos
7.2.4
Breakpoints setzen und löschen
7.2.5
Das separate Debugger-Fenster
8
Aufbau und Organisation einer Testsuite
8.1
Struktur der Testsuite
8.2
Testfallsatz und Testfall Knoten
8.2.1
Verwaltung von Tests mit Hilfe von Testfallsatz und Testfall Knoten
8.2.2
Konzepte
8.2.3
Variablen und besondere Attribute
8.3
Sequenz und Testschritt Knoten
8.4
Vorbereitung und Aufräumen Knoten
8.5
Prozeduren und Packages
8.5.1
Lokale Prozeduren und Packages
8.5.2
Relative Prozeduren
8.5.3
Einfügen von Prozeduraufruf Knoten
8.5.4
Parametrisieren von Knoten
8.5.5
Konvertieren von Sequenzen und Testschritte in Prozeduren
8.6
Abhängigkeit Knoten
8.6.1
Funktionsweise
8.6.2
Verwendung 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.7
Eskalation von Fehlern
8.6.8
Fehlerbehandlung und Reaktion auf unerwartetes Verhalten
8.6.9
Namensräume für Abhängigkeiten
8.7
Dokumentieren von Testsuiten
9
Projekte
9.1
Unterprojekte
9.2
Projektansicht
9.3
Die Datei qftest.qpj
10
Standardbibliothek
11
Skripting
11.1
Allgemeines
11.2
Skriptausdrücke
11.3
Der Runcontext rc
11.3.1
Meldungen ausgeben
11.3.2
Checks durchführen
11.3.3
Variablen
11.3.4
Zugriff auf die GUI-Komponenten des SUT
11.3.5
Aufruf von Prozeduren
11.3.6
Setzen von Optionen
11.3.7
Komponenten bei Bedarf explizit setzen
11.4
Jython-Skripting
11.4.1
Jython-Variablen
11.4.2
Jython-Module
11.4.3
Post-mortem Fehleranalyse von Jython-Skripten
11.4.4
Boolean-Typ
11.4.5
Jython Strings und Zeichenkodierung
11.4.6
Den Namen einer Java-Klasse ermitteln
11.4.7
Ein komplexes Beispiel
11.5
Groovy-Skripting
11.5.1
Groovy Packages
11.6
JavaScript-Skripting
11.6.1
JavaScript-Module
11.6.2
Ausgaben
11.6.3
Ausführung
12
Unit-Tests
12.1
Java-Klassen als Quelle für Unit-Tests
12.2
Grundlagen der Test-Skripte
12.2.1
Groovy Unit-Tests
12.2.2
Jython Unit-Tests
12.2.3
JavaScript Unit-Test
12.3
Injections
12.3.1
Komponenten in den Unit-Tests verwenden
12.3.2
WebDriver-Injections
12.4
Unit-Tests im Report
13
Java-Desktopanwendungen testen
14
Webseiten testen
14.1
Unterstützte Browser
14.2
Allgemeine Vorgehensweise
14.3
Die Verbindung zum Browser
14.4
Erkennung von Web-Komponenten und Toolkits
14.5
Cross-Browser Tests
14.6
Testen von mobilen Webseiten
14.7
Web-Testen im Headless-Modus
14.8
Einbindung vorhandener Selenium Web-Tests
14.9
Auswahl der Browser Installation
5.0+
15
Native Windows-Anwendungen testen
15.1
Einstieg
15.2
Technischer Hintergrund
15.3
Start/Anbindung einer Applikation
15.4
Aufnahme
15.5
Komponenten
15.6
Wiedergabe und Patterns
15.7
Skripting
15.8
Optionen
15.8.1
Windows Skalierung
15.8.2
Sichtbarkeit
15.8.3
Verbinden zu einem Fenster einer bestimmten Klasse
15.8.4
Begrenzung der Anzahl von Kind-Elementen
15.9
(Aktuelle) Einschränkungen
15.10
Links
6.0+
16
Android-Anwendungen testen
16.1
Voraussetzungen und bekannte Einschränkungen
16.1.1
Voraussetzungen
16.1.2
Bekannte Einschränkungen
16.2
Emulator oder echtes Gerät
16.3
Installation des Android Studios, Emulators und virtueller Geräte
16.3.1
Android Studio installation
16.3.2
Android Studio AVD Konfiguration
16.4
Verbinden mit einem echten Android-Gerät
16.5
Eine QF-Test Startsequenz für Android Tests erzeugen
16.5.1
Nutzung eines Android-Emulators
16.5.2
Nutzung eines echten Android-Gerätes
16.6
Aktionen und Checks auf der Android-App aufnehmen
16.7
Android Hilfsprozeduren
8.0+
17
iOS-Anwendungen testen
17.1
Voraussetzungen und bekannte Einschränkungen
17.1.1
Voraussetzungen
17.1.2
Bekannte Einschränkungen
17.2
Xcode, Simulatoren und IDB installieren
17.2.1
Xcode installieren
17.2.2
iOS Development Bridge (idb) installieren
17.3
Auf einem echten iOS-Gerät testen
17.4
QF-Test Vorbereitung Sequenz für iOS Tests
17.5
Aufnamen und Checks bei iOS
17.6
iOS Hilfsprozeduren
18
PDF-Dokumente testen
18.1
PDF-Client
18.1.1
PDF-Client starten
18.1.2
Das Fenster des PDF-Client
18.2
PDF Events
18.2.1
PDF-Dokument öffnen
18.2.2
Seite wechseln
18.3
Checks 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.4
PDF Komponententypen
18.5
PDF Komponentenerkennung
9.0.0+
19
Barrierefreiheit testen
19.1
Einstieg
19.2
Überblick über alle Barrierefreiheitstests
19.2.1
Axe-Checks mit QF-Test
19.2.2
Farbkontrast-Check für einfache Grafikobjekte
19.2.3
Überprüfung der Sichtbarkeit des Fokus
19.2.4
Überprüfung des Sprachattributes
19.2.5
Die "impact"-Bewertung der Barrierefreiheitstests
19.3
A11y-Protokolle und -Reports
19.3.1
Arbeiten mit dem Protokoll
19.3.2
Hinweise zur Reportgenerierung
20
Webswing und JPro: Java-Anwendungen im Browser testen
20.1
Technische Konzepte von JiB für Webswing und JPro
21
Electron-Anwendungen testen
21.1
Electron Client starten
21.1.1
Electron Einstellungen im Schnellstart-Assistenten
21.2
Electron spezifische Funktionalität in QF-Test
21.2.1
Native Menüs
21.2.2
Native Dialoge
21.2.3
Erweiterte Javascript-API
21.3
Technische Anmerkungen zum Testen von Electron-Anwendungen im WebDriver-Verbindungsmodus
22
WebAPI – Webdienste testen
22.1
Struktur der WebAPI-Tests
22.2
Request-Anmeldedaten
22.2.1
Alle SSL-Zertifikate akzeptieren
22.3
Request-Einstellungen
22.3.1
Cookies
22.3.2
Proxy
22.4
End-to-End-Szenarien – Geschäftsanwendungslogik
22.5
Generierung von Single-Request-API-Aufrufen
22.6
HTML-Report
22.7
Postman-Migration
22.8
HTTP-Standards und Webdienste
22.8.1
Web-API-Inspektor
22.9
Die Knoten Server-HTTP-Request und Browser-HTTP-Request (Legacy)
23
Datengetriebenes Testen
23.1
Beispiele für Datentreiber
23.2
Anwendung von Datentreibern
23.3
Weitere Beispiele für Datentreiber
23.4
Fortgeschrittene Anwendung
24
Reports und Testdokumentation
24.1
Reports
24.1.1
Reportkonzepte
24.1.2
Inhalt von Reports
24.1.3
Reports erstellen
24.1.4
Individualisierung von Reports
24.2
Testdoc-Dokumentation für Testfallsätze und Testfälle
24.3
Pkgdoc-Dokumentation für Packages, Prozeduren und Abhängigkeiten
25
Testausführung
25.1
Testausführung im Batchmodus
25.1.1
Verwenden der Kommandozeile
25.1.2
Windows Befehlsskript
25.1.3
Groovy
25.2
Testausführung im Daemonmodus
25.2.1
Starten des Daemons
25.2.2
Steuern des Daemons über die QF-Test Kommandozeile
25.2.3
Steuern des Daemons über die Daemon API
25.3
Erneute Ausführung von Knoten (Rerun)
25.3.1
Erneute Ausführung aus dem Protokoll
25.3.2
Fehlerhafte Knoten sofort wiederholen
26
Verteilte Entwicklung von Tests
26.1
Der Aufruf einer Prozedur in einer anderen Testsuite
26.2
Die Verwaltung von Komponenten
26.3
Verschmelzen von Testsuiten
26.3.1
Importieren von Komponenten
26.3.2
Importieren von Prozeduren und Testfällen
26.4
Verteilte Entwicklung von Tests
26.5
Statische Validierung von Testsuiten
26.5.1
Ungültige Referenzen vermeiden
26.5.2
Ungenutzte Prozeduren finden
27
Automatisierte Erstellung von Basisprozeduren
27.1
Einführung
27.2
Die Verwendung vom Procedure Builder
27.3
Konfiguration des Procedure Builder
27.3.1
Die Procedure Builder Definitionsdatei
28
Anbindung an Testmanagementtools
28.1
HP ALM - Quality Center
28.1.1
Einführung
28.1.2
Schritt für Schritt Anleitung
28.1.3
Fehlersuche
28.2
Imbus TestBench
28.2.1
Einführung
28.2.2
Generieren von QF-Test Vorlage-Testsuiten aus den Interaktionen
28.2.3
Importieren der Resultate
28.3
QMetry
28.3.1
Einführung
28.3.2
Demokonfiguration Beispiel
28.4
Klaros
28.4.1
Einführung
28.4.2
Importieren von QF-Test Ergebnissen in Klaros
28.5
TestLink
28.5.1
Einführung
28.5.2
Generieren von QF-Test Vorlagen-Testsuiten aus den Testfällen
28.5.3
Ausführung der Testfälle
28.5.4
Importieren der QF-Test Resultate nach TestLink
29
Integration mit Entwickler-Tools
29.1
Eclipse
29.1.1
Installation
29.1.2
Konfiguration
29.2
Ant
29.3
Maven
29.4
Jenkins
29.4.1
Jenkins installieren und starten
29.4.2
Voraussetzungen für GUI-Tests
29.4.3
Installation des QF-Test Plugins
7.0+
29.5
JUnit 5 Jupiter
29.6
TeamCity CI
6.0+
30
Integration mit Robot Framework
30.1
Einführung
30.2
Voraussetzungen und Installation
30.3
Erste Schritte
30.4
Nutzung der Bibliothek
30.5
Erstellung eigener Keywords
31
Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test
31.1
Einführung
31.2
Einfaches Keyword-Driven Testing mit QF-Test
31.2.1
Fachliche Prozeduren
31.2.2
Atomare Prozeduren
31.3
Keyword-Driven Testing mit dynamischen/generischen Komponenten
31.4
Behavior-Driven Testing (BDT)
31.4.1
Behavior-Driven Testing (BDT) mit technischer Beschreibung
31.4.2
Behavior-Driven Testing (BDT) mit fachlicher Beschreibung
31.5
Szenariodateien
31.6
Eigene Testbeschreibungen
31.7
Anpassung an Ihre Software
32
Verwendung von QF-Test in Docker Umgebungen
32.1
Was ist Docker?
32.2
QF-Test Docker Images
33
Durchführung von Lasttests mit QF-Test
33.1
Hintergrund und Vergleich mit anderen Techniken
33.2
Lasttests mit QF-Test
33.2.1
Bereitstellung der Testsysteme
33.2.2
Konzeption des Testlaufes
33.2.3
Vorbereiten der Testsysteme für den Testlauf
33.2.4
Testausführung
33.2.5
Testauswertung
33.3
Spezielles zur Testausführung
33.3.1
Synchronisierung
33.3.2
Messen von End-to-End Zeiten
33.4
Troubleshooting
33.5
Web-Lasttests ohne sichtbare Browser-Fenster
34
Ausführung manueller Tests mit QF-Test
34.1
Einführung
34.2
Schritt-für-Schritt Anleitung
34.3
Aufbau der Excel-Datei
34.4
Die Ausführungstestsuite
34.5
Die möglichen Zustände
II
Best Practices
35
Einführung
36
Wie beginnt man in einem Testprojekt?
36.1
Infrastruktur und Testumgebung
36.2
Speicherorte
36.2.1
Netzwerkinstallation
36.3
Wiedererkennung von Komponenten
37
Organisation von Testsuiten
37.1
Organisation von Tests
37.2
Modularisierung
37.3
Parametrisierung
37.4
Arbeiten in mehreren Testsuiten
37.5
Rollen und Zuständigkeiten
37.6
Komponenten in unterschiedlichen Ebenen verwalten
37.7
Umgekehrte Includes
38
Effiziente Arbeitstechniken
38.1
Arbeiten mit QF-Test Projekten
38.2
Erstellung von Testsuiten
38.3
Die Standardbibliothek qfs.qft
38.4
Ablage von Komponenten
38.5
Erweitern von Testsuiten
38.6
Arbeiten mit dem Skripteditor
39
Aufsetzen von Testsystemen
39.1
Einrichten von Prozessen und Services via Aufgabenplaner
39.2
Fernzugriff auf Windowsrechner
39.3
Automatische Anmeldung auf Windowsrechnern
39.4
Testausführung unter Linux
40
Testausführung
40.1
Abhängigkeiten
40.2
Wartezeiten und Verzögerungen
40.3
Was soll man tun, wenn das Protokoll einen Fehler enthält?
III
Referenzteil
41
Einstellungen
41.1
Allgemeine Optionen
41.1.1
Einstellungen für Projekte
7.0+
41.1.2
Speichern von Testsuiten
41.1.3
Darstellung
41.1.4
Editieren
41.1.5
Lesezeichen
41.1.6
Externe Programme
41.1.7
Sicherungskopien
41.1.8
Bibliothek
41.1.9
Lizenz
41.1.10
Updates
41.2
Aufnahme
41.2.1
Folgende Events aufnehmen
41.2.2
Eventsequenzen packen
41.2.3
Komponenten
41.2.4
Unterelemente
6.0+
41.2.5
Aufnahmefenster
41.2.6
Prozeduren
41.3
Wiedergabe
41.3.1
Client Optionen
41.3.2
Terminal Optionen
41.3.3
Events
41.3.4
Wiedererkennung
41.3.5
Verzögerungen
41.3.6
Automatische Timeouts
41.3.7
Rückwärtskompatibilität
7.0+
41.4
SmartID und qfs:label
6.0+
41.5
Android
8.0+
41.6
iOS
41.7
Web-Optionen
41.7.1
HTTP-Requests
41.7.2
Rückwärtskompatibilität
41.8
SWT-Optionen
41.9
UI-Inspektor-Optionen
10.0+
41.10
Künstliche Intelligenz
41.11
Debugger-Optionen
41.12
Protokoll
41.12.1
Allgemeine Protokoll-Optionen
41.12.2
Optionen zur Aufteilung von Protokollen
41.12.3
Optionen für den Inhalt von Protokollen
41.12.4
Optionen für die Bildschirmabbilder in Protokollen
41.12.5
Optionen für Verweise zwischen Verzeichnissen mit Testsuiten
41.13
Variablen
41.14
Nur zur Laufzeit
42
Bestandteile einer Testsuite
42.1
Die Testsuite und ihre Struktur
42.1.1
Testsuite
42.2
Test- und Sequenz-Knoten
42.2.1
Testfall
42.2.2
Testfallsatz
42.2.3
Testaufruf
42.2.4
Sequenz
42.2.5
Testschritt
42.2.6
Sequenz mit Zeitlimit
42.2.7
Extrasequenzen
42.3
Abhängigkeiten
42.3.1
Abhängigkeit
42.3.2
Bezug auf Abhängigkeit
42.3.3
Vorbereitung
42.3.4
Aufräumen
42.3.5
Fehlerbehandlung
42.4
Datentreiber
42.4.1
Datentreiber
42.4.2
Datentabelle
42.4.3
Datenbank
42.4.4
Excel-Datei
42.4.5
CSV-Datei
42.4.6
Datenschleife
42.5
Prozeduren
42.5.1
Prozedur
42.5.2
Prozeduraufruf
42.5.3
Return
42.5.4
Package
42.5.5
Prozeduren
42.6
Ablaufsteuerung
42.6.1
Schleife
42.6.2
While
42.6.3
Break
42.6.4
If
42.6.5
Elseif
42.6.6
Else
42.6.7
Try
42.6.8
Catch
42.6.9
Finally
42.6.10
Throw
42.6.11
Rethrow
42.6.12
Server-Skript
42.6.13
SUT-Skript
42.7
Prozesse
42.7.1
Java-SUT-Client starten
42.7.2
SUT-Client starten
42.7.3
Programm starten
42.7.4
Shell-Kommando ausführen
42.7.5
Web-Engine starten
42.7.6
PDF-Client starten
42.7.7
Windows-Anwendung starten
42.7.8
Windows-Anwendung verbinden
42.7.9
Android-Emulator starten
42.7.10
Mit Android-Gerät verbinden
42.7.11
Mit iOS-Gerät verbinden
42.7.12
Warten auf Client
42.7.13
Warten auf Mobil-Gerät
42.7.14
Browser-Fenster öffnen
42.7.15
Mobile-App starten
42.7.16
Programm beenden
42.7.17
Warten auf Programmende
42.8
Events
42.8.1
Mausevent
42.8.2
Tastaturevent
42.8.3
Texteingabe
42.8.4
Fensterevent
42.8.5
Komponentenevent
42.8.6
Auswahl
42.8.7
Dateiauswahl
42.9
Checks
10.0+
42.9.1
Check Text
42.9.2
Check Text mit KI
42.9.3
Check Boolean
42.9.4
Check Elemente
42.9.5
Check selektierbare Elemente
42.9.6
Check Abbild
42.9.7
Check Geometrie
42.10
Abfragen
42.10.1
Text auslesen
42.10.2
Index auslesen
42.10.3
Geometrie auslesen
42.10.4
Abbild auslesen
42.11
WebAPI
42.11.1
Web-Request
42.11.2
Pre-Request-Handler
42.11.3
Post-Request-Handler
42.11.4
Request-Anmeldedaten
42.11.5
Request-Einstellungen
42.12
Verschiedenes
42.12.1
Kommentar
42.12.2
Fehler
42.12.3
Warnung
42.12.4
Nachricht
42.12.5
Variable setzen
42.12.6
Abbild setzen
42.12.7
Warten auf Komponente
42.12.8
Warten auf Laden des Dokuments
42.12.9
Warten auf Ende des Downloads
42.12.10
Ressourcen laden
42.12.11
Properties laden
42.12.12
Server-HTTP-Request
42.12.13
Browser-HTTP-Request
42.12.14
Unit-Test
42.12.15
CustomWebResolver installieren
42.12.16
Prüfung der Barrierefreiheit
42.13
Fenster, Komponenten und Elemente
42.13.1
Fenster
42.13.2
Webseite
42.13.3
Komponente
42.13.4
Element
42.13.5
Fenstergruppe
42.13.6
Komponentengruppe
42.13.7
Fenster und Komponenten
42.14
Historische Knoten
42.14.1
Test
42.14.2
Prozedur installCustomWebResolver
43
Exceptions
IV
Technische Referenz
44
Kommandozeilenargumente und Rückgabewerte
44.1
Aufrufsyntax
44.2
Kommandozeilenargumente
44.2.1
Argumente für das Startskript
44.2.2
Argumente für die Java-VM
44.2.3
Argumente für QF-Test
44.2.4
Platzhalter im Dateinamen für Protokoll und Report
44.3
Rückgabewerte von QF-Test
45
GUI-Engines
46
Starten einer Applikation aus QF-Test
46.1
Verschiedene Methoden zum Starten des SUT
46.1.1
Starten des SUT aus einem Skript oder ausführbaren Programm
46.1.2
Starten des SUT mittels Java WebStart
46.1.3
Starten des SUT mittels java -jar <Archiv>
46.1.4
Starten des SUT mittels java -classpath <Pfad> <Startklasse>
46.1.5
Starten einer Web-Anwendung im Browser
46.1.6
Öffnen eines PDF-Dokuments
47
JRE und SWT-Instrumentierung
47.1
Deinstrumentieren eines JRE
47.2
SWT-Instrumentierung
47.2.1
Vorbereitung einer manuellen SWT-Instrumentierung
47.2.2
Manuelle SWT-Instrumentierung für Eclipse basierte Anwendungen
47.2.3
Manuelle Instrumentierung für eigenständige SWT-Anwendungen
48
Technisches zu Komponenten
48.1
Gewichtung der Wiedererkennungsmerkmale bei aufgenommenen Komponenten
48.2
Generierung der QF-Test ID der Komponente
48.3
SmartIDs - allgemeine Syntax
48.4
SmartIDs: Sonderzeichen
48.5
Android - Liste der trivialen Komponentenbezeichner
49
Technische Details zu verschiedenen Themen
49.1
Drag&Drop
49.2
Timing
49.3
Reguläre Ausdrücke - Regexps
49.4
Zeilenumbrüche in Linux und Windows
49.5
Schützen von Sonderzeichen (quoting)
49.6
Auflösen von inkludierten Dateien
50
Fortgeschrittenes Skripting (Jython, Groovy und JavaScript)
50.1
Fortgeschrittene Skript-Konzepte
50.1.1
Pfad für das Laden der Module
50.1.2
Das Plugin-Verzeichnis
50.1.3
Initialisierung (Jython)
50.1.4
Die Namespace Umgebung für Skript-Knoten (Jython)
50.1.5
Exceptions
50.1.6
Debuggen von Skripten (Jython)
50.2
Das rc-Modul: Die API des Runcontexts
50.2.1
Der Parameter expand
10.0+
50.3
Das ai-Modul
50.4
Das qf-Modul
50.5
Die Image-API
50.5.1
Die ImageWrapper-Klasse
50.6
WebAPI Skripting-API
10.0+
50.6.1
QF-Test WebAPI (qw)
10.0+
50.6.2
WebRequest-Klasse (qw.request)
10.0+
50.6.3
WebResponse-API (qw.response)
50.7
Das JSON-Modul
50.8
Das Assertions-Modul: Sprechende Prüfausdrücke
50.8.1
Motivation
50.8.2
API-Dokumentation
50.8.3
Ergebnisbehandlung
51
Web
51.1
Verbesserte Komponentenerkennung mittels CustomWebResolver
51.1.1
Generelle Konfigurationsmöglichkeiten
51.1.2
Der CustomWebResolver installieren Knoten
51.1.3
CustomWebResolver – Tabelle
51.1.4
CustomWebResolver – Baum (Tree)
51.1.5
CustomWebResolver – TreeTable
51.1.6
CustomWebResolver – Liste
51.1.7
CustomWebResolver – Combobox
51.1.8
CustomWebResolver – TabPanel und Accordion
51.1.9
Beispiel für den "CarConfigurator Web"
51.2
Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken
51.2.1
Konzepte für Webframework-Resolver
51.2.2
Eindeutige Bezeichner setzen
51.3
Browser Verbindungsmodus
51.3.1
QF-Driver Verbindungsmodus
5.3+
51.3.2
CDP-Driver Verbindungsmodus
51.3.3
WebDriver Verbindungsmodus
51.3.4
Bekannte Einschränkungen des WebDriver Modus
51.4
Web – Pseudoattribute
51.5
Zugriff auf unsichtbare Felder einer Webseite
51.6
WebDriver mit Safari
52
Konfiguration des "Prüfung der Barrierefreiheit"-Knotens
52.1
YAML-Syntax des Prüfung der Barrierefreiheit-Knotens
52.2
Oberkategorie Rules to Check
52.2.1
Generische Parameter der Barrierefreiheitstests
52.2.2
Rules to Check – axe
52.2.3
Rules to Check – color-contrast-simple-graphics
52.2.4
Rules to Check – focus-visible
52.2.5
Rules to Check – language-lang-value
52.3
Oberkategorie Issues to Ignore
52.3.1
Issues to Ignore - URL
52.3.2
Issues to Ignore - Errors und Warnings
53
Steuern und Testen von nativen Windows-Anwendungen - ohne Verwendung der QF-Test win Engine
53.1
Vorgehensweise
53.1.1
Start der Anwendung
53.1.2
Auflistung aller GUI-Elemente eines Fensters
53.1.3
Informationen zu einzelnen GUI-Elementen
53.1.4
Zugriff auf GUI Elemente
53.1.5
Ausführen von Aktionen auf GUI-Elementen
53.2
Beispiel
53.2.1
Start der Anwendung
53.2.2
Übersicht über die GUI-Elemente der Anwendung
54
Steuern und Testen von nativen MacOS-Anwendungen
54.1
Vorgehensweise
54.1.1
Start der Anwendung
54.1.2
Auflistung aller GUI-Elemente eines Fensters
54.1.3
Informationen zu einzelnen GUI-Elementen
54.1.4
Zugriff auf GUI Elemente
54.1.5
Ausführen von Aktionen auf GUI-Elementen
55
APIs für Erweiterungen
55.1
Das resolvers-Modul
55.1.1
Verwendung
55.1.2
Implementierung
55.1.3
addResolver
55.1.4
removeResolver
55.1.5
listNames
55.1.6
Zugriff auf die beste Beschriftung
55.1.7
Das NameResolver Interface
55.1.8
Das GenericClassNameResolver Interface
55.1.9
Das ClassNameResolver Interface
55.1.10
Das FeatureResolver Interface
55.1.11
Das ExtraFeatureResolver Interface
55.1.12
Das ItemNameResolver Interface
55.1.13
Das ItemValueResolver Interface
55.1.14
Das TreeTableResolver Interface
55.1.15
Das InterestingParentResolver Interface
55.1.16
Das TooltipResolver Interface
55.1.17
Das IdResolver Interface
55.1.18
Das EnabledResolver Interface
55.1.19
Das VisibilityResolver Interface
55.1.20
Das MainTextResolver Interface
55.1.21
Das WholeTextResolver Interface
55.1.22
Der BusyPaneResolver Interfaces
55.1.23
Der GlassPaneResolver Interfaces
8.0+
55.1.24
Das TreeIndentationResolver Interface
55.1.25
Das EventSynchronizer Interface
55.1.26
Das BusyApplicationDetector Interface
55.1.27
Matcher
55.1.28
Externe Implementierung
55.2
Die ResolverRegistry
55.3
Implementierung eigener Unterelemente mit dem ItemResolver Interface
55.3.1
ItemResolver Konzepte
55.3.2
Das ItemResolver Interface
55.3.3
Die Klasse SubItemIndex
55.3.4
Die ItemRegistry
55.3.5
Standard Repräsentation von Unterelementen
55.4
Implementierung eigener Checks mit dem Checker Interface
55.4.1
Das Checker Interface
55.4.2
Die Pair Klasse
55.4.3
Das CheckType Interface und seine Implementierung DefaultCheckType
55.4.4
Die Klasse CheckDataType
55.4.5
Die Klasse CheckData und ihre Unterklassen
55.4.6
Die CheckerRegistry
55.4.7
Beispiel für einen Checker
55.5
Das Eclipse Graphical Editing Framework (GEF)
55.5.1
Aufnahme von GEF Elementen
55.5.2
Implementierung eines ItemNameResolver2 für GEF
55.5.3
Implementierung eines ItemValueResolver2 für GEF
55.6
Listener für den aktuellen Testlauf
55.6.1
Das TestRunListener Interface
55.6.2
Die Klasse TestRunEvent
55.6.3
Die Klasse TestSuiteNode
55.7
ResetListener
55.8
DOM Prozessoren
55.8.1
Das DOMProcessor Interface
55.8.2
Die DOMProcessorRegistry
55.8.3
Fehlerbehandlung
55.9
Image-API Erweiterungen
55.9.1
Die ImageRep Klasse
55.9.2
Das ImageComparator Interface
55.9.3
Die ImageRepDrawer Klasse
55.10
Pseudo DOM API für Web-Anwendungen
55.10.1
Die abstrakte Klasse Node
55.10.2
Die Klasse DocumentNode
55.10.3
Die Klasse FrameNode
55.10.4
Die Klasse DomNode
55.10.5
Die Klasse DialogNode
55.11
WebDriverConnection SUT API
55.11.1
Die WebDriverConnection Klasse
5.0+
55.12
Windows Control API
55.12.1
Die WinControl Klasse
56
Daemon-Modus
56.1
Daemon Konzepte
56.2
Daemon API
56.2.1
Der DaemonLocator
56.2.2
Der Daemon
56.2.3
Der TestRunDaemon
56.2.4
Der DaemonRunContext
56.2.5
Der DaemonTestRunListener
56.3
Absicherung des QF-Test Daemon
56.3.1
Erstellen einer eigenen Keystore-Datei
56.3.2
Festlegen der Keystore-Datei
56.3.3
Festlegen der Keystore-Datei auf der Client-Seite
57
Die Procedure Builder Definitionsdatei
57.1
Platzhalter
57.1.1
Rückgriffswerte für Platzhalter
57.2
Spezielle Bedingungen für die Definition von Packages und Prozeduren
57.3
Auswertung der Komponentenhierarchie
57.4
Details zu @CONDITION
58
Der ManualStepDialog
58.1
Die ManualStepDialog API
59
Details zu Knotenkonvertierungen
59.1
Einführung
59.2
Konvertierungen mit Typwechseln
59.3
Zusätzliche Konvertierungen unter Extrasequenzen
59.3.1
Konvertierungen ohne Seiteneffekte
59.3.2
Konvertierungen mit Seiteneffekten
60
Details des Algorithmus zum Bildvergleich
60.1
Einführung
60.2
Beschreibung der Algorithmen
60.2.1
Klassischer Bildvergleich
60.2.2
Pixelbasierter Vergleich
60.2.3
Pixelbasierte Ähnlichkeitsanalyse
60.2.4
Blockbildung mit Vergleich
60.2.5
Blockbildung mit Ähnlichkeitsanalyse
60.2.6
Häufigkeitsanalyse mittels Histogramm
60.2.7
Bildanalyse mittels Diskreter Kosinustransformation
60.2.8
Blockbildung zur Bildanalyse mittels Diskreter Kosinustransformation
60.2.9
Bilinearer Filter
60.3
Beschreibung der speziellen Funktionen
60.3.1
Bild-in-Bild Suche
61
Resultatslisten
61.1
Einführung
61.2
Spezielle Listenaktionen
61.2.1
Alle Listen
61.2.2
Ersetzen
61.2.3
Fehlerliste
61.3
Resultate exportieren und laden
62
Generische Klassen
62.1
Accordion
62.2
BusyPane
62.3
Button
62.4
Calendar
62.5
CheckBox
62.6
Closer
62.7
ColorPicker
62.8
ComboBox
62.9
Divider
62.10
Expander
62.11
FileChooser
62.12
Graphics
62.13
Icon
62.14
Indicator
62.15
Item
62.16
Label
62.17
Link
62.18
List
62.19
LoadingComponent
62.20
Maximizer
62.21
Menu
62.22
MenuItem
62.23
Minimizer
62.24
ModalOverlay
62.25
Panel
62.26
Popup
62.27
ProgressBar
62.28
RadioButton
62.29
Restore
62.30
ScrollBar
62.31
Separator
62.32
Sizer
62.33
Slider
62.34
Spacer
62.35
Spinner
62.36
SplitPanel
62.37
Table
62.38
TableCell
62.39
TableFooter
62.40
TableHeader
62.41
TableHeaderCell
62.42
TableRow
62.43
TabPanel
62.44
Text
62.45
TextArea
62.46
TextField
62.47
Thumb
62.48
ToggleButton
62.49
ToolBar
62.50
ToolBarItem
62.51
ToolTip
62.52
Tree
62.53
TreeNode
62.54
TreeTable
62.55
Window
63
Doctags
63.1
Doctags für Reporting und Dokumentation
63.1.1
@noreport Doctag
63.2
Doctags für Robot Framework
63.3
Doctags für die Ausführung
63.4
Doctags für das Editieren
63.5
Doctags für den Prozedurgenerator
A
FAQ - Häufig gestellte Fragen
B
Release Notes
B.1
QF-Test Version 10.0
B.1.1
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.1.2
Version 10.0.0 - 9. Dezember 2025
B.2
QF-Test Version 9.0
B.2.1
Version 9.0.6 - 10. September 2025
B.2.2
Version 9.0.5 - 30. Juli 2025
B.2.3
Version 9.0.4 - 11. Juni 2025
B.2.4
Version 9.0.3 - 29. April 2025
B.2.5
Version 9.0.2 - 9. April 2025
B.2.6
Version 9.0.1 - 12. März 2025
B.2.7
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.2.8
Version 9.0.0 - 20. Februar 2025
B.3
QF-Test Version 8.0
B.3.1
Version 8.0.2 - 5. Dezember 2024
B.3.2
Version 8.0.1 - 11. September 2024
B.3.3
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.3.4
Version 8.0.0 - 8. August 2024
B.4
QF-Test Version 7.1
B.4.1
Version 7.1.5 - 16. Juli 2024
B.4.2
Version 7.1.4 - 12. Juni 2024
B.4.3
Version 7.1.3 - 24. April 2024
B.4.4
Version 7.1.2 - 14. März 2024
B.4.5
Version 7.1.1 - 27. Februar, 2024
B.4.6
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.4.7
Version 7.1.0 - 20. Februar 2024
B.5
QF-Test Version 7.0
B.5.1
Version 7.0.8 - 5. Dezember 2023
B.5.2
Version 7.0.7 - 11. Oktober 2023
B.5.3
Version 7.0.6 - 29. September 2023
B.5.4
Version 7.0.5 - 20. September 2023
B.5.5
Version 7.0.4 - 30. August 2023
B.5.6
Version 7.0.3 - 13. Juli 2023
B.5.7
Version 7.0.2 - 22. Juni 2023
B.5.8
Version 7.0.1 - 31. Mai 2023
B.5.9
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.5.10
Version 7.0.0 - 27. April 2023
B.6
QF-Test Version 6.0
B.6.1
Version 6.0.5 - 15. März 2023
B.6.2
Version 6.0.4 - 29. November 2022
B.6.3
Version 6.0.3 - 6. September 2022
B.6.4
Version 6.0.2 - 20. Juli 2022
B.6.5
Version 6.0.1 - 9. Juni 2022
B.6.6
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.6.7
Version 6.0.0 - 17. Mai 2022
C
Tastaturkürzel
C.1
Navigation und Editieren
C.2
UI-Inspektor
C.3
Aufnahme- und Wiedergabefunktionen
C.4
Tastaturhelfer
D
Glossar
E
Datenschutz
E.1
Serverdaten für Versionsabfrage
E.2
Direkter Versand von Support-Anfragen aus QF-Test heraus
E.3
Kontext-Informationen für Online-Handbuch
E.4
Anfragedaten beim Abruf von WebDriver-Dateien
E.5
Client-Daten in QF-Test Protokolldateien
F
Benutzte Software
Abbildungsverzeichnis
Tabellenverzeichnis