Inhaltsverzeichnis

Vorwort
Hinweise zur Benutzung dieses Handbuchs
Inhaltsverzeichnis
Abbildungsverzeichnis
Tabellenverzeichnis
I
Anwenderhandbuch
1
Installation und Start
1.1Systemvoraussetzungen
1.1.1Hard- und Software
1.1.2Unterstützte Technologien
1.2Windows Installation
1.2.1Installation mit dem Windows Setup-Programm QF-Test-6.0.1.exe
1.2.2Auspacken des selbstextrahierenden Archivs QF-Test-6.0.1-sfx.exe
1.2.3Abschluss der Installation und Java Konfiguration
1.3Linux/Unix Installation
1.4macOS Installation
1.5Lizenzdatei
1.6Konfigurationsdateien
1.7Aufruf von QF-Test
1.8Firewall Sicherheitswarnung
2
Bedienung von QF-Test
2.1Die Testsuite
2.2Bearbeiten einer Testsuite
2.2.1Navigation im Baum
2.2.2Einfügemarkierung
2.2.3Knoten verschieben
2.2.4Knoten konvertieren
2.2.5Tabellen
2.2.6Packen und Entpacken
2.2.7Sortieren von Knoten
2.3Erweiterte Bearbeitungsmöglichkeiten
2.3.1Suchen
2.3.2Ersetzen
2.3.3Kompliziertere Such- und Ersetzungsvorgänge
2.3.4Mehrere Ansichten
2.3.5Toolbar-Buttons ausblenden
2.0+
3
Schnellstart Ihrer Anwendung
3.1Erzeugung der Startsequenz - Schnellstart-Assistent
3.2Ausführen der Startsequenz
3.3Wenn sich der Client nicht verbindet ...
3.4Programmausgaben und das Clients Menü
3.5 Indirektes Starten eines zweiten SUT als Kindprozess eines bereits verbundenen SUT
4
Aufnahme und Wiedergabe
4.1Aufnahme von Testsequenzen
4.2Abspielen von Tests
4.3Aufnehmen von Checks
4.4Komponenten aufnehmen
4.5HTTP Requests aufnehmen (GET/POST)
5
Komponenten
5.1Komponenten eines GUI
5.2'Komponente' Knoten versus SmartID
5.2.1Verbesserte Lesbarkeit eines Tests
5.2.2Testgesteuerte Entwicklung
5.2.3Schlüsselwort-basierende Tests
5.2.4Wiedererkennungsstabilität
5.2.5Wartbarkeit
5.2.6Performanz
5.2.7Kombination von 'Komponente' Knoten und SmartIDs
5.3Wie erreicht man eine robuste Komponentenerkennung?
5.3.1Woran erkennt man eine robuste Komponentenerkennung?
5.3.2Welche Optimierungsmöglichkeiten gibt es?
5.4Wiedererkennungskriterien
5.4.1Klasse
5.4.2Name
5.4.3Merkmal
5.4.4Weitere Merkmale
5.4.5Index
5.4.6Geometrie
5.4.7Komponentenhierarchie
5.5'Komponente' Knoten
5.6SmartID (Preview)
5.6.1Anwendungsbereiche für SmartIDs
5.6.2SmartID-Syntax für 'Klasse'
5.6.3SmartID-Syntax für 'Name'
5.6.4SmartID-Syntax für 'Merkmal'
5.6.5SmartID-Syntax für 'Weitere Merkmale'
5.6.6SmartID mit Index
5.6.7SmartID-Syntax für Komponentenhierarchien
5.6.8Aufnehmen und Abspielen von SmartIDs
5.6.9'QF-Test ID' der Komponente als SmartID
5.7Geltungsbereich(Scope) (Preview)
5.8Generische Komponenten
5.9Unterelemente: Adressierung relativ zur übergeordneten Komponente
5.9.1Adressierung mittels Index
5.9.2Adressierung mit QPath
5.9.3Adressierung mit XPath und/oder CSS-Selektoren
5.9.4Adressierung mit 'Elemente' Knoten
5.10Lösung von Problemen bei der Wiedererkennung
5.10.1Zeitliche Synchronisierung
5.10.2Wiedererkennung
5.11Bereinigung und Wartung des Komponentenbaums
5.11.1Komponentenbaum bereinigen
5.11.2'Komponenten' aktualisieren
3.1+5.12 Untersuchung von Komponenten
6
Variablen
6.1Ermittlung des Wertes einer Variablen
6.2Definition von Variablen
6.3Variablen Beispiel
6.4Daten aus der GUI auslesen
6.5Externe Daten und spezielle Gruppen
6.6Berechnungen
3.0+6.7Immediate und Lazy Binding
7
Problemanalyse und Debugging
7.1Das Protokoll
7.1.1Fehlerzustände
7.1.2Navigation im Protokoll
7.1.3Laufzeitverhalten
7.1.4Werte von fehlgeschlagenen Checks als gültig akzeptieren
3.0+7.1.5Geteilte Protokolle
7.1.6Protokoll Optionen
3.3+7.1.7Eine Testsuite aus dem Protokoll erstellen
4.1+7.1.8Protokolle zusammenführen
7.2Der Debugger
7.2.1Aktivieren des Debuggers
7.2.2Das Debuggerfenster
7.2.3Debugger Kommandos
7.2.4Breakpoints setzen und löschen
8
Aufbau und Organisation einer Testsuite
8.1Struktur der Testsuite
8.2'Testfallsatz' und 'Testfall' Knoten
2.0+8.2.1 Verwaltung von Tests mit Hilfe von 'Testfallsatz' und 'Testfall' Knoten
8.2.2Konzepte
8.2.3Variablen und besondere Attribute
8.3'Sequenz' und 'Testschritt' Knoten
8.4'Vorbereitung' und 'Aufräumen' Knoten
8.5'Prozeduren' und 'Packages'
3.1+8.5.1Lokale 'Prozeduren' und 'Packages'
3.1+8.5.2Relative 'Prozeduren'
8.5.3Einfügen von 'Prozeduraufruf' Knoten
3.1+8.5.4Parametrisieren von Knoten
3.0+8.5.5Konvertieren von 'Sequenzen' und 'Testschritte' in 'Prozeduren'
8.6'Abhängigkeit' Knoten
8.6.1Funktionsweise
8.6.2Verwendung von 'Abhängigkeiten'
8.6.3'Abhängigkeiten' - Ausführung und Stapel von Abhängigkeiten
8.6.4'Charakteristische Variablen'
8.6.5'Aufräumen erzwingen'
8.6.6'Abhängigkeiten' abbauen
8.6.7Eskalation von Fehlern
8.6.8Fehlerbehandlung und Reaktion auf unerwartetes Verhalten
8.6.9Namensräume für Abhängigkeiten
8.7Dokumentieren von Testsuiten
3.5+
9
Projekte
10
Standardbibliothek
11
Skripting
11.1Allgemeines
11.2Der Runcontext rc
11.2.1Meldungen ausgeben
11.2.2Checks durchführen
11.2.3Variablen
11.2.4Zugriff auf die GUI Komponenten des SUT
11.2.5Aufruf von 'Prozeduren'
3.1+11.2.6Setzen von Optionen
11.2.7Komponenten bei Bedarf setzen
11.3Jython Skripting
11.3.1Module
11.3.2Post-mortem Fehleranalyse von Jython Skripten
11.3.3Boolean Typ
11.3.4Jython Strings und Zeichenkodierung
11.3.5Den Namen einer Java Klasse ermitteln
11.3.6Ein komplexes Beispiel
11.4Groovy Skripting
11.4.1Groovy Packages
11.5JavaScript Skripting
11.5.1Module
11.5.2Ausgaben
11.5.3Ausführung
12
Unit Tests
12.1Java-Klassen als Quelle für Unit Tests
12.2Grundlagen der Test-Skripte
12.2.1Groovy Unit Tests
12.2.2Jython Unit Tests
12.2.3JavaScript Unit Test
12.3Injections
12.3.1Komponenten in den Unit Tests verwenden
12.3.2WebDriver-Injections
12.4Unit Tests im Report
13
Testen von Webseiten
13.1Unterstützte Browser
13.2Allgemeine Vorgehensweise
13.3Die Verbindung zum Browser
13.4Erkennung von Web-Komponenten und Toolkits
13.5Cross-Browser Tests
13.6Testen von mobilen Webseiten
13.7Web-Testen im Headless-Modus
13.8Einbindung vorhandener Selenium Web-Tests
13.9Auswahl der Browser Installation
5.0+
14
Testen nativer Windows Anwendungen
14.1Einstieg
14.2Technischer Hintergrund
14.3Start/Anbindung einer Applikation
14.4Aufnahme
14.5Komponenten
14.6Wiedergabe und Patterns
14.7Skripting
14.8Optionen
14.8.1Windows Skalierung
14.8.2Sichtbarkeit
14.8.3Verbinden zu einem Fenster einer bestimmten Klasse
14.8.4Begrenzung der Anzahl von Kind-Elementen
14.9(Aktuelle) Einschränkungen
14.10Links
6.0+
15
Testen von Android Anwendungen
15.1Voraussetzungen und bekannte Einschränkungen
15.1.1Voraussetzungen
15.1.2Bekannte Einschränkungen
15.2Emulator oder echtes Gerät
15.3Installation des Android Studios, Emulators und virtueller Geräte
15.3.1Android Studio installation
15.3.2Android Studio AVD Konfiguration
15.4Verbinden mit einem echten Android Gerät
15.5Eine QF-Test Startsequenz für Android Tests erzeugen
15.5.1Nutzung eines Android Emulators
15.5.2Nutzung eines echten Android Gerätes
15.6Aktionen und Checks auf der Android App aufnehmen
15.7Android Hilfsprozeduren
16
Testen von PDF Dokumenten
16.1PDF Client
16.1.1PDF Client starten
16.1.2Das Fenster des PDF Client
16.2PDF Events
16.2.1PDF Dokument öffnen
16.2.2Seite wechseln
16.3Checks für PDF-Komponenten
16.3.1'Check Text'
16.3.2'Check Abbild'
16.3.3'Check Font'
16.3.4'Check Font Größe'
16.4PDF Komponententypen
16.5PDF Komponentenerkennung
17
Testen von Java Desktopanwendungen im Browser mit Webswing oder JPro
17.1Technische Konzepte von JiB für Webswing und JPro
18
Testen von Electron Anwendungen
18.1Electron Client starten
18.1.1Electron Einstellungen im Schnellstart-Assistenten
18.2Electron spezifische Funktionalität in QF-Test
18.2.1Native Menüs
18.2.2Native Dialoge
18.2.3Erweiterte Javascript-API
18.3Technische Anmerkungen zum Testen von Electron-Anwendungen im WebDriver-Verbindungsmodus
19
Testen von Webdiensten
19.1REST Webservices
19.1.1Der HTTP Standard und Webdienste
19.1.2HTTP Anfragen
19.1.3Beispiele
20
Datengetriebenes Testen
20.1Beispiele für 'Datentreiber'
20.2Anwendung von 'Datentreibern'
20.3Beispiele für 'Datentreiber'
20.4Fortgeschrittene Anwendung
21
Reports und Testdokumentation
21.1Reports
21.1.1Reportkonzepte
21.1.2Inhalt von Reports
21.1.3Reports erstellen
21.1.4Individualisierung von Reports
21.2Testdoc Dokumentation für 'Testfallsätze' und 'Testfälle'
21.3Pkgdoc Dokumentation für 'Packages', 'Prozeduren' und 'Abhängigkeiten'
22
Testausführung
22.1Testausführung im Batchmodus
22.1.1Verwenden der Kommandozeile
22.1.2Windows Befehlsskript
3.0+22.1.3Groovy
22.2Testausführung im Daemonmodus
22.2.1Starten des Daemons
3.0+22.2.2Steuern des Daemons über die QF-Test Kommandozeile
22.2.3Steuern des Daemons über die Daemon API
4.1+22.3Erneute Ausführung von Knoten (Rerun)
22.3.1Erneute Ausführung aus dem Protokoll
22.3.2Fehlerhafte Knoten sofort wiederholen
23
Verteilte Entwicklung von Tests
23.1Der Aufruf einer 'Prozedur' in einer anderen Testsuite
23.2Die Verwaltung von 'Komponenten'
23.3Verschmelzen von Testsuiten
23.3.1Importieren von Komponenten
3.3+23.3.2 Importieren von Prozeduren und Testfällen
23.4Verteilte Entwicklung von Tests
3.1+23.5Statische Validierung von Testsuiten
23.5.1Ungültige Referenzen vermeiden
4.0.3+23.5.2Ungenutzte Prozeduren finden
3.0+
24
Automatisierte Erstellung von Basisprozeduren
24.1Einführung
24.2Die Verwendung vom Procedure Builder
24.3Konfiguration des Procedure Builder
24.3.1Die Procedure Builder Definitionsdatei
3.0+
25
Anbindung an Testmanagementtools
25.1HP ALM - Quality Center
25.1.1Einführung
25.1.2Schritt für Schritt Anleitung
25.1.3Fehlersuche
25.2Imbus TestBench
25.2.1Einführung
25.2.2Generieren von QF-Test Vorlage-Testsuiten aus den Interaktionen
25.2.3Importieren der Resultate
25.3QMetry
25.3.1Einführung
25.3.2Demokonfiguration Beispiel
25.4Klaros
25.4.1Einführung
25.4.2Importieren von QF-Test Ergebnissen in Klaros
25.5TestLink
25.5.1Einführung
25.5.2Generieren von QF-Test Vorlagen-Testsuiten aus den Testfällen
25.5.3Ausführung der Testfälle
25.5.4Importieren der QF-Test Resultate nach TestLink
26
Integration mit Entwickler-Tools
26.1Eclipse
26.1.1Installation
26.1.2Konfiguration
26.2Ant
26.3Maven
3.3+26.4Jenkins/Hudson
26.4.1Jenkins installieren und starten
26.4.2Voraussetzungen für GUI-Tests
26.4.3Installation des QF-Test Plugins
27
Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test
27.1Einführung
27.2Einfaches Keyword-Driven Testing mit QF-Test
27.2.1Fachliche Prozeduren
27.2.2Atomare Prozeduren
27.3Keyword-Driven Testing mit dynamischen/generischen Komponenten
27.4Behavior-Driven Testing (BDT)
27.4.1Behavior-Driven Testing (BDT) mit technischer Beschreibung
27.4.2Behavior-Driven Testing (BDT) mit fachlicher Beschreibung
27.5Szenariodateien
27.6Eigene Testbeschreibungen
27.7Anpassung an Ihre Software
28
Integration mit Robot Framework (Preview)
28.1Einführung
28.2Voraussetzungen und Installation
28.3Erste Schritte
28.4Nutzung der Bibliothek
28.5Erstellung eigener Keywords
29
Durchführung von Lasttests mit QF-Test
29.1Hintergrund und Vergleich mit anderen Techniken
29.2Lasttests mit QF-Test
29.2.1Bereitstellung der Testsysteme
29.2.2Konzeption des Testlaufes
29.2.3Vorbereiten der Testsysteme für den Testlauf
29.2.4Testausführung
29.2.5Testauswertung
29.3Spezielles zur Testausführung
29.3.1Synchronisierung
29.3.2Messen von End-to-End Zeiten
29.4Troubleshooting
29.5Web-Lasttests ohne sichtbare Browser-Fenster
3.0+
30
Ausführung manueller Tests mit QF-Test
30.1Einführung
30.2Schritt-für-Schritt Anleitung
30.3Aufbau der Excel Datei
30.4Die Ausführungstestsuite
30.5Die möglichen Zustände
II
Best Practices
31
Einführung
32
Wie beginnt man in einem Testprojekt?
32.1Infrastruktur und Testumgebung
32.2Speicherorte
32.2.1Netzwerkinstallation
32.3Wiedererkennung von Komponenten
33
Organisation von Testsuiten
33.1Organisation von Tests
33.2Modularisierung
33.3Parametrisierung
33.4Arbeiten in mehreren Testsuiten
33.5Rollen und Zuständigkeiten
33.6Komponenten in unterschiedlichen Ebenen verwalten
33.7Umgekehrte Includes
34
Effiziente Arbeitstechniken
3.5+34.1Arbeiten mit QF-Test Projekten
34.2Erstellung von Testsuiten
34.3Die Standardbibliothek qfs.qft
34.4Ablage von Komponenten
34.5Erweitern von Testsuiten
34.6Arbeiten mit dem Skripteditor
35
Aufsetzen von Testsystemen
35.1Einrichten von Prozessen und Services via Aufgabenplaner
35.2Fernzugriff auf Windowsrechner
35.3Automatische Anmeldung auf Windowsrechnern
35.4Testausführung unter Unix
36
Testausführung
36.1Abhängigkeiten
36.2Wartezeiten und Verzögerungen
36.3Was soll man tun, wenn das Protokoll einen Fehler enthält?
III
Referenzteil
37
Einstellungen
37.1Allgemeine Optionen
3.5+37.1.1Projekte
37.1.2Editieren
37.1.3Lesezeichen
37.1.4Externe Programme
37.1.5Sicherungskopien
37.1.6Bibliothekspfad
37.1.7Lizenz
37.1.8Updates
37.2Aufnahme
37.2.1Folgende Events aufnehmen
37.2.2Eventsequenzen packen
37.2.3Komponenten
37.2.4Unterelemente
37.2.5Prozeduren
37.3Wiedergabe
37.3.1Client Optionen
37.3.2Terminal Optionen
37.3.3Events
37.3.4Wiedererkennung
37.3.5Verzögerungen
37.3.6Automatische Timeouts
37.3.7Rückwärtskompatibilität
6.0+37.4Android
6.0+37.4.1Aufnahmefenster
37.5Web Optionen
37.5.1HTTP Requests
37.5.2Rückwärtskompatibilität
37.6SWT Optionen
37.7Debugger Optionen
37.8Protokoll
37.8.1Allgemeine Protokoll Optionen
37.8.2Optionen zur Aufteilung von Protokollen
37.8.3Optionen für den Inhalt von Protokollen
4.0+37.8.4Optionen für Verweise zwischen Verzeichnissen mit Testsuiten
37.9Variablen
37.10Nur zur Laufzeit
38
Bestandteile einer Testsuite
38.1Die Testsuite und ihre Struktur
38.1.1'Testsuite'
38.2Test und Sequenz Knoten
38.2.1'Testfall'
38.2.2'Testfallsatz'
38.2.3'Testaufruf'
38.2.4'Sequenz'
38.2.5'Testschritt'
38.2.6'Sequenz mit Zeitlimit'
38.2.7'Extrasequenzen'
38.3Abhängigkeiten
38.3.1'Abhängigkeit'
38.3.2'Bezug auf Abhängigkeit'
38.3.3'Vorbereitung'
38.3.4'Aufräumen'
38.3.5'Fehlerbehandlung'
38.4Datentreiber
38.4.1'Datentreiber'
38.4.2'Datentabelle'
38.4.3'Datenbank'
38.4.4'Excel Datei'
38.4.5'CSV Datei'
38.4.6'Datenschleife'
38.5Prozeduren
38.5.1'Prozedur'
38.5.2'Prozeduraufruf'
38.5.3'Return'
38.5.4'Package'
38.5.5'Prozeduren'
38.6Ablaufsteuerung
38.6.1'Schleife'
38.6.2'While'
38.6.3'Break'
38.6.4'If'
38.6.5'Elseif'
38.6.6'Else'
38.6.7'Try'
38.6.8'Catch'
38.6.9'Finally'
38.6.10'Throw'
38.6.11'Rethrow'
38.6.12'Server Skript'
38.6.13'SUT Skript'
38.7Prozesse
38.7.1'Java SUT Client starten'
38.7.2'SUT Client starten'
38.7.3'Programm starten'
38.7.4'Web-Engine starten'
38.7.5'Browser-Fenster öffnen'
38.7.6'Shellkommando ausführen'
38.7.7'PDF Client starten'
38.7.8'Windows Anwendung starten'
38.7.9'Windows Anwendung verbinden'
38.7.10'Android Emulator starten'
38.7.11'Mit Android Gerät verbinden'
38.7.12'Android App starten'
38.7.13'Warten auf Client'
38.7.14'Warten auf Android Gerät'
38.7.15'Programm beenden'
38.7.16'Warten auf Programmende'
38.8Events
38.8.1'Mausevent'
38.8.2'Tastaturevent'
38.8.3'Texteingabe'
38.8.4'Fensterevent'
38.8.5'Komponentenevent'
38.8.6'Auswahl'
38.8.7'Dateiauswahl'
38.9Checks
38.9.1'Check Text'
38.9.2'Check Boolean'
38.9.3'Check Elemente'
38.9.4'Check selektierbare Elemente'
38.9.5'Check Abbild'
38.9.6'Check Geometrie'
38.10Abfragen
38.10.1'Text auslesen'
38.10.2'Index auslesen'
38.10.3'Geometrie auslesen'
38.11Verschiedenes
38.11.1'Kommentar'
38.11.2'Variable setzen'
38.11.3'Warten auf Komponente'
38.11.4'Warten auf Laden des Dokuments'
38.11.5'Warten auf Ende des Downloads'
38.11.6'Ressourcen laden'
38.11.7'Properties laden'
38.11.8'Unit Test'
38.12HTTP Requests
38.12.1'Server HTTP Request'
38.12.2'Browser HTTP Request'
38.13Fenster, Komponenten und Elemente
38.13.1'Fenster'
38.13.2'Webseite'
38.13.3'Komponente'
38.13.4'Element'
38.13.5'Fenstergruppe'
38.13.6'Komponentengruppe'
38.13.7'Fenster und Komponenten'
38.14Historische Knoten
38.14.1'Test'
39
Exceptions
IV
Technische Referenz
40
Kommandozeilenargumente und Rückgabewerte
40.1Aufrufsyntax
40.2Kommandozeilenargumente
40.2.1Argumente für das Startskript
40.2.2Argumente für die Java VM
40.2.3Argumente für QF-Test
40.2.4Platzhalter im Dateinamen für Protokoll und Report
40.3Rückgabewerte von QF-Test
41
GUI Engines
42
Starten einer Applikation aus QF-Test
42.1Verschiedene Methoden zum Starten des SUT
42.1.1Starten des SUT aus einem Skript oder ausführbaren Programm
42.1.2Starten des SUT mittels Java WebStart
42.1.3Starten des SUT als Applet in einem Web Browser
42.1.4 Starten des SUT mittels java -jar <Archiv>
42.1.5 Starten des SUT mittels java -classpath <Pfad> <Startklasse>
42.1.6 Starten einer Webanwendung im Browser
42.1.7Öffnen eines PDF Dokuments
43
JRE und SWT Instrumentierung
43.1Deinstrumentieren eines JRE
43.2SWT Instrumentierung
43.2.1Vorbereitung einer manuellen SWT Instrumentierung
43.2.2Manuelle SWT Instrumentierung für Eclipse basierte Anwendungen
43.2.3Manuelle Instrumentierung für eigenständige SWT Anwendungen
44
Technisches zu Komponenten
44.1Gewichtung der Wiedererkennungsmerkmale bei aufgenommenen Komponenten
44.2Generierung der 'QF-Test ID' der Komponente
44.3SmartIDs - allgemeine Syntax
44.4SmartIDs: Sonderzeichen
44.5Android - Liste der trivialen Komponentenbezeichner
45
Technische Details zu verschiedenen Themen
45.1Drag&Drop
45.2Timing
45.3Reguläre Ausdrücke - Regexps
45.4Zeilenumbrüche in Unix und Windows
45.5Schützen von Sonderzeichen (quoting)
45.6Auflösen von Include Dateien
46
Skripting (Jython, Groovy und JavaScript)
46.1Pfad für das Laden der Module
46.2Das Plugin Verzeichnis
46.3Initialisierung (Jython)
46.4Die Namespace Umgebung für Skript Knoten (Jython)
46.5Das API des Runcontexts
46.6Das qf Modul
3.0+46.7Image API
46.7.1Die ImageWrapper Klasse
46.8Exceptions
46.9Debuggen von Skripten (Jython)
47
Web
47.1Verbesserte Komponentenerkennung mittels CustomWebResolver
47.1.1Generelle Konfigurationsmöglichkeiten
47.1.2Untersuchung einer Webseite
47.1.3Die Prozedur installCustomWebResolver
47.1.4installCustomWebResolver - Erweiterung eines Webframework-Resolvers
47.1.5installCustomWebResolver - Tabelle und TreeTable
47.1.6installCustomWebResolver - Baum und TreeTable
47.1.7installCustomWebResolver - Liste
47.1.8installCustomWebResolver - Combobox
47.1.9installCustomWebResolver - TabPanel und Accordion
47.1.10Beispiel für den WebCarConfigurator
47.2Besondere Unterstützung für verschiedene Webframeworks
47.2.1Konzepte für Webframework-Resolver
47.2.2Eindeutige Bezeichner setzen
47.3Browser Verbindungsmodus
47.3.1QF-Driver Verbindungsmodus
5.3+47.3.2CDP-Driver Verbindungsmodus
47.3.3WebDriver Verbindungsmodus
47.3.4Bekannte Einschränkungen des WebDriver Modus
47.4Zugriff auf unsichtbare Felder einer Webseite
47.5Safari - Besonderheiten
48
Steuern und Testen von nativen Windows Anwendungen - ohne Verwendung der QF-Test win Engine
48.1Vorgehensweise
48.1.1Start der Anwendung
48.1.2Auflistung aller GUI-Elemente eines Fensters
48.1.3Informationen zu einzelnen GUI-Elementen
48.1.4Zugriff auf GUI Elemente
48.1.5Ausführen von Aktionen auf GUI-Elementen
48.2Beispiel
48.2.1Start der Anwendung
48.2.2Übersicht über die GUI-Elemente der Anwendung
49
Steuern und Testen von nativen MacOS-Anwendungen
49.1Vorgehensweise
49.1.1Start der Anwendung
49.1.2Auflistung aller GUI-Elemente eines Fensters
49.1.3Informationen zu einzelnen GUI-Elementen
49.1.4Zugriff auf GUI Elemente
49.1.5Ausführen von Aktionen auf GUI-Elementen
50
APIs für Erweiterungen
50.1Das resolvers Modul
50.1.1Verwendung
50.1.2Implementierung
50.1.3addResolver
50.1.4removeResolver
50.1.5listNames
3.1+50.1.6 Das NameResolver Interface
4.0+50.1.7 Das GenericClassNameResolver Interface
3.1+50.1.8 Das ClassNameResolver Interface
3.1+50.1.9 Das FeatureResolver Interface
50.1.10Das ExtraFeatureResolver Interface
3.1+50.1.11 Das ItemNameResolver Interface
3.1+50.1.12 Das ItemValueResolver Interface
50.1.13Das TreeTableResolver Interface
50.1.14Das InterestingParentResolver Interface
4.1+50.1.15 Das TooltipResolver Interface
50.1.16Das IdResolver Interface
4.1+50.1.17 Das EnabledResolver Interface
4.1+50.1.18 Das VisibilityResolver Interface
4.1+50.1.19 Das MainTextResolver Interface
4.1+50.1.20 Der BusyPaneResolver Interfaces
4.1+50.1.21 Der GlassPaneResolver Interfaces
4.1+50.1.22 Das EventSynchronizer Interface
4.1+50.1.23 Das BusyApplicationDetector Interface
50.1.24Matcher
50.1.25Externe Implementierung
50.2Das webResolvers-Modul
50.2.1Allgemeine Informationen
50.2.2addResolver
50.2.3removeResolver
50.2.4listNames
50.2.5Beispiele
50.3Die ResolverRegistry
3.1+50.4 Implementierung eigener Unterelemente mit dem ItemResolver Interface
50.4.1ItemResolver Konzepte
50.4.2Das ItemResolver Interface
50.4.3Die Klasse SubItemIndex
50.4.4Die ItemRegistry
50.4.5Standard Repräsentation von Unterelementen
3.1+50.5 Implementierung eigener Checks mit dem Checker Interface
50.5.1Das Checker Interface
50.5.2Die Pair Klasse
50.5.3 Das CheckType Interface und seine Implementierung DefaultCheckType
50.5.4Die Klasse CheckDataType
50.5.5Die Klasse CheckData und ihre Unterklassen
50.5.6Die CheckerRegistry
50.5.7Beispiel für einen Checker
3.2+50.6 Das Eclipse Graphical Editing Framework (GEF)
50.6.1Aufnahme von GEF Elementen
50.6.2Implementierung eines ItemNameResolver2 für GEF
50.6.3Implementierung eines ItemValueResolver2 für GEF
3.1+50.7Listener für den aktuellen Testlauf
50.7.1Das TestRunListener Interface
50.7.2Die Klasse TestRunEvent
50.7.3Die Klasse TestSuiteNode
4.0.3+50.8ResetListener
50.9DOM Prozessoren
50.9.1Das DOMProcessor Interface
50.9.2Die DOMProcessorRegistry
50.9.3Fehlerbehandlung
3.0+50.10Image API Erweiterungen
50.10.1Die ImageRep Klasse
50.10.2Das ImageComparator Interface
50.11Pseudo DOM API für Webanwendungen
50.11.1Die abstrakte Klasse Node
50.11.2Die Klasse DocumentNode
50.11.3Die Klasse FrameNode
50.11.4Die Klasse DomNode
50.11.5Die Klasse DialogNode
4.1+50.12WebDriverConnection SUT API
50.12.1Die WebDriverConnection Klasse
5.0+50.13Windows Control API
50.13.1Die WinControl Klasse
51
Daemon Modus
51.1Daemon Konzepte
51.2Daemon API
51.2.1Der DaemonLocator
51.2.2Der Daemon
51.2.3Der TestRunDaemon
51.2.4Der DaemonRunContext
3.1+51.2.5Der DaemonTestRunListener
3.5+51.3Absicherung des QF-Test Daemon
51.3.1Erstellen einer eigenen Keystore-Datei
51.3.2Festlegen der Keystore-Datei
51.3.3Festlegen der Keystore-Datei auf der Client-Seite
52
Die Procedure Builder Definitionsdatei
52.1Platzhalter
4.1.3+52.1.1Rückgriffswerte für Platzhalter
52.2Spezielle Bedingungen für die Definition von Packages und Prozeduren
52.3Auswertung der Komponentenhierarchie
3.4+52.4Details zu @CONDITION
53
Der ManualStepDialog
53.1Die ManualStepDialog API
3.1+
54
Details zu Knotenkonvertierungen
54.1Einführung
54.2Konvertierungen mit Typwechseln
54.3Zusätzliche Konvertierungen unter 'Extrasequenzen'
54.3.1Konvertierungen ohne Seiteneffekte
54.3.2Konvertierungen mit Seiteneffekten
3.3+
55
Details des Algorithmus zum Bildvergleich
55.1Einführung
55.2Beschreibung der Algorithmen
55.2.1Klassischer Bildvergleich
55.2.2Pixelbasierter Vergleich
55.2.3Pixelbasierte Ähnlichkeitsanalyse
55.2.4Blockbildung mit Vergleich
55.2.5Blockbildung mit Ähnlichkeitsanalyse
55.2.6Häufigkeitsanalyse mittels Histogramm
55.2.7Bildanalyse mittels Diskreter Kosinustransformation
55.2.8Blockbildung zur Bildanalyse mittels Diskreter Kosinustransformation
55.2.9Bilinearer Filter
55.3Beschreibung der speziellen Funktionen
55.3.1Bild-in-Bild Suche
3.2+
56
Resultatslisten
56.1Einführung
56.2Spezielle Listenaktionen
56.2.1Alle Listen
56.2.2Ersetzen
56.2.3Fehlerliste
3.5+56.3Resultate exportieren und laden
4.0+
57
Generische Klassen
57.1Übersicht der generischen Klassen
57.2Eigenschaften von generischen Klassen
57.2.1Accordion
57.2.2BusyPane
57.2.3Button
57.2.4Calendar
57.2.5ColorPicker
57.2.6CheckBox
57.2.7Closer
57.2.8ComboBox
57.2.9Divider
57.2.10Expander
57.2.11FileChooser
57.2.12Graphics
57.2.13Icon
57.2.14Indicator
57.2.15Item
57.2.16Label
57.2.17Link
57.2.18List
57.2.19LoadingComponent
57.2.20Maximizer
57.2.21Menu
57.2.22MenuItem
57.2.23Minimizer
57.2.24Popup
57.2.25RadioButton
57.2.26Restore
57.2.27Panel
57.2.28ProgressBar
57.2.29ScrollBar
57.2.30Separator
57.2.31Sizer
57.2.32Slider
57.2.33Spacer
57.2.34Spinner
57.2.35SplitPanel
57.2.36Table
57.2.37TableCell
57.2.38TableFooter
57.2.39TableHeader
57.2.40TableHeaderCell
57.2.41TabPanel
57.2.42TableRow
57.2.43Text
57.2.44TextArea
57.2.45TextField
57.2.46Thumb
57.2.47ToggleButton
57.2.48ToolBar
57.2.49ToolBarItem
57.2.50ToolTip
57.2.51Tree
57.2.52TreeNode
57.2.53TreeTable
57.2.54Window
58
Doctags
58.1Doctags für Reporting und Dokumentation
4.2+58.1.1@noreport Doctag
58.2Doctags für Robot Framework
58.3Doctags für die Ausführung
58.4Doctags für das Editieren
58.5Doctags für den Prozedurgenerator
A
FAQ - Häufig gestellte Fragen
B
Release Notes
B.1QF-Test Version 6.0
B.1.1Version 6.0.1 - 9. Juni 2022
B.1.2Änderungen mit möglichen Auswirkungen auf die Testausführung
B.1.3Version 6.0.0 - 17. Mai 2022
B.2QF-Test Version 5.4
B.2.1Version 5.4.3 - 11. März 2022
B.2.2Version 5.4.2 - 18. Februar 2022
B.2.3Version 5.4.1 - 20. Januar 2022
B.2.4Änderungen mit möglichen Auswirkungen auf die Testausführung
B.2.5Version 5.4.0 - 15. Dezember 2021
B.3QF-Test Version 5.3
B.3.1Version 5.3.4 - 30. September 2021
B.3.2Version 5.3.3 - 14. September 2021
B.3.3Version 5.3.2 - 21. Juli 2021
B.3.4Version 5.3.1 - 15. Juni 2021
B.3.5Änderungen mit möglichen Auswirkungen auf die Testausführung
B.3.6Version 5.3.0 - 20. Mai 2021
B.4QF-Test Version 5.2
B.4.1Version 5.2.3 - 9. März 2021
B.4.2Version 5.2.2 - 12. Februar 2021
B.4.3Version 5.2.1 - 3. Dezember 2020
B.4.4Änderungen mit möglichen Auswirkungen auf die Testausführung
B.4.5Version 5.2.0 - 10. November 2020
B.5 QF-Test Version 5.1
B.5.1 Version 5.1.2 - 15. September 2020
B.5.2 Version 5.1.1 - 26. August 2020
B.5.3Änderungen mit möglichen Auswirkungen auf die Testausführung
B.5.4 Version 5.1.0 - 8. Juli 2020
B.6 QF-Test Version 5.0
B.6.1 Version 5.0.3 - 17. Juni 2020
B.6.2 Version 5.0.2 - 5. Mai 2020
B.6.3 Version 5.0.1 - 2. März 2020
B.6.4Wesentliche neue Features in Version 5
B.6.5 Version 5.0.0 - 6. Februar 2020
B.7QF-Test Version 4
B.7.1QF-Test Version 4.7
B.7.2QF-Test Version 4.6
B.7.3QF-Test Version 4.5
B.7.4QF-Test Version 4.4
B.7.5QF-Test Version 4.3
B.7.6QF-Test Version 4.2
B.7.7QF-Test Version 4.1
B.7.8QF-Test Version 4.0
B.8QF-Test Version 3
C
Tastaturkürzel
C.1Navigation und Editieren
C.2Aufnahme- und Wiedergabefunktionen
C.3Tastaturhelfer
D
Glossar
E
Datenschutz - Verarbeitung von personenbezogenen und anderen Daten
E.1Server-Daten für Versionsabfrage
E.2Direkter Versand von Support-Anfragen aus QF-Test heraus
E.3Anfragedaten beim Abruf von WebDriver-Dateien
E.4Client-Daten in QF-Test Protokolldateien
F
Benutzte Software