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
11+
2.3
Die Befehlspalette
2.3.1
Suche
2.3.2
Kategoriefilter
2.4
Erweiterte Bearbeitungsmöglichkeiten
2.4.1
Suchen
2.4.2
Ersetzen
2.4.3
Kompliziertere Such- und Ersetzungsvorgänge
2.4.4
Mehrere Ansichten
2.4.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
6.5.1
Anzeige einfacher Variablen – Beispiel
6.5.2
Anzeige von Gruppenvariablen
6.6
Datentypen von Variablen
6.6.1
JSON-Daten
6.7
Externe Daten
6.8
Spezielle Gruppen
6.9
Immediate und Lazy Binding
6.10
Verschlüsselte Variablen
7
Problemanalyse und Debugging
7.1
Das Wiedergabeprotokoll
7.1.1
Fehlerzustände
7.1.2
Navigation im Wiedergabeprotokoll
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
Wiedergabeprotokolle zusammenführen
7.1.10
Schritte aus dem Protokoll in eine Testsuite kopieren
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
11+
7.3
Das Aufnahmeprotokoll
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.3.3
Timeouts und Netzwerkfehler
22.4
Body
22.4.1
multipart/form-data
22.5
End-to-End-Szenarien – Geschäftsanwendungslogik
22.6
Generierung von Single-Request-API-Aufrufen
22.7
HTML-Report
22.8
Postman-Migration
22.9
Importieren einer OpenAPI-Spezifikation
22.9.1
Was vom OpenAPI-Standard abgedeckt wird
22.9.2
Struktur der generierten Testsuite
22.9.3
CRUD-Testfälle
22.9.4
Vor dem Ausführen der generierten Testsuite
22.9.5
Weitere Hinweise und Einschränkungen
22.10
HTTP-Standards und Webdienste
22.10.1
Web-API-Inspektor
22.11
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
KI in QF-Test
26.1
Nutzen Sie Ihr eigenes KI-Modell
26.2
Einrichten von KI
26.2.1
Einrichten von CLI-Tools (Claude Code, GitHub Copilot)
26.3
KI bei der Bearbeitung
11+
26.3.1
Tests mit KI planen und erzeugen
26.3.2
Daten per KI generieren
26.4
KI bei der Testausführung
26.4.1
Check Text mit KI
26.4.2
Der KI-Anweisung-Knoten
26.4.3
Scripting mit KI
11.0+
26.5
MCP-Server
26.5.1
QF-Test MCP-Server einrichten
26.5.2
Vordefinierte MCP-Tools
26.5.3
Benutzerdefinierte MCP-Tools und Prompts erstellen
26.5.4
Sicherheitshinweise
27
Verteilte Entwicklung von Tests
27.1
Der Aufruf einer Prozedur in einer anderen Testsuite
27.2
Die Verwaltung von Komponenten
27.3
Verschmelzen von Testsuiten
27.3.1
Importieren von Komponenten
27.3.2
Importieren von Prozeduren und Testfällen
27.4
Verteilte Entwicklung von Tests
27.5
Statische Validierung von Testsuiten
27.5.1
Ungültige Referenzen vermeiden
27.5.2
Ungenutzte Prozeduren finden
11.0+
28
Aufnahme von Prozeduraufrufen oder nachträgliche Konvertierung
29
Automatisierte Erstellung von Basisprozeduren
29.1
Einführung
29.2
Die Verwendung vom Procedure Builder
29.3
Konfiguration des Procedure Builder
29.3.1
Die Procedure Builder Definitionsdatei
30
Anbindung an Testmanagementtools
10.0+
30.1
Q12-TMT
30.1.1
Integrationskonzepte
30.1.2
Testergebnisse zu TMT hochladen
10.1+
30.2
Xray
30.2.1
Integrationskonzepte
30.2.2
Testergebnisse zu Xray hochladen
30.3
HP ALM - Quality Center
30.3.1
Einführung
30.3.2
Schritt für Schritt Anleitung
30.3.3
Fehlersuche
30.4
Imbus TestBench
30.4.1
Einführung
30.4.2
Generieren von QF-Test Vorlage-Testsuiten aus den Interaktionen
30.4.3
Importieren der Resultate
30.5
QMetry
30.5.1
Einführung
30.5.2
Demokonfiguration Beispiel
30.6
TestLink
30.6.1
Einführung
30.6.2
Generieren von QF-Test Vorlagen-Testsuiten aus den Testfällen
30.6.3
Ausführung der Testfälle
30.6.4
Importieren der QF-Test Resultate nach TestLink
31
Integration mit Entwickler-Tools
31.1
Eclipse
31.1.1
Installation
31.1.2
Konfiguration
31.2
Ant
31.3
Maven
31.4
Jenkins
31.4.1
Jenkins installieren und starten
31.4.2
Voraussetzungen für GUI-Tests
31.4.3
Installation des QF-Test Plugins
7.0+
31.5
JUnit Jupiter
31.6
TeamCity CI
6.0+
32
Integration mit Robot Framework
32.1
Einführung
32.2
Voraussetzungen und Installation
32.3
Erste Schritte
32.4
Nutzung der Bibliothek
32.5
Erstellung eigener Keywords
33
Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test
33.1
Einführung
33.2
Einfaches Keyword-Driven Testing mit QF-Test
33.2.1
Fachliche Prozeduren
33.2.2
Atomare Prozeduren
33.3
Keyword-Driven Testing mit dynamischen/generischen Komponenten
33.4
Behavior-Driven Testing (BDT)
33.4.1
Behavior-Driven Testing (BDT) mit technischer Beschreibung
33.4.2
Behavior-Driven Testing (BDT) mit fachlicher Beschreibung
33.5
Szenariodateien
33.6
Eigene Testbeschreibungen
33.7
Anpassung an Ihre Software
34
Verwendung von QF-Test in Docker Umgebungen
34.1
Was ist Docker?
34.2
QF-Test Docker Images
35
Durchführung von Lasttests mit QF-Test
35.1
Hintergrund und Vergleich mit anderen Techniken
35.2
Lasttests mit QF-Test
35.2.1
Bereitstellung der Testsysteme
35.2.2
Konzeption des Testlaufes
35.2.3
Vorbereiten der Testsysteme für den Testlauf
35.2.4
Testausführung
35.2.5
Testauswertung
35.3
Spezielles zur Testausführung
35.3.1
Synchronisierung
35.3.2
Messen von End-to-End Zeiten
35.4
Troubleshooting
35.5
Web-Lasttests ohne sichtbare Browser-Fenster
36
Ausführung manueller Tests mit QF-Test
36.1
Einführung
36.2
Schritt-für-Schritt Anleitung
36.3
Aufbau der Excel-Datei
36.4
Die Ausführungstestsuite
36.5
Die möglichen Zustände
II
Best Practices
37
Einführung
38
Wie beginnt man in einem Testprojekt?
38.1
Infrastruktur und Testumgebung
38.2
Speicherorte
38.2.1
Netzwerkinstallation
38.3
Wiedererkennung von Komponenten
39
Organisation von Testsuiten
39.1
Organisation von Tests
39.2
Modularisierung
39.3
Parametrisierung
39.4
Arbeiten in mehreren Testsuiten
39.5
Rollen und Zuständigkeiten
39.6
Komponenten in unterschiedlichen Ebenen verwalten
39.7
Umgekehrte Includes
40
Effiziente Arbeitstechniken
40.1
Arbeiten mit QF-Test Projekten
40.2
Erstellung von Testsuiten
40.3
Die Standardbibliothek qfs.qft
40.4
Ablage von Komponenten
40.5
Erweitern von Testsuiten
40.6
Arbeiten mit dem Skripteditor
41
Aufsetzen von Testsystemen
41.1
Einrichten von Prozessen und Services via Aufgabenplaner
41.2
Fernzugriff auf Windowsrechner
41.3
Automatische Anmeldung auf Windowsrechnern
41.4
Testausführung unter Linux
42
Testausführung
42.1
Abhängigkeiten
42.2
Wartezeiten und Verzögerungen
42.3
Was soll man tun, wenn das Protokoll einen Fehler enthält?
III
Referenzteil
43
Einstellungen
43.1
Allgemeine Optionen
43.1.1
Einstellungen für Projekte
7.0+
43.1.2
Speichern von Testsuiten
43.1.3
Darstellung
43.1.4
Editieren
43.1.5
Lesezeichen
43.1.6
Externe Programme
43.1.7
Sicherungskopien
43.1.8
Bibliothek
43.1.9
Lizenz
43.1.10
Updates
10.1+
43.2
Optionen für Testmanagement
43.2.1
TMT-Einstellungen
43.2.2
Xray-Einstellungen
43.3
Aufnahme
43.3.1
Folgende Events aufnehmen
43.3.2
Eventsequenzen packen
43.3.3
Komponenten
43.3.4
Unterelemente
6.0+
43.3.5
Aufnahmefenster
43.3.6
Prozeduraufrufe
43.3.7
Prozeduren
43.4
Wiedergabe
43.4.1
Client Optionen
43.4.2
Terminal Optionen
43.4.3
Events
43.4.4
Wiedererkennung
43.4.5
Verzögerungen
43.4.6
Automatische Timeouts
43.4.7
Rückwärtskompatibilität
7.0+
43.5
SmartID und qfs:label
6.0+
43.6
Android
8.0+
43.7
iOS
43.8
Web-Optionen
43.8.1
HTTP-Requests
43.8.2
HTTP-Request-Knoten Standardwerte
43.8.3
Rückwärtskompatibilität
43.9
SWT-Optionen
43.10
UI-Inspektor-Optionen
43.11
Künstliche Intelligenz
10.0+
43.11.1
Allgemeine KI-Optionen
11.0+
43.11.2
MCP & Agentenfähigkeiten
11.0+
43.11.3
KI-Sicherheitsoptionen
43.12
Debugger-Optionen
43.13
Protokoll
43.13.1
Allgemeine Protokoll-Optionen
43.13.2
Optionen zur Aufteilung von Protokollen
43.13.3
Optionen für den Inhalt von Protokollen
43.13.4
Optionen für die Bildschirmabbilder in Protokollen
43.13.5
Optionen für Verweise zwischen Verzeichnissen mit Testsuiten
43.14
Variablen
43.15
Nur zur Laufzeit
44
Bestandteile einer Testsuite
44.1
Die Testsuite und ihre Struktur
44.1.1
Testsuite
44.2
Test- und Sequenz-Knoten
44.2.1
Testfall
44.2.2
Testfallsatz
44.2.3
Testaufruf
44.2.4
Sequenz
44.2.5
Testschritt
44.2.6
Sequenz mit Zeitlimit
44.2.7
Extrasequenzen
44.3
Abhängigkeiten
44.3.1
Abhängigkeit
44.3.2
Bezug auf Abhängigkeit
44.3.3
Vorbereitung
44.3.4
Aufräumen
44.3.5
Fehlerbehandlung
44.4
Datentreiber
44.4.1
Datentreiber
44.4.2
Datentabelle
44.4.3
Datenbank
44.4.4
Excel-Datei
44.4.5
CSV-Datei
44.4.6
Datenschleife
44.5
Prozeduren
44.5.1
Prozedur
44.5.2
Prozeduraufruf
44.5.3
Return
44.5.4
Package
44.5.5
Prozeduren
11+
44.5.6
Prozeduraufruf-Definition
44.6
Ablaufsteuerung
44.6.1
Schleife
44.6.2
While
44.6.3
Break
44.6.4
Continue
44.6.5
If
44.6.6
Elseif
44.6.7
Else
44.6.8
Try
44.6.9
Catch
44.6.10
Finally
44.6.11
Throw
44.6.12
Rethrow
44.6.13
Server-Skript
44.6.14
SUT-Skript
44.7
Prozesse
44.7.1
Java-SUT-Client starten
44.7.2
SUT-Client starten
44.7.3
Programm starten
44.7.4
Shell-Kommando ausführen
44.7.5
Web-Engine starten
44.7.6
PDF-Client starten
44.7.7
Windows-Anwendung starten
44.7.8
Windows-Anwendung verbinden
44.7.9
Android-Emulator starten
44.7.10
Mit Android-Gerät verbinden
44.7.11
Mit iOS-Gerät verbinden
44.7.12
Warten auf Client
44.7.13
Warten auf Mobil-Gerät
44.7.14
Browser-Fenster öffnen
44.7.15
Mobile-App starten
44.7.16
Programm beenden
44.7.17
Warten auf Programmende
44.8
Events
44.8.1
Mausevent
44.8.2
Tastaturevent
44.8.3
Texteingabe
44.8.4
Fensterevent
44.8.5
Komponentenevent
44.8.6
Auswahl
44.8.7
Dateiauswahl
44.9
Checks
10.0+
44.9.1
Check Text
44.9.2
Check Text mit KI
44.9.3
Check Boolean
44.9.4
Check Elemente
44.9.5
Check selektierbare Elemente
44.9.6
Check Abbild
44.9.7
Check Geometrie
44.10
Abfragen
44.10.1
Text auslesen
44.10.2
Index auslesen
44.10.3
Geometrie auslesen
44.10.4
Abbild auslesen
44.11
WebAPI
44.11.1
Web-Request
44.11.2
Pre-Request-Handler
44.11.3
Post-Request-Handler
44.11.4
Request-Anmeldedaten
44.11.5
Request-Einstellungen
44.12
Verschiedenes
44.12.1
Kommentar
44.12.2
Fehler
44.12.3
Warnung
44.12.4
Nachricht
44.12.5
Variable setzen
44.12.6
Abbild setzen
44.12.7
Warten auf Komponente
44.12.8
Warten auf Laden des Dokuments
44.12.9
Warten auf Ende des Downloads
44.12.10
Ressourcen laden
44.12.11
Properties laden
44.12.12
Server-HTTP-Request
44.12.13
Browser-HTTP-Request
44.12.14
Unit-Test
44.12.15
CustomWebResolver installieren
44.12.16
Prüfung der Barrierefreiheit
11+
44.12.17
KI-Anweisung
44.13
Fenster, Komponenten und Elemente
44.13.1
Fenster
44.13.2
Webseite
44.13.3
Komponente
44.13.4
Element
44.13.5
Fenstergruppe
44.13.6
Komponentengruppe
44.13.7
Fenster und Komponenten
44.14
Historische Knoten
44.14.1
Test
44.14.2
Prozedur installCustomWebResolver
45
Exceptions
IV
Technische Referenz
46
Kommandozeilenargumente und Rückgabewerte
46.1
Aufrufsyntax
46.2
Kommandozeilenargumente
46.2.1
Argumente für das Startskript
46.2.2
Argumente für die Java-VM
46.2.3
Argumente für QF-Test
46.2.4
Platzhalter im Dateinamen für Protokoll und Report
46.3
Rückgabewerte von QF-Test
47
GUI-Engines
48
Starten einer Applikation aus QF-Test
48.1
Verschiedene Methoden zum Starten des SUT
48.1.1
Starten des SUT aus einem Skript oder ausführbaren Programm
48.1.2
Starten des SUT mittels Java WebStart
48.1.3
Starten des SUT mittels java -jar <Archiv>
48.1.4
Starten des SUT mittels java -classpath <Pfad> <Startklasse>
48.1.5
Starten einer Web-Anwendung im Browser
48.1.6
Öffnen eines PDF-Dokuments
49
JRE und SWT-Instrumentierung
49.1
Deinstrumentieren eines JRE
49.2
SWT-Instrumentierung
49.2.1
Vorbereitung einer manuellen SWT-Instrumentierung
49.2.2
Manuelle SWT-Instrumentierung für Eclipse basierte Anwendungen
49.2.3
Manuelle Instrumentierung für eigenständige SWT-Anwendungen
50
Technisches zu Komponenten
50.1
Gewichtung der Wiedererkennungsmerkmale bei aufgenommenen Komponenten
50.2
Generierung der QF-Test ID der Komponente
50.3
SmartIDs - allgemeine Syntax
50.4
SmartIDs: Sonderzeichen
50.5
Android - Liste der trivialen Komponentenbezeichner
51
Technische Details zu verschiedenen Themen
51.1
Timing
51.2
Reguläre Ausdrücke - Regexps
51.3
Zeilenumbrüche in Linux und Windows
51.4
Schützen von Sonderzeichen (quoting)
51.5
Auflösen von inkludierten Dateien
52
Fortgeschrittenes Skripting (Jython, Groovy und JavaScript)
52.1
Fortgeschrittene Skript-Konzepte
52.1.1
Pfad für das Laden der Module
52.1.2
Das Plugin-Verzeichnis
52.1.3
Initialisierung (Jython)
52.1.4
Die Namespace Umgebung für Skript-Knoten (Jython)
52.1.5
Exceptions
52.1.6
Debuggen von Skripten (Jython)
52.2
Das rc-Modul: Die API des Runcontexts
52.2.1
Der Parameter expand
52.3
Das ai-Modul
52.4
Das qf-Modul
52.5
Die Image-API
52.5.1
Die ImageWrapper-Klasse
52.6
WebAPI Skripting-API
10.0+
52.6.1
QF-Test WebAPI (qw)
10.0+
52.6.2
WebRequest-Klasse (qw.request)
10.0+
52.6.3
WebResponse-API (qw.response)
52.7
Das JSON-Modul
52.8
Das excelapi-Modul
52.9
Das Assertions-Modul: Sprechende Prüfausdrücke
52.9.1
Motivation
52.9.2
API-Dokumentation
52.9.3
Ergebnisbehandlung
53
Web
53.1
Verbesserte Komponentenerkennung mittels CustomWebResolver
53.1.1
Generelle Konfigurationsmöglichkeiten
53.1.2
Der CustomWebResolver installieren Knoten
53.1.3
CustomWebResolver – Tabelle
53.1.4
CustomWebResolver – Baum (Tree)
53.1.5
CustomWebResolver – TreeTable
53.1.6
CustomWebResolver – Liste
53.1.7
CustomWebResolver – Combobox
53.1.8
CustomWebResolver – TabPanel und Accordion
53.1.9
Beispiel für den "CarConfigurator Web"
53.2
Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken
53.2.1
Konzepte für Webframework-Resolver
53.2.2
Eindeutige Bezeichner setzen
53.3
Browser Verbindungsmodus
53.3.1
QF-Driver Verbindungsmodus
5.3+
53.3.2
CDP-Driver Verbindungsmodus
53.3.3
WebDriver Verbindungsmodus
53.3.4
Bekannte Einschränkungen des WebDriver Modus
53.4
Web – Pseudoattribute
53.5
Zugriff auf unsichtbare Felder einer Webseite
53.6
WebDriver mit Safari
54
Konfiguration des "Prüfung der Barrierefreiheit"-Knotens
54.1
YAML-Syntax des Prüfung der Barrierefreiheit-Knotens
54.2
Oberkategorie Rules to Check
54.2.1
Allgemeine Parameter der Barrierefreiheitstests
54.2.2
Rules to Check – axe
54.2.3
Rules to Check – color-contrast-simple-graphics
54.2.4
Rules to Check – focus-visible
54.2.5
Rules to Check – language-lang-value
54.3
Oberkategorie Issues to Ignore
54.3.1
Issues to Ignore - URL
54.3.2
Issues to Ignore - Errors und Warnings
11.0+
55
Konfiguration des Prozeduraufruf-Definition-Knotens
55.1
Abbildung von Prozedurstrukturen
55.2
Werte im Prozeduraufruf setzen
55.2.1
Parameter im Prozeduraufruf setzen
55.2.2
Variable für Rückgabewert setzen
55.2.3
Kommentar/Doctags eintragen
55.3
Optionale Knoten
55.4
Spezialfall: nur Kommentar ergänzen, keine Umwandlung
55.5
Kriterien zur Identifizierung von Knoten
55.5.1
Knotentyp
55.5.2
Knotenattribute
55.5.3
Komponentenwerte
55.5.4
Statusangaben
55.6
Automatische Erzeugung von Prozeduraufruf-Definitionen
55.6.1
Definitionsrelevante Knoten
55.6.2
Verpflichtende und optionale Knoten
55.6.3
Auflösen von Prozeduraufrufen
55.6.4
Bedingte Strukturen
55.6.5
Priorität
55.6.6
Ersatzprozeduren für die Generierung von Definitionen verwenden
55.6.7
Doctags zum Steuern der automatischen Definitionserstellung
55.7
YAML-Syntax des Prozeduraufruf-Definition-Knotens
55.7.1
Einzeldefinition
55.7.2
priority
55.7.3
sequential group
55.7.4
choice group
55.7.5
unsorted group
55.7.6
expected nodes
55.7.7
node
55.7.8
node type
55.7.9
attributes
55.7.10
component
55.7.11
condition
55.7.12
set procedure call parameters
55.7.13
your-parameter
55.7.14
overwrite option
55.7.15
separator
55.7.16
set variable for return value
55.7.17
doctags
55.7.18
repeat/occurrences
55.8
Platzhalter
55.8.1
Platzhalter für Knotenattribute (außer für Komponentenknoten)
55.8.2
Platzhalter für Komponentenknoten
55.8.3
Platzhalter für Zustände von Komponenten im SUT
55.9
Einträge im Aufnahmeprotokoll
56
Steuern und Testen von nativen Windows-Anwendungen - ohne Verwendung der QF-Test win Engine
56.1
Vorgehensweise
56.1.1
Start der Anwendung
56.1.2
Auflistung aller GUI-Elemente eines Fensters
56.1.3
Informationen zu einzelnen GUI-Elementen
56.1.4
Zugriff auf GUI Elemente
56.1.5
Ausführen von Aktionen auf GUI-Elementen
56.2
Beispiel
56.2.1
Start der Anwendung
56.2.2
Übersicht über die GUI-Elemente der Anwendung
57
Steuern und Testen von nativen macOS-Anwendungen
57.1
Vorgehensweise
57.1.1
Start der Anwendung
57.1.2
Auflistung aller GUI-Elemente eines Fensters
57.1.3
Informationen zu einzelnen GUI-Elementen
57.1.4
Zugriff auf GUI Elemente
57.1.5
Ausführen von Aktionen auf GUI-Elementen
58
APIs für Erweiterungen
58.1
Das resolvers-Modul
58.1.1
Verwendung
58.1.2
Implementierung
58.1.3
addResolver
58.1.4
removeResolver
58.1.5
listNames
58.1.6
Zugriff auf die beste Beschriftung
58.1.7
Das NameResolver Interface
58.1.8
Das GenericClassNameResolver Interface
58.1.9
Das ClassNameResolver Interface
58.1.10
Das FeatureResolver Interface
58.1.11
Das ExtraFeatureResolver Interface
58.1.12
Das ItemNameResolver Interface
58.1.13
Das ItemValueResolver Interface
58.1.14
Das TreeTableResolver Interface
58.1.15
Das InterestingParentResolver Interface
58.1.16
Das TooltipResolver Interface
58.1.17
Das IdResolver Interface
58.1.18
Das EnabledResolver Interface
58.1.19
Das VisibilityResolver Interface
58.1.20
Das MainTextResolver Interface
58.1.21
Das WholeTextResolver Interface
58.1.22
Der BusyPaneResolver Interfaces
58.1.23
Der GlassPaneResolver Interfaces
8.0+
58.1.24
Das TreeIndentationResolver Interface
58.1.25
Das EventSynchronizer Interface
58.1.26
Das BusyApplicationDetector Interface
58.1.27
Matcher
58.1.28
Externe Implementierung
58.2
Die ResolverRegistry
58.3
Implementierung eigener Unterelemente mit dem ItemResolver Interface
58.3.1
ItemResolver Konzepte
58.3.2
Das ItemResolver Interface
58.3.3
Die Klasse SubItemIndex
58.3.4
Die ItemRegistry
58.3.5
Standard Repräsentation von Unterelementen
58.4
Implementierung eigener Checks mit dem Checker Interface
58.4.1
Das Checker Interface
58.4.2
Die Pair Klasse
58.4.3
Das CheckType Interface und seine Implementierung DefaultCheckType
58.4.4
Die Klasse CheckDataType
58.4.5
Die Klasse CheckData und ihre Unterklassen
58.4.6
Die CheckerRegistry
58.4.7
Beispiel für einen Checker
58.5
Das Eclipse Graphical Editing Framework (GEF)
58.5.1
Aufnahme von GEF Elementen
58.5.2
Implementierung eines ItemNameResolver2 für GEF
58.5.3
Implementierung eines ItemValueResolver2 für GEF
58.6
Listener für den aktuellen Testlauf
58.6.1
Das TestRunListener Interface
58.6.2
Die Klasse TestRunEvent
58.6.3
Die Klasse TestSuiteNode
58.7
ResetListener
58.8
DOM Prozessoren
58.8.1
Das DOMProcessor Interface
58.8.2
Die DOMProcessorRegistry
58.8.3
Fehlerbehandlung
58.9
Image-API Erweiterungen
58.9.1
Die ImageRep Klasse
58.9.2
Das ImageComparator Interface
58.9.3
Die ImageRepDrawer Klasse
58.10
Pseudo DOM API für Web-Anwendungen
58.10.1
Die abstrakte Klasse Node
58.10.2
Die Klasse DocumentNode
58.10.3
Die Klasse FrameNode
58.10.4
Die Klasse DomNode
58.10.5
Die Klasse DialogNode
58.11
WebDriverConnection SUT API
58.11.1
Die WebDriverConnection Klasse
5.0+
58.12
Windows Control API
58.12.1
Die WinControl Klasse
59
Daemon-Modus
59.1
Daemon Konzepte
59.2
Daemon API
59.2.1
Der DaemonLocator
59.2.2
Der Daemon
59.2.3
Der TestRunDaemon
59.2.4
Der DaemonRunContext
59.2.5
Der DaemonTestRunListener
59.3
Absicherung des QF-Test Daemon
59.3.1
Erstellen einer eigenen Keystore-Datei
59.3.2
Festlegen der Keystore-Datei
59.3.3
Festlegen der Keystore-Datei auf der Client-Seite
60
Die Procedure Builder Definitionsdatei
60.1
Platzhalter
60.1.1
Rückgriffswerte für Platzhalter
60.2
Spezielle Bedingungen für die Definition von Packages und Prozeduren
60.3
Auswertung der Komponentenhierarchie
60.4
Details zu @CONDITION
61
Der ManualStepDialog
61.1
Die ManualStepDialog API
62
Details zu Knotenkonvertierungen
62.1
Einführung
62.2
Konvertierungen mit Typwechseln
62.3
Zusätzliche Konvertierungen unter Extrasequenzen
62.3.1
Konvertierungen ohne Seiteneffekte
62.3.2
Konvertierungen mit Seiteneffekten
63
Details des Algorithmus zum Bildvergleich
63.1
Einführung
63.2
Beschreibung der Algorithmen
63.2.1
Klassischer Bildvergleich
63.2.2
Pixelbasierter Vergleich
63.2.3
Pixelbasierte Ähnlichkeitsanalyse
63.2.4
Blockbildung mit Vergleich
63.2.5
Blockbildung mit Ähnlichkeitsanalyse
63.2.6
Häufigkeitsanalyse mittels Histogramm
63.2.7
Bildanalyse mittels Diskreter Kosinustransformation
63.2.8
Blockbildung zur Bildanalyse mittels Diskreter Kosinustransformation
63.2.9
Bilinearer Filter
63.3
Beschreibung der speziellen Funktionen
63.3.1
Bild-in-Bild Suche
64
Resultatslisten
64.1
Einführung
64.2
Spezielle Listenaktionen
64.2.1
Alle Listen
64.2.2
Ersetzen
64.2.3
Fehlerliste
64.3
Resultate exportieren und laden
65
Generische Klassen
65.1
Accordion
65.2
BusyPane
65.3
Button
65.4
Calendar
65.5
CheckBox
65.6
Closer
65.7
ColorPicker
65.8
ComboBox
65.9
Divider
65.10
Expander
65.11
FileChooser
65.12
Graphics
65.13
Icon
65.14
Indicator
65.15
Item
65.16
Label
65.17
Link
65.18
List
65.19
LoadingComponent
65.20
Maximizer
65.21
Menu
65.22
MenuItem
65.23
Minimizer
65.24
ModalOverlay
65.25
Panel
65.26
Popup
65.27
ProgressBar
65.28
RadioButton
65.29
Restore
65.30
ScrollBar
65.31
Separator
65.32
Sizer
65.33
Slider
65.34
Spacer
65.35
Spinner
65.36
SplitPanel
65.37
Table
65.38
TableCell
65.39
TableFooter
65.40
TableHeader
65.41
TableHeaderCell
65.42
TableRow
65.43
TabPanel
65.44
Text
65.45
TextArea
65.46
TextField
65.47
Thumb
65.48
ToggleButton
65.49
ToolBar
65.50
ToolBarItem
65.51
ToolTip
65.52
Tree
65.53
TreeNode
65.54
TreeTable
65.55
Window
66
Doctags
66.1
Doctags für Reporting und Dokumentation
66.1.1
@noreport Doctag
66.2
Doctags für Robot Framework
66.3
Doctags für die Ausführung
66.4
Doctags für das Editieren
66.5
Doctags für den Prozedurgenerator
A
FAQ - Häufig gestellte Fragen
B
Release Notes
B.1
QF-Test Version 11.0
B.1.1
Version 11.0.0 - 29. Juli 2026
B.2
QF-Test Version 10.1
B.2.1
Version 10.1.3 - 7. Juli 2026
B.2.2
Version 10.1.2 - 23. Juni 2026
B.2.3
Version 10.1.1 - 2. Juni 2026
B.2.4
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.2.5
Version 10.1.0 - 7. Mai 2026
B.3
QF-Test Version 10.0
B.3.1
Version 10.0.3 - 11. März 2026
B.3.2
Version 10.0.2 - 15. Januar 2026
B.3.3
Version 10.0.1 - 18. Dezember 2025
B.3.4
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.3.5
Version 10.0.0 - 9. Dezember 2025
B.4
QF-Test Version 9.0
B.4.1
Version 9.0.6 - 10. September 2025
B.4.2
Version 9.0.5 - 30. Juli 2025
B.4.3
Version 9.0.4 - 11. Juni 2025
B.4.4
Version 9.0.3 - 29. April 2025
B.4.5
Version 9.0.2 - 9. April 2025
B.4.6
Version 9.0.1 - 12. März 2025
B.4.7
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.4.8
Version 9.0.0 - 20. Februar 2025
B.5
QF-Test Version 8.0
B.5.1
Version 8.0.2 - 5. Dezember 2024
B.5.2
Version 8.0.1 - 11. September 2024
B.5.3
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.5.4
Version 8.0.0 - 8. August 2024
B.6
QF-Test Version 7.1
B.6.1
Version 7.1.5 - 16. Juli 2024
B.6.2
Version 7.1.4 - 12. Juni 2024
B.6.3
Version 7.1.3 - 24. April 2024
B.6.4
Version 7.1.2 - 14. März 2024
B.6.5
Version 7.1.1 - 27. Februar, 2024
B.6.6
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.6.7
Version 7.1.0 - 20. Februar 2024
B.7
QF-Test Version 7.0
B.7.1
Version 7.0.8 - 5. Dezember 2023
B.7.2
Version 7.0.7 - 11. Oktober 2023
B.7.3
Version 7.0.6 - 29. September 2023
B.7.4
Version 7.0.5 - 20. September 2023
B.7.5
Version 7.0.4 - 30. August 2023
B.7.6
Version 7.0.3 - 13. Juli 2023
B.7.7
Version 7.0.2 - 22. Juni 2023
B.7.8
Version 7.0.1 - 31. Mai 2023
B.7.9
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.7.10
Version 7.0.0 - 27. April 2023
B.8
QF-Test Version 6.0
B.8.1
Version 6.0.5 - 15. März 2023
B.8.2
Version 6.0.4 - 29. November 2022
B.8.3
Version 6.0.3 - 6. September 2022
B.8.4
Version 6.0.2 - 20. Juli 2022
B.8.5
Version 6.0.1 - 9. Juni 2022
B.8.6
Änderungen mit möglichen Auswirkungen auf die Testausführung
B.8.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
E.6
KI-Integration und Drittanbieter-Sprachmodelle
E.7
QF-Test MCP-Server und KI-Integration
F
Benutzte Software
Abbildungsverzeichnis
Tabellenverzeichnis