Inhaltsverzeichnis

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