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
2.3Erweiterte Bearbeitungsmöglichkeiten
2.3.1Suchen
2.3.2Ersetzen
2.3.3Kompliziertere Such- und Ersetzungsvorgänge
2.3.4Mehrere Ansichten
2.3.5Toolbar-Buttons ausblenden
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 – Beispiel
6.6Datentypen von Variablen
6.6.1JSON-Daten
6.7Externe Daten
6.8Spezielle Gruppen
6.9Immediate und Lazy Binding
7
Problemanalyse und Debugging
7.1Das Protokoll
7.1.1Fehlerzustände
7.1.2Navigation im Protokoll
7.1.3Laufzeitverhalten
7.1.4Rückgabewerte anzeigen
7.1.5Werte von fehlgeschlagenen Checks als gültig akzeptieren
7.1.6Geteilte Protokolle
7.1.7Protokoll-Optionen
7.1.8Eine Testsuite aus dem Protokoll erstellen
7.1.9Protokolle zusammenführen
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
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.4End-to-End-Szenarien – Geschäftsanwendungslogik
22.5Generierung von Single-Request-API-Aufrufen
22.6HTML-Report
22.7Postman-Migration
22.8HTTP-Standards und Webdienste
22.8.1Web-API-Inspektor
22.9Die 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
Verteilte Entwicklung von Tests
26.1Der Aufruf einer Prozedur in einer anderen Testsuite
26.2Die Verwaltung von Komponenten
26.3Verschmelzen von Testsuiten
26.3.1Importieren von Komponenten
26.3.2 Importieren von Prozeduren und Testfällen
26.4Verteilte Entwicklung von Tests
26.5Statische Validierung von Testsuiten
26.5.1Ungültige Referenzen vermeiden
26.5.2Ungenutzte Prozeduren finden
27
Automatisierte Erstellung von Basisprozeduren
27.1Einführung
27.2Die Verwendung vom Procedure Builder
27.3Konfiguration des Procedure Builder
27.3.1Die Procedure Builder Definitionsdatei
28
Anbindung an Testmanagementtools
28.1HP ALM - Quality Center
28.1.1Einführung
28.1.2Schritt für Schritt Anleitung
28.1.3Fehlersuche
28.2Imbus TestBench
28.2.1Einführung
28.2.2Generieren von QF-Test Vorlage-Testsuiten aus den Interaktionen
28.2.3Importieren der Resultate
28.3QMetry
28.3.1Einführung
28.3.2Demokonfiguration Beispiel
28.4Klaros
28.4.1Einführung
28.4.2Importieren von QF-Test Ergebnissen in Klaros
28.5TestLink
28.5.1Einführung
28.5.2Generieren von QF-Test Vorlagen-Testsuiten aus den Testfällen
28.5.3Ausführung der Testfälle
28.5.4Importieren der QF-Test Resultate nach TestLink
29
Integration mit Entwickler-Tools
29.1Eclipse
29.1.1Installation
29.1.2Konfiguration
29.2Ant
29.3Maven
29.4Jenkins
29.4.1Jenkins installieren und starten
29.4.2Voraussetzungen für GUI-Tests
29.4.3Installation des QF-Test Plugins
7.0+29.5JUnit 5 Jupiter
29.6TeamCity CI
6.0+
30
Integration mit Robot Framework
30.1Einführung
30.2Voraussetzungen und Installation
30.3Erste Schritte
30.4Nutzung der Bibliothek
30.5Erstellung eigener Keywords
31
Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test
31.1Einführung
31.2Einfaches Keyword-Driven Testing mit QF-Test
31.2.1Fachliche Prozeduren
31.2.2Atomare Prozeduren
31.3Keyword-Driven Testing mit dynamischen/generischen Komponenten
31.4Behavior-Driven Testing (BDT)
31.4.1Behavior-Driven Testing (BDT) mit technischer Beschreibung
31.4.2Behavior-Driven Testing (BDT) mit fachlicher Beschreibung
31.5Szenariodateien
31.6Eigene Testbeschreibungen
31.7Anpassung an Ihre Software
32
Verwendung von QF-Test in Docker Umgebungen
32.1Was ist Docker?
32.2QF-Test Docker Images
33
Durchführung von Lasttests mit QF-Test
33.1Hintergrund und Vergleich mit anderen Techniken
33.2Lasttests mit QF-Test
33.2.1Bereitstellung der Testsysteme
33.2.2Konzeption des Testlaufes
33.2.3Vorbereiten der Testsysteme für den Testlauf
33.2.4Testausführung
33.2.5Testauswertung
33.3Spezielles zur Testausführung
33.3.1Synchronisierung
33.3.2Messen von End-to-End Zeiten
33.4Troubleshooting
33.5Web-Lasttests ohne sichtbare Browser-Fenster
34
Ausführung manueller Tests mit QF-Test
34.1Einführung
34.2Schritt-für-Schritt Anleitung
34.3Aufbau der Excel-Datei
34.4Die Ausführungstestsuite
34.5Die möglichen Zustände
II
Best Practices
35
Einführung
36
Wie beginnt man in einem Testprojekt?
36.1Infrastruktur und Testumgebung
36.2Speicherorte
36.2.1Netzwerkinstallation
36.3Wiedererkennung von Komponenten
37
Organisation von Testsuiten
37.1Organisation von Tests
37.2Modularisierung
37.3Parametrisierung
37.4Arbeiten in mehreren Testsuiten
37.5Rollen und Zuständigkeiten
37.6Komponenten in unterschiedlichen Ebenen verwalten
37.7Umgekehrte Includes
38
Effiziente Arbeitstechniken
38.1Arbeiten mit QF-Test Projekten
38.2Erstellung von Testsuiten
38.3Die Standardbibliothek qfs.qft
38.4Ablage von Komponenten
38.5Erweitern von Testsuiten
38.6Arbeiten mit dem Skripteditor
39
Aufsetzen von Testsystemen
39.1Einrichten von Prozessen und Services via Aufgabenplaner
39.2Fernzugriff auf Windowsrechner
39.3Automatische Anmeldung auf Windowsrechnern
39.4Testausführung unter Linux
40
Testausführung
40.1Abhängigkeiten
40.2Wartezeiten und Verzögerungen
40.3Was soll man tun, wenn das Protokoll einen Fehler enthält?
III
Referenzteil
41
Einstellungen
41.1Allgemeine Optionen
41.1.1Einstellungen für Projekte
7.0+41.1.2Speichern von Testsuiten
41.1.3Darstellung
41.1.4Editieren
41.1.5Lesezeichen
41.1.6Externe Programme
41.1.7Sicherungskopien
41.1.8Bibliothek
41.1.9Lizenz
41.1.10Updates
41.2Aufnahme
41.2.1Folgende Events aufnehmen
41.2.2Eventsequenzen packen
41.2.3Komponenten
41.2.4Unterelemente
6.0+41.2.5Aufnahmefenster
41.2.6Prozeduren
41.3Wiedergabe
41.3.1Client Optionen
41.3.2Terminal Optionen
41.3.3Events
41.3.4Wiedererkennung
41.3.5Verzögerungen
41.3.6Automatische Timeouts
41.3.7Rückwärtskompatibilität
7.0+41.4SmartID und qfs:label
6.0+41.5Android
8.0+41.6iOS
41.7Web-Optionen
41.7.1HTTP-Requests
41.7.2Rückwärtskompatibilität
41.8SWT-Optionen
41.9UI-Inspektor-Optionen
10.0+41.10Künstliche Intelligenz
41.11Debugger-Optionen
41.12Protokoll
41.12.1Allgemeine Protokoll-Optionen
41.12.2Optionen zur Aufteilung von Protokollen
41.12.3Optionen für den Inhalt von Protokollen
41.12.4Optionen für die Bildschirmabbilder in Protokollen
41.12.5Optionen für Verweise zwischen Verzeichnissen mit Testsuiten
41.13Variablen
41.14Nur zur Laufzeit
42
Bestandteile einer Testsuite
42.1Die Testsuite und ihre Struktur
42.1.1Testsuite
42.2Test- und Sequenz-Knoten
42.2.1Testfall
42.2.2Testfallsatz
42.2.3Testaufruf
42.2.4Sequenz
42.2.5Testschritt
42.2.6Sequenz mit Zeitlimit
42.2.7Extrasequenzen
42.3Abhängigkeiten
42.3.1Abhängigkeit
42.3.2Bezug auf Abhängigkeit
42.3.3Vorbereitung
42.3.4Aufräumen
42.3.5Fehlerbehandlung
42.4Datentreiber
42.4.1Datentreiber
42.4.2Datentabelle
42.4.3Datenbank
42.4.4Excel-Datei
42.4.5CSV-Datei
42.4.6Datenschleife
42.5Prozeduren
42.5.1Prozedur
42.5.2Prozeduraufruf
42.5.3Return
42.5.4Package
42.5.5Prozeduren
42.6Ablaufsteuerung
42.6.1Schleife
42.6.2While
42.6.3Break
42.6.4If
42.6.5Elseif
42.6.6Else
42.6.7Try
42.6.8Catch
42.6.9Finally
42.6.10Throw
42.6.11Rethrow
42.6.12Server-Skript
42.6.13SUT-Skript
42.7Prozesse
42.7.1Java-SUT-Client starten
42.7.2SUT-Client starten
42.7.3Programm starten
42.7.4Shell-Kommando ausführen
42.7.5Web-Engine starten
42.7.6PDF-Client starten
42.7.7Windows-Anwendung starten
42.7.8Windows-Anwendung verbinden
42.7.9Android-Emulator starten
42.7.10Mit Android-Gerät verbinden
42.7.11Mit iOS-Gerät verbinden
42.7.12Warten auf Client
42.7.13Warten auf Mobil-Gerät
42.7.14Browser-Fenster öffnen
42.7.15Mobile-App starten
42.7.16Programm beenden
42.7.17Warten auf Programmende
42.8Events
42.8.1Mausevent
42.8.2Tastaturevent
42.8.3Texteingabe
42.8.4Fensterevent
42.8.5Komponentenevent
42.8.6Auswahl
42.8.7Dateiauswahl
42.9Checks
10.0+42.9.1Check Text
42.9.2Check Text mit KI
42.9.3Check Boolean
42.9.4Check Elemente
42.9.5Check selektierbare Elemente
42.9.6Check Abbild
42.9.7Check Geometrie
42.10Abfragen
42.10.1Text auslesen
42.10.2Index auslesen
42.10.3Geometrie auslesen
42.10.4Abbild auslesen
42.11WebAPI
42.11.1Web-Request
42.11.2Pre-Request-Handler
42.11.3Post-Request-Handler
42.11.4Request-Anmeldedaten
42.11.5Request-Einstellungen
42.12Verschiedenes
42.12.1Kommentar
42.12.2Fehler
42.12.3Warnung
42.12.4Nachricht
42.12.5Variable setzen
42.12.6Abbild setzen
42.12.7Warten auf Komponente
42.12.8Warten auf Laden des Dokuments
42.12.9Warten auf Ende des Downloads
42.12.10Ressourcen laden
42.12.11Properties laden
42.12.12Server-HTTP-Request
42.12.13Browser-HTTP-Request
42.12.14Unit-Test
42.12.15CustomWebResolver installieren
42.12.16 Prüfung der Barrierefreiheit
42.13Fenster, Komponenten und Elemente
42.13.1Fenster
42.13.2Webseite
42.13.3Komponente
42.13.4Element
42.13.5Fenstergruppe
42.13.6Komponentengruppe
42.13.7Fenster und Komponenten
42.14Historische Knoten
42.14.1Test
42.14.2Prozedur installCustomWebResolver
43
Exceptions
IV
Technische Referenz
44
Kommandozeilenargumente und Rückgabewerte
44.1Aufrufsyntax
44.2Kommandozeilenargumente
44.2.1Argumente für das Startskript
44.2.2Argumente für die Java-VM
44.2.3Argumente für QF-Test
44.2.4Platzhalter im Dateinamen für Protokoll und Report
44.3Rückgabewerte von QF-Test
45
GUI-Engines
46
Starten einer Applikation aus QF-Test
46.1Verschiedene Methoden zum Starten des SUT
46.1.1Starten des SUT aus einem Skript oder ausführbaren Programm
46.1.2Starten 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.1Deinstrumentieren eines JRE
47.2SWT-Instrumentierung
47.2.1Vorbereitung einer manuellen SWT-Instrumentierung
47.2.2Manuelle SWT-Instrumentierung für Eclipse basierte Anwendungen
47.2.3Manuelle Instrumentierung für eigenständige SWT-Anwendungen
48
Technisches zu Komponenten
48.1Gewichtung der Wiedererkennungsmerkmale bei aufgenommenen Komponenten
48.2Generierung der QF-Test ID der Komponente
48.3SmartIDs - allgemeine Syntax
48.4SmartIDs: Sonderzeichen
48.5Android - Liste der trivialen Komponentenbezeichner
49
Technische Details zu verschiedenen Themen
49.1Drag&Drop
49.2Timing
49.3Reguläre Ausdrücke - Regexps
49.4Zeilenumbrüche in Linux und Windows
49.5Schützen von Sonderzeichen (quoting)
49.6Auflösen von inkludierten Dateien
50
Fortgeschrittenes Skripting (Jython, Groovy und JavaScript)
50.1Fortgeschrittene Skript-Konzepte
50.1.1Pfad für das Laden der Module
50.1.2Das Plugin-Verzeichnis
50.1.3Initialisierung (Jython)
50.1.4Die Namespace Umgebung für Skript-Knoten (Jython)
50.1.5Exceptions
50.1.6Debuggen von Skripten (Jython)
50.2Das rc-Modul: Die API des Runcontexts
50.2.1Der Parameter expand
10.0+50.3 Das ai-Modul
50.4Das qf-Modul
50.5Die Image-API
50.5.1Die ImageWrapper-Klasse
50.6WebAPI Skripting-API
10.0+50.6.1QF-Test WebAPI (qw)
10.0+50.6.2WebRequest-Klasse (qw.request)
10.0+50.6.3WebResponse-API (qw.response)
50.7Das JSON-Modul
50.8Das Assertions-Modul: Sprechende Prüfausdrücke
50.8.1Motivation
50.8.2API-Dokumentation
50.8.3Ergebnisbehandlung
51
Web
51.1Verbesserte Komponentenerkennung mittels CustomWebResolver
51.1.1Generelle Konfigurationsmöglichkeiten
51.1.2Der CustomWebResolver installieren Knoten
51.1.3CustomWebResolver – Tabelle
51.1.4CustomWebResolver – Baum (Tree)
51.1.5CustomWebResolver – TreeTable
51.1.6CustomWebResolver – Liste
51.1.7CustomWebResolver – Combobox
51.1.8CustomWebResolver – TabPanel und Accordion
51.1.9Beispiel für den "CarConfigurator Web"
51.2Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken
51.2.1Konzepte für Webframework-Resolver
51.2.2Eindeutige Bezeichner setzen
51.3Browser Verbindungsmodus
51.3.1QF-Driver Verbindungsmodus
5.3+51.3.2CDP-Driver Verbindungsmodus
51.3.3WebDriver Verbindungsmodus
51.3.4Bekannte Einschränkungen des WebDriver Modus
51.4Web – Pseudoattribute
51.5Zugriff auf unsichtbare Felder einer Webseite
51.6WebDriver mit Safari
52
Konfiguration des "Prüfung der Barrierefreiheit"-Knotens
52.1YAML-Syntax des Prüfung der Barrierefreiheit-Knotens
52.2Oberkategorie Rules to Check
52.2.1Generische Parameter der Barrierefreiheitstests
52.2.2Rules to Check – axe
52.2.3Rules to Check – color-contrast-simple-graphics
52.2.4Rules to Check – focus-visible
52.2.5Rules to Check – language-lang-value
52.3Oberkategorie Issues to Ignore
52.3.1Issues to Ignore - URL
52.3.2Issues to Ignore - Errors und Warnings
53
Steuern und Testen von nativen Windows-Anwendungen - ohne Verwendung der QF-Test win Engine
53.1Vorgehensweise
53.1.1Start der Anwendung
53.1.2Auflistung aller GUI-Elemente eines Fensters
53.1.3Informationen zu einzelnen GUI-Elementen
53.1.4Zugriff auf GUI Elemente
53.1.5Ausführen von Aktionen auf GUI-Elementen
53.2Beispiel
53.2.1Start der Anwendung
53.2.2Übersicht über die GUI-Elemente der Anwendung
54
Steuern und Testen von nativen MacOS-Anwendungen
54.1Vorgehensweise
54.1.1Start der Anwendung
54.1.2Auflistung aller GUI-Elemente eines Fensters
54.1.3Informationen zu einzelnen GUI-Elementen
54.1.4Zugriff auf GUI Elemente
54.1.5Ausführen von Aktionen auf GUI-Elementen
55
APIs für Erweiterungen
55.1Das resolvers-Modul
55.1.1Verwendung
55.1.2Implementierung
55.1.3addResolver
55.1.4removeResolver
55.1.5listNames
55.1.6Zugriff 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.11Das ExtraFeatureResolver Interface
55.1.12 Das ItemNameResolver Interface
55.1.13 Das ItemValueResolver Interface
55.1.14Das TreeTableResolver Interface
55.1.15Das InterestingParentResolver Interface
55.1.16 Das TooltipResolver Interface
55.1.17Das 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.27Matcher
55.1.28Externe Implementierung
55.2Die ResolverRegistry
55.3 Implementierung eigener Unterelemente mit dem ItemResolver Interface
55.3.1ItemResolver Konzepte
55.3.2Das ItemResolver Interface
55.3.3Die Klasse SubItemIndex
55.3.4Die ItemRegistry
55.3.5Standard Repräsentation von Unterelementen
55.4 Implementierung eigener Checks mit dem Checker Interface
55.4.1Das Checker Interface
55.4.2Die Pair Klasse
55.4.3 Das CheckType Interface und seine Implementierung DefaultCheckType
55.4.4Die Klasse CheckDataType
55.4.5Die Klasse CheckData und ihre Unterklassen
55.4.6Die CheckerRegistry
55.4.7Beispiel für einen Checker
55.5 Das Eclipse Graphical Editing Framework (GEF)
55.5.1Aufnahme von GEF Elementen
55.5.2Implementierung eines ItemNameResolver2 für GEF
55.5.3Implementierung eines ItemValueResolver2 für GEF
55.6Listener für den aktuellen Testlauf
55.6.1Das TestRunListener Interface
55.6.2Die Klasse TestRunEvent
55.6.3Die Klasse TestSuiteNode
55.7ResetListener
55.8DOM Prozessoren
55.8.1Das DOMProcessor Interface
55.8.2Die DOMProcessorRegistry
55.8.3Fehlerbehandlung
55.9Image-API Erweiterungen
55.9.1Die ImageRep Klasse
55.9.2Das ImageComparator Interface
55.9.3Die ImageRepDrawer Klasse
55.10Pseudo DOM API für Web-Anwendungen
55.10.1Die abstrakte Klasse Node
55.10.2Die Klasse DocumentNode
55.10.3Die Klasse FrameNode
55.10.4Die Klasse DomNode
55.10.5Die Klasse DialogNode
55.11WebDriverConnection SUT API
55.11.1Die WebDriverConnection Klasse
5.0+55.12Windows Control API
55.12.1Die WinControl Klasse
56
Daemon-Modus
56.1Daemon Konzepte
56.2Daemon API
56.2.1Der DaemonLocator
56.2.2Der Daemon
56.2.3Der TestRunDaemon
56.2.4Der DaemonRunContext
56.2.5Der DaemonTestRunListener
56.3Absicherung des QF-Test Daemon
56.3.1Erstellen einer eigenen Keystore-Datei
56.3.2Festlegen der Keystore-Datei
56.3.3Festlegen der Keystore-Datei auf der Client-Seite
57
Die Procedure Builder Definitionsdatei
57.1Platzhalter
57.1.1Rückgriffswerte für Platzhalter
57.2Spezielle Bedingungen für die Definition von Packages und Prozeduren
57.3Auswertung der Komponentenhierarchie
57.4Details zu @CONDITION
58
Der ManualStepDialog
58.1Die ManualStepDialog API
59
Details zu Knotenkonvertierungen
59.1Einführung
59.2Konvertierungen mit Typwechseln
59.3Zusätzliche Konvertierungen unter Extrasequenzen
59.3.1Konvertierungen ohne Seiteneffekte
59.3.2Konvertierungen mit Seiteneffekten
60
Details des Algorithmus zum Bildvergleich
60.1Einführung
60.2Beschreibung der Algorithmen
60.2.1Klassischer Bildvergleich
60.2.2Pixelbasierter Vergleich
60.2.3Pixelbasierte Ähnlichkeitsanalyse
60.2.4Blockbildung mit Vergleich
60.2.5Blockbildung mit Ähnlichkeitsanalyse
60.2.6Häufigkeitsanalyse mittels Histogramm
60.2.7Bildanalyse mittels Diskreter Kosinustransformation
60.2.8Blockbildung zur Bildanalyse mittels Diskreter Kosinustransformation
60.2.9Bilinearer Filter
60.3Beschreibung der speziellen Funktionen
60.3.1Bild-in-Bild Suche
61
Resultatslisten
61.1Einführung
61.2Spezielle Listenaktionen
61.2.1Alle Listen
61.2.2Ersetzen
61.2.3Fehlerliste
61.3Resultate exportieren und laden
62
Generische Klassen
62.1Accordion
62.2BusyPane
62.3Button
62.4Calendar
62.5CheckBox
62.6Closer
62.7ColorPicker
62.8ComboBox
62.9Divider
62.10Expander
62.11FileChooser
62.12Graphics
62.13Icon
62.14Indicator
62.15Item
62.16Label
62.17Link
62.18List
62.19LoadingComponent
62.20Maximizer
62.21Menu
62.22MenuItem
62.23Minimizer
62.24ModalOverlay
62.25Panel
62.26Popup
62.27ProgressBar
62.28RadioButton
62.29Restore
62.30ScrollBar
62.31Separator
62.32Sizer
62.33Slider
62.34Spacer
62.35Spinner
62.36SplitPanel
62.37Table
62.38TableCell
62.39TableFooter
62.40TableHeader
62.41TableHeaderCell
62.42TableRow
62.43TabPanel
62.44Text
62.45TextArea
62.46TextField
62.47Thumb
62.48ToggleButton
62.49ToolBar
62.50ToolBarItem
62.51ToolTip
62.52Tree
62.53TreeNode
62.54TreeTable
62.55Window
63
Doctags
63.1Doctags für Reporting und Dokumentation
63.1.1@noreport Doctag
63.2Doctags für Robot Framework
63.3Doctags für die Ausführung
63.4Doctags für das Editieren
63.5Doctags für den Prozedurgenerator
A
FAQ - Häufig gestellte Fragen
B
Release Notes
B.1QF-Test Version 10.0
B.1.1Änderungen mit möglichen Auswirkungen auf die Testausführung
B.1.2Version 10.0.0 - 9. Dezember 2025
B.2QF-Test Version 9.0
B.2.1Version 9.0.6 - 10. September 2025
B.2.2Version 9.0.5 - 30. Juli 2025
B.2.3Version 9.0.4 - 11. Juni 2025
B.2.4Version 9.0.3 - 29. April 2025
B.2.5Version 9.0.2 - 9. April 2025
B.2.6Version 9.0.1 - 12. März 2025
B.2.7Änderungen mit möglichen Auswirkungen auf die Testausführung
B.2.8Version 9.0.0 - 20. Februar 2025
B.3QF-Test Version 8.0
B.3.1Version 8.0.2 - 5. Dezember 2024
B.3.2Version 8.0.1 - 11. September 2024
B.3.3Änderungen mit möglichen Auswirkungen auf die Testausführung
B.3.4Version 8.0.0 - 8. August 2024
B.4QF-Test Version 7.1
B.4.1Version 7.1.5 - 16. Juli 2024
B.4.2Version 7.1.4 - 12. Juni 2024
B.4.3Version 7.1.3 - 24. April 2024
B.4.4Version 7.1.2 - 14. März 2024
B.4.5Version 7.1.1 - 27. Februar, 2024
B.4.6Änderungen mit möglichen Auswirkungen auf die Testausführung
B.4.7Version 7.1.0 - 20. Februar 2024
B.5QF-Test Version 7.0
B.5.1Version 7.0.8 - 5. Dezember 2023
B.5.2Version 7.0.7 - 11. Oktober 2023
B.5.3Version 7.0.6 - 29. September 2023
B.5.4Version 7.0.5 - 20. September 2023
B.5.5Version 7.0.4 - 30. August 2023
B.5.6Version 7.0.3 - 13. Juli 2023
B.5.7Version 7.0.2 - 22. Juni 2023
B.5.8Version 7.0.1 - 31. Mai 2023
B.5.9Änderungen mit möglichen Auswirkungen auf die Testausführung
B.5.10Version 7.0.0 - 27. April 2023
B.6QF-Test Version 6.0
B.6.1Version 6.0.5 - 15. März 2023
B.6.2Version 6.0.4 - 29. November 2022
B.6.3Version 6.0.3 - 6. September 2022
B.6.4Version 6.0.2 - 20. Juli 2022
B.6.5Version 6.0.1 - 9. Juni 2022
B.6.6Änderungen mit möglichen Auswirkungen auf die Testausführung
B.6.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
F
Benutzte Software
Abbildungsverzeichnis
Tabellenverzeichnis