Fenster, Komponenten und Elemente

'Fenster', 'Komponenten' und 'Elemente' sind das Fundament, auf dem eine Testsuite aufbaut. Sie bilden mit ihrer Struktur und ihren Attributen die Fenster des SUT, sowie die darin enthaltenen Komponenten ab.

Andere Elemente der Suite, insbesondere Events und Checks, müssen sich immer auf eine Komponente oder ein Fenster beziehen. Diese Beziehung wird über einen Verweis auf die QF-Test ID des Fensters oder der Komponente hergestellt. Näheres dazu finden Sie bei der Beschreibung der entsprechenden Knoten.

Es gibt einen eigenen Bereich innerhalb einer Suite, der ausschließlich für Fenster, Komponenten und deren Unterelemente vorgesehen ist: Den Knoten 'Fenster und Komponenten', der seinen festen Platz am Ende einer Suite hat.

Weitere Informationen zur Arbeit mit Fenstern und Komponenten finden Sie in den Kapiteln Komponenten sowie im "Best Practices" Unterkapitel Wie erreicht man eine robuste Komponentenerkennung?.

'Fenster'

Dieses Element repräsentiert ein Fenster im SUT. Events und Checks beziehen sich über seine QF-Test ID darauf.

Enthalten in:'Fenstergruppen', 'Fenster und Komponenten'.

Kinder:'Komponentengruppe', 'Komponente'.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Fenster Attribute
Abbildung 41.88:  'Fenster'-Attribute
QF-Test ID

Mit Hilfe der QF-Test ID kann das Fenster von anderen Elementen referenziert werden, z.B. von einem 'Fensterevent', der sich auf dieses Fenster bezieht. Es ist daher wichtig, Fenstern und Komponenten möglichst prägnante QF-Test IDs zu geben, an die Sie sich gut erinnern können. Außerdem dürfen Sie jede QF-Test ID pro Suite nur einmal vergeben.

Variabel: Nein

Einschränkungen: Darf nicht leer sein, keines der Zeichen '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Klasse'

Der vollständige Name der Java-Klasse des Fensters, oder eine ihrer Superklassen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Name'

Der Name des Fensters, der von den Entwicklern des SUT mittels setName(...); vergeben werden sollte. An Hand dieses Namens kann QF-Test das Fenster eindeutig identifizieren.

Variabel: Ja

Einschränkungen: Keine

'Merkmal'

Hat ein Fenster keinen Namen, versucht QF-Test es an Hand eines typischen Merkmals zu identifizieren. Für Frames und Dialoge ermittelt QF-Test hierzu den Titel.

4.0+ Mittels Rechtsklick und Auswahl von »Text in regulären Ausdruck konvertieren«, können Sie Sonderzeichen regulärer Ausdrücke in diesem Text mit '\' schützen.

Variabel: Ja

Einschränkungen: Keine

'Als Regexp'

Ist dieses Attribut gesetzt, handelt es sich beim Merkmal um einen regulären Ausdruck (vgl. Abschnitt 48.3).

Variabel: Ja

Einschränkungen: Keine

'Weitere Merkmale'

Neben dem primären 'Merkmal' kann eine 'Komponente' zusätzliche Merkmale in der Form von Name/Wert Paaren haben. Welche Merkmale aufgezeichnet werden, hängt von der Art der Komponente ab. Ein solches Merkmal kann einen von drei Zuständen haben:

Ignorieren (Hinweis für die Suche: aktuell dargestellt als 0)
Dieses zusätzliche Merkmal dient lediglich zur Information. Es hat keinen Einfluss auf die Wiedererkennung so lange dieser Status nicht manuell geändert wird.
Sollte übereinstimmen (Hinweis für die Suche: aktuell dargestellt als 1)
Zielkomponenten, die mit diesem Merkmal übereinstimmen haben bei der Wiedererkennung eine höhere Chance als solche, die nicht dazu passen.
Muss übereinstimmen (Hinweis für die Suche: aktuell dargestellt als 2)
Die Zielkomponenten muss mit diesem Feature übereinstimmen. Eine Komponente die nicht dazu passt, kommt als Kandidat für die Wiedererkennung nicht in Frage.

Weitere Spalten erlauben den Vergleich mit Hilfe eines regulären Ausdrucks sowie die Negation der Aussage. So lässt sich z.B. definieren, dass das "class" Attribut eines DOM Knoten nicht "dummy" sein darf. Das Fehlen eines Merkmals kann durch Vergleich mit einem leeren Wert ausgedrückt werden. Sie können in diesen Spalten übrigens auch Variablen verwenden, in dem Sie per Doppelklick auf diese Spalten einen Texteditor öffnen und die entsprechenden Variablen eintragen.

4.0+ Mittels Rechtsklick in die Wert Spalte und Auswahl von »Text in regulären Ausdruck konvertieren«, können Sie Sonderzeichen regulärer Ausdrücke im Wert mit '\' schützen.

QF-Test fügt automatisch einige Einträge zu den Weiteren Merkmalen hinzu.

Name Engine Bedeutung
columns Web Anzahl der Spalten TABLE Komponenten
imagehash Swing, SWT Zeigt den Hashwert eines Icons eines Buttons oder MenuItems
qfs:class Alle Die konkrete Klasse der Komponente, z.B. de.qfs.QfsTextField.
qfs:genericclass Alle Die generische Klasse der Komponente, z.B. TextField.
qfs:item Web Zeigt den Elementindex eines DomNode, wenn dieser ein Element einer komplexen GUI-Komponente ist. Dies kann passieren, wenn Kindkomponenten aufgezeichnet werden, die als ebenfalls relevant betrachtet werden. Solche Elemente können in Bäumen, Listen, Reitern und Tabellen vorkommen.
qfs:label*-Varianten Alle Bis QF-Test Version 6: qfs:label enthält die beste Beschriftung einer Komponente. Dies kann ein Text eines Buttons oder der Text der am nächsten gelegenen Label Komponente sein. Wenn weder ein eigener Text noch ein Label gefunden werden kann, wird versucht Tooltips bzw. Icon Beschreibungen auszulesen.
Ab QF-Test Version 7.0: Ein oder mehrere Einträge für Beschriftungen, die für die betrachtete Komponente in Frage kommen - die am besten bewertete mit dem Status "Sollte übereinstimmen", die anderen mit "Ignorieren". Zum Beispiel qfs:labelText für den Text der Komponente selbst oderqfs:labelLeft für eine Beschriftung links der Komponente. Weitere Informationen finden Sie unter qfs:label*-Varianten.
qfs:matchindex Alle Index von Komponenten mit demselben Namen. Wird ggf. automatisch zugewiesen, wenn die Option Wiedererkennung von Komponenten bei der Aufnahme validieren aktiviert ist.
qfs:modal Web Zeigt an, ob die Komponente der Klasse "Window" ein modales Fenster ist.
qfs:originalid Web Zeigt die originale ID des Knotens an, so wie diese wirklich im Dom steht.
qfs:systemclass Alle Die toolkit-spezifische Systemklasse, z.B. javax.swing.JTextField.
qfs:text Alle Enthält den Text der Komponente. Wird standardmäßig nicht aufgenommen, kann aber in SmartIDs oder durch manuelles Anlegen im 'Komponente' Knoten für die Wiedergabe beliebig verwendet werden.
qfs:type Alle Der generische Typ der Komponente, z.B. TextField:PasswordField.
Tabelle 41.36:  Weitere Merkmale, die von QF-Test gesetzt werden

Weitere Informationen finden Sie im Kapitel Weitere Merkmale.

Variabel: Ja

Einschränkungen: Name darf nicht leer sein

'Modal'

Gibt an, ob es sich bei dem Fenster um einen modalen Dialog handelt.

Variabel: Ja

Einschränkungen: Keine

Geometrie

Die X/Y Koordinaten, Breite und Höhe des Fensters bilden die Ausgangsbasis für die Wiedererkennung, spielen dabei aber eine untergeordnete Rolle.

Für Fenster, deren Position oder Größe stark variiert, sollten Sie die entsprechenden Felder löschen.

Hinweis Sind keine Werte angegeben, startet der Mechanismus zur Wiedererkennung mit perfekter Übereinstimmung der Geometrie für alle Kandidaten. Um falsch-positive Treffer auf Basis der Geometrie zu verhindern, können Sie die Erkennung auf Basis der Geometrie unterdrücken, indem sie für diese Werte ein '-'-Zeichen eintragen.

Variabel: Ja

Einschränkungen: Breite und Höhe dürfen nicht negativ sein.

'GUI-Engine'

Die GUI-Engine zu der das 'Fenster' und alle seine 'Komponenten' gehören. QF-Test zeichnet awt für AWT/Swing und swt für SWT auf. Nur relevant für SUTs mit mehr als einer GUI-Engine wie in Kapitel 44 beschrieben.

Variabel: Ja

Einschränkungen: Siehe Kapitel 44

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Webseite'

Web Eine 'Webseite' ist eine Variante des 'Fenster' Knotens speziell für den Test von Web-Anwendungen. Sie repräsentiert das oberste Dokument in einem Browser. Verschachtelte Dokumente innerhalb von <FRAME> Knoten werden als 'Komponenten' abgebildet.

Im Gegensatz zu einem 'Fenster' hat eine 'Webseite' keine 'Klasse', 'Modal', Geometrie oder 'GUI-Engine'-Attribute, da diese entweder implizit definiert oder redundant sind.

Enthalten in:'Fenstergruppe', 'Fenster und Komponenten'.

Kinder:'Komponentengruppe', 'Komponente'.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Webseite Attribute
Abbildung 41.89:  'Webseite'-Attribute
'QF-Test ID'

Mit Hilfe der QF-Test ID kann diese Seite von anderen Elementen referenziert werden, z.B. von einem 'Fensterevent', der sich auf diese Seite bezieht. Es ist daher wichtig, Fenstern und Komponenten möglichst prägnante QF-Test IDs zu geben, an die Sie sich gut erinnern können. Außerdem dürfen Sie jede QF-Test ID pro Suite nur einmal vergeben.

Variabel: Nein

Einschränkungen: Darf nicht leer sein, keines der Zeichen '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Name des Browser-Fensters'

Dieses Attribut können Sie ignorieren, sofern Sie nicht eine Web-Anwendung mit mehreren offenen Browser-Fenstern testen müssen, die das selbe Dokument darstellen. In diesem Fall kann das Attribut 'Name des Browser-Fensters' dazu dienen, die Browser-Fenster zu unterscheiden. Der Name eines Browser-Fensters kann mittels des Attributs 'Name des Browser-Fensters' eines 'Browser-Fenster öffnen' Knotens festgelegt werden. Der Umgang mit mehreren Fenstern wird in FAQ 25 genauer erläutert.

Variabel: Ja

Einschränkungen: Keine

'Name'

Eine Webseite hat nur dann einen Namen, wenn dieser mittels eines NameResolvers implementiert wird. Näheres zum API für NameResolver finden Sie in Abschnitt 53.1.7.

Variabel: Ja

Einschränkungen: Keine

'Merkmal'

Das primäre Merkmal einer Webseite ist ihre URL, wobei Parameter entfernt werden. Falls die Option URL-Merkmal von 'Webseite'-Knoten auf Host bzw. Datei beschränken gesetzt ist, wird die URL sogar auf den Rechner- oder Dateinamen reduziert.

4.0+ Mittels Rechtsklick und Auswahl von »Text in regulären Ausdruck konvertieren«, können Sie Sonderzeichen regulärer Ausdrücke in diesem Text mit '\' schützen.

Variabel: Ja

Einschränkungen: Keine

'Als Regexp'

Ist dieses Attribut gesetzt, handelt es sich beim Merkmal um einen regulären Ausdruck (vgl. Abschnitt 48.3).

Variabel: Ja

Einschränkungen: Keine

'Weitere Merkmale'

Neben dem primären 'Merkmal' kann eine 'Komponente' zusätzliche Merkmale in der Form von Name/Wert Paaren haben. Welche Merkmale aufgezeichnet werden, hängt von der Art der Komponente ab. Ein solches Merkmal kann einen von drei Zuständen haben:

Ignorieren (Hinweis für die Suche: aktuell dargestellt als 0)
Dieses zusätzliche Merkmal dient lediglich zur Information. Es hat keinen Einfluss auf die Wiedererkennung so lange dieser Status nicht manuell geändert wird.
Sollte übereinstimmen (Hinweis für die Suche: aktuell dargestellt als 1)
Zielkomponenten, die mit diesem Merkmal übereinstimmen haben bei der Wiedererkennung eine höhere Chance als solche, die nicht dazu passen.
Muss übereinstimmen (Hinweis für die Suche: aktuell dargestellt als 2)
Die Zielkomponenten muss mit diesem Feature übereinstimmen. Eine Komponente die nicht dazu passt, kommt als Kandidat für die Wiedererkennung nicht in Frage.

Weitere Spalten erlauben den Vergleich mit Hilfe eines regulären Ausdrucks sowie die Negation der Aussage. So lässt sich z.B. definieren, dass das "class" Attribut eines DOM Knoten nicht "dummy" sein darf. Das Fehlen eines Merkmals kann durch Vergleich mit einem leeren Wert ausgedrückt werden. Sie können in diesen Spalten übrigens auch Variablen verwenden, in dem Sie per Doppelklick auf diese Spalten einen Texteditor öffnen und die entsprechenden Variablen eintragen.

4.0+ Mittels Rechtsklick in die Wert Spalte und Auswahl von »Text in regulären Ausdruck konvertieren«, können Sie Sonderzeichen regulärer Ausdrücke im Wert mit '\' schützen.

QF-Test fügt automatisch einige Einträge zu den Weiteren Merkmalen hinzu.

Name Engine Bedeutung
columns Web Anzahl der Spalten TABLE Komponenten
imagehash Swing, SWT Zeigt den Hashwert eines Icons eines Buttons oder MenuItems
qfs:class Alle Die konkrete Klasse der Komponente, z.B. de.qfs.QfsTextField.
qfs:genericclass Alle Die generische Klasse der Komponente, z.B. TextField.
qfs:item Web Zeigt den Elementindex eines DomNode, wenn dieser ein Element einer komplexen GUI-Komponente ist. Dies kann passieren, wenn Kindkomponenten aufgezeichnet werden, die als ebenfalls relevant betrachtet werden. Solche Elemente können in Bäumen, Listen, Reitern und Tabellen vorkommen.
qfs:label*-Varianten Alle Bis QF-Test Version 6: qfs:label enthält die beste Beschriftung einer Komponente. Dies kann ein Text eines Buttons oder der Text der am nächsten gelegenen Label Komponente sein. Wenn weder ein eigener Text noch ein Label gefunden werden kann, wird versucht Tooltips bzw. Icon Beschreibungen auszulesen.
Ab QF-Test Version 7.0: Ein oder mehrere Einträge für Beschriftungen, die für die betrachtete Komponente in Frage kommen - die am besten bewertete mit dem Status "Sollte übereinstimmen", die anderen mit "Ignorieren". Zum Beispiel qfs:labelText für den Text der Komponente selbst oderqfs:labelLeft für eine Beschriftung links der Komponente. Weitere Informationen finden Sie unter qfs:label*-Varianten.
qfs:matchindex Alle Index von Komponenten mit demselben Namen. Wird ggf. automatisch zugewiesen, wenn die Option Wiedererkennung von Komponenten bei der Aufnahme validieren aktiviert ist.
qfs:modal Web Zeigt an, ob die Komponente der Klasse "Window" ein modales Fenster ist.
qfs:originalid Web Zeigt die originale ID des Knotens an, so wie diese wirklich im Dom steht.
qfs:systemclass Alle Die toolkit-spezifische Systemklasse, z.B. javax.swing.JTextField.
qfs:text Alle Enthält den Text der Komponente. Wird standardmäßig nicht aufgenommen, kann aber in SmartIDs oder durch manuelles Anlegen im 'Komponente' Knoten für die Wiedergabe beliebig verwendet werden.
qfs:type Alle Der generische Typ der Komponente, z.B. TextField:PasswordField.
Tabelle 41.37:  Weitere Merkmale, die von QF-Test gesetzt werden

Weitere Informationen finden Sie im Kapitel Weitere Merkmale.

Variabel: Ja

Einschränkungen: Name darf nicht leer sein

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Komponente'

'Komponenten' entsprechen den Components der Java Oberfläche. Ebenso wie 'Fenster' werden sie von Events und Checks über ihre QF-Test ID referenziert. Allgemeine Informationen zu 'Komponenten' finden Sie im Kapitel Komponenten.

Komponenten werden innerhalb von QF-Test hierarchisch angeordnet, entsprechend den Parent-Child Beziehungen im SUT. Dabei werden allerdings nicht alle Zwischenkomponenten aufgezeichnet, sondern nur die "interessanten".

Enthalten in:'Komponentengruppe', 'Fenster', 'Komponente'.

Kinder:'Komponentengruppe', 'Komponente', 'Element'.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Komponente Attribute
Abbildung 41.90:  'Komponente'-Attribute
QF-Test ID

Mit Hilfe der QF-Test ID kann die Komponente von anderen Elementen referenziert werden, z.B. von einem 'Mausevent', der sich auf dieses Komponente bezieht. Es ist daher wichtig, Fenstern und Komponenten möglichst prägnante QF-Test IDs zu geben, an die Sie sich gut erinnern können. Außerdem dürfen Sie jede QF-Test ID pro Suite nur einmal vergeben. Siehe auch Generierung der 'QF-Test ID' der Komponente.

Variabel: Nein

Einschränkungen: Darf nicht leer sein, keines der Zeichen '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Klasse'

Für SWT und Swing-Anwendungen ist dies der vollständige Name der Java-Klasse der Komponente oder eine ihrer Superklassen. Bei Web-Anwendungen gibt es hingegen eine Pseudoklassenhierarchie, die in Abschnitt 53.11 beschrieben ist. Allgemeine Informationen finden Sie im Kapitel Klasse.

Die Klasse, die von QF-Test für eine Komponente aufgezeichnet wird, hängt von der Option Nur Systemklassen aufnehmen ab sowie von eventuell registrierten ClassNameResolvern (vgl. Abschnitt 53.1.9). Bei der Wiedergabe wird die Übereinstimmung der Klasse basierend auf der tatsächlichen bzw. der Pseudoklassenhierarchie ermittelt, so dass Sie dieses Attribut auch manuell auf eine Basisklasse des Elements setzen können.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Name'

Der Name der Komponente, der von den Entwicklern des SUT mittels setName(...); vergeben werden sollte. An Hand dieses Namens kann QF-Test das Fenster eindeutig identifizieren. Allgemeine Informationen finden Sie im Kapitel Name.

Variabel: Ja

Einschränkungen: Keine

'Merkmal'

Hat eine Komponente keinen Namen, versucht QF-Test sie an Hand eines typischen Merkmals zu identifizieren. Für Buttons, MenuItems und Labels ermittelt QF-Test z.B. deren Text.

Allgemeine Informationen finden Sie im Kapitel Merkmal.

4.0+ Mittels Rechtsklick und Auswahl von »Text in regulären Ausdruck konvertieren«, können Sie Sonderzeichen regulärer Ausdrücke in diesem Text mit '\' schützen.

Variabel: Ja

Einschränkungen: Keine

'Als Regexp'

Ist dieses Attribut gesetzt, handelt es sich beim Merkmal um einen regulären Ausdruck (vgl. Abschnitt 48.3).

Variabel: Ja

Einschränkungen: Keine

'Weitere Merkmale'

Neben dem primären 'Merkmal' kann eine 'Komponente' zusätzliche Merkmale in der Form von Name/Wert Paaren haben. Welche Merkmale aufgezeichnet werden, hängt von der Art der Komponente ab. Ein solches Merkmal kann einen von drei Zuständen haben:

Ignorieren (Hinweis für die Suche: aktuell dargestellt als 0)
Dieses zusätzliche Merkmal dient lediglich zur Information. Es hat keinen Einfluss auf die Wiedererkennung so lange dieser Status nicht manuell geändert wird.
Sollte übereinstimmen (Hinweis für die Suche: aktuell dargestellt als 1)
Zielkomponenten, die mit diesem Merkmal übereinstimmen haben bei der Wiedererkennung eine höhere Chance als solche, die nicht dazu passen.
Muss übereinstimmen (Hinweis für die Suche: aktuell dargestellt als 2)
Die Zielkomponenten muss mit diesem Feature übereinstimmen. Eine Komponente die nicht dazu passt, kommt als Kandidat für die Wiedererkennung nicht in Frage.

Weitere Spalten erlauben den Vergleich mit Hilfe eines regulären Ausdrucks sowie die Negation der Aussage. So lässt sich z.B. definieren, dass das "class" Attribut eines DOM Knoten nicht "dummy" sein darf. Das Fehlen eines Merkmals kann durch Vergleich mit einem leeren Wert ausgedrückt werden. Sie können in diesen Spalten übrigens auch Variablen verwenden, in dem Sie per Doppelklick auf diese Spalten einen Texteditor öffnen und die entsprechenden Variablen eintragen.

4.0+ Mittels Rechtsklick in die Wert Spalte und Auswahl von »Text in regulären Ausdruck konvertieren«, können Sie Sonderzeichen regulärer Ausdrücke im Wert mit '\' schützen.

QF-Test fügt automatisch einige Einträge zu den Weiteren Merkmalen hinzu.

Name Engine Bedeutung
columns Web Anzahl der Spalten TABLE Komponenten
imagehash Swing, SWT Zeigt den Hashwert eines Icons eines Buttons oder MenuItems
qfs:class Alle Die konkrete Klasse der Komponente, z.B. de.qfs.QfsTextField.
qfs:genericclass Alle Die generische Klasse der Komponente, z.B. TextField.
qfs:item Web Zeigt den Elementindex eines DomNode, wenn dieser ein Element einer komplexen GUI-Komponente ist. Dies kann passieren, wenn Kindkomponenten aufgezeichnet werden, die als ebenfalls relevant betrachtet werden. Solche Elemente können in Bäumen, Listen, Reitern und Tabellen vorkommen.
qfs:label*-Varianten Alle Bis QF-Test Version 6: qfs:label enthält die beste Beschriftung einer Komponente. Dies kann ein Text eines Buttons oder der Text der am nächsten gelegenen Label Komponente sein. Wenn weder ein eigener Text noch ein Label gefunden werden kann, wird versucht Tooltips bzw. Icon Beschreibungen auszulesen.
Ab QF-Test Version 7.0: Ein oder mehrere Einträge für Beschriftungen, die für die betrachtete Komponente in Frage kommen - die am besten bewertete mit dem Status "Sollte übereinstimmen", die anderen mit "Ignorieren". Zum Beispiel qfs:labelText für den Text der Komponente selbst oderqfs:labelLeft für eine Beschriftung links der Komponente. Weitere Informationen finden Sie unter qfs:label*-Varianten.
qfs:matchindex Alle Index von Komponenten mit demselben Namen. Wird ggf. automatisch zugewiesen, wenn die Option Wiedererkennung von Komponenten bei der Aufnahme validieren aktiviert ist.
qfs:modal Web Zeigt an, ob die Komponente der Klasse "Window" ein modales Fenster ist.
qfs:originalid Web Zeigt die originale ID des Knotens an, so wie diese wirklich im Dom steht.
qfs:systemclass Alle Die toolkit-spezifische Systemklasse, z.B. javax.swing.JTextField.
qfs:text Alle Enthält den Text der Komponente. Wird standardmäßig nicht aufgenommen, kann aber in SmartIDs oder durch manuelles Anlegen im 'Komponente' Knoten für die Wiedergabe beliebig verwendet werden.
qfs:type Alle Der generische Typ der Komponente, z.B. TextField:PasswordField.
Tabelle 41.38:  Weitere Merkmale, die von QF-Test gesetzt werden

Weitere Informationen finden Sie im Kapitel Weitere Merkmale.

Variabel: Ja

Einschränkungen: Name darf nicht leer sein

Struktur

Zur Wiedererkennung notiert QF-Test charakteristische strukturelle Merkmale der Komponenten. Die Anzahl der Komponenten im SUT die die selbe Klasse haben und dem selben Parent angehören, wird im Attribut 'Insgesamt' eingetragen. Die Position der jeweiligen Komponente bei dieser Zählung landet im Attribut 'Index'. Die erste Komponente erhält den Index 0. Unsichtbare Komponenten werden hierbei mitgezählt.

Hinweis Es kann auch nur eines der beiden Attribute angegeben werden, das andere wird dann ignoriert.

Allgemeine Informationen finden Sie im Kapitel Index.

Variabel: Ja

Einschränkungen: Nicht negativ.

Geometrie

Die X/Y Koordinaten, Breite und Höhe des Fensters bilden die Ausgangsbasis für die Wiedererkennung, spielen dabei aber eine untergeordnete Rolle. Für Komponenten, deren Position oder Größe zur Laufzeit typischerweise stark variieren, werden die entsprechenden Werte nicht aufgezeichnet.

Hinweis Sind keine Werte angegeben, startet der Mechanismus zur Wiedererkennung mit perfekter Übereinstimmung der Geometrie für alle Kandidaten. Um falsch-positive Treffer auf Basis der Geometrie zu verhindern, können Sie die Erkennung auf Basis der Geometrie unterdrücken, indem sie für diese Werte ein '-'-Zeichen eintragen.

Allgemeine Informationen finden Sie im Abschnitt Geometrie.

Variabel: Ja

Einschränkungen: Breite und Höhe dürfen nicht negativ sein.

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Element'

'Mausevents' und Checks können sich bei einer komplexen Swing Komponente auch auf ein Unterelement beziehen. Dieses Unterelement wird über einen Index, den Primärindex identifiziert. Dieser kann auf drei Arten festgelegt werden: als Text, als Zahl oder als Regexp. Text und Regexp definieren dabei ein Unterelement mit entsprechender Darstellung, während eine numerische Interpretation des Index ein Unterelement an Hand seiner Position bestimmt. Wie in Java üblich, hat das erste Unterelement die Position 0.

Für die Klasse JTable kann neben dem Primärindex, der die Tabellenspalte festlegt, auch der Sekundärindex zur Bestimmung der Zeile angegeben werden.

Für die Knoten von JTree Komponenten gibt es zwei Darstellungen: Flach wie in einer Liste oder hierarchisch mittels Pfadangaben. Ein Knoten names tmp unterhalb eines Knotens namens usr würde im besten Fall einfach als tmp dargestellt, im zweiten Fall als /usr/tmp. Welche Form bei der Aufnahme verwendet wird, entscheidet die Option Knoten im Baum als Pfad darstellen.

Für folgende komplexe Swing Komponenten sind Elemente definiert:

KlassePrimärindexSekundärindex
JComboBoxListenelement-
JEditorPaneStrukturelement (experimentell)-
JListListenelement-
JTabbedPaneTab-
JTableTabellenspalteZeile
JTableHeaderTabellenspalte-
JTextAreaZeile-
JTreeKnoten-
Tabelle 41.39:  Unterelemente komplexer Swing Komponenten

Enthalten in:'Komponente'.

Kinder: Keine.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Element Attribute
Abbildung 41.91:  'Element'-Attribute
QF-Test ID

Mit Hilfe der QF-Test ID kann ein 'Element' z.B. von einem 'Mausevent' referenziert werden, der sich auf dieses Element bezieht. Es ist daher wichtig, Elementen ebenso wie Fenstern und Komponenten möglichst prägnante QF-Test IDs zu geben, an die Sie sich gut erinnern können. Außerdem dürfen Sie jede QF-Test ID pro Suite nur einmal vergeben.

Variabel: Nein

Einschränkungen: Darf nicht leer sein, keines der Zeichen '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Primärindex'

Identifiziert das Unterelement. Je nachdem, ob "als Text", "als Zahl" oder "als Regexp" gewählt ist, wird das Unterelement durch direkten Textvergleich, über seinen Index, oder durch Vergleich mit der Regexp ermittelt.

Es ist möglich, einen leeren Primärindex anzugeben, z.B. für eine Tabellenspalte ohne Überschrift.

Variabel: Ja

Einschränkungen: Muss ggf. eine gültige Zahl oder eine gültige Regexp sein.

'Sekundärindex'

Die Klasse JTable unterstützt zwei Arten von Unterelementen: Ist nur der Primärindex angegeben, ist eine ganze Spalte gemeint. Ein zusätzlich vorhandener Sekundärindex wählt in dieser Spalte eine Zelle aus.

Der Sekundärindex muss zunächst über die Checkbox aktiviert sein, bevor sein Wert festgelegt werden kann. Nur dadurch kann ein leerer Index von einem nicht vorhandenen unterschieden werden. Ein leerer Sekundärindex definiert eine Zelle mit leerem Inhalt.

Variabel: Ja

Einschränkungen: Muss ggf. eine gültige Zahl oder eine gültige Regexp sein.

Als Text

Der Primär- bzw. Sekundärindex wird als Text interpretiert. Dieser Text wird mit dem dargestellten Text der Unterelemente der komplexen Komponente verglichen.

Variabel: Nein

Einschränkungen: Keine

Als Zahl

Der Primär- bzw. Sekundärindex wird als Zahl interpretiert. Diese legt die Position des Unterelements fest, beginnend bei 0.

Variabel: Nein

Einschränkungen: Keine

Als Regexp

Der Primär- bzw. Sekundärindex wird als Regexp interpretiert. Diese Regexp wird mit dem dargestellten Text der Unterelemente verglichen.

Variabel: Nein

Einschränkungen: Keine

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Fenstergruppe'

Eine 'Fenstergruppe' dient dazu, bei größeren Programmen mit vielen Fenstern eine bessere Strukturierung zu ermöglichen.

Enthalten in:'Fenster und Komponenten', 'Fenstergruppe'.

Kinder:'Fenstergruppe', 'Fenster'.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Fenstergruppe Attribute
Abbildung 41.92:  'Fenstergruppe'-Attribute
Name

Der Name ist frei wählbar. Er wird im Baum angezeigt und soll Ihnen helfen, die Übersicht über die Fenster zu behalten.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Komponentengruppe'

Eine 'Komponentengruppe' dient dazu, bei größeren Fenstern mit vielen Komponenten eine bessere Strukturierung zu ermöglichen.

Enthalten in:'Fenster', 'Komponentengruppe'.

Kinder:'Komponente', 'Komponentengruppe'.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Komponentengruppe Attribute
Abbildung 41.93:  'Komponentengruppe'-Attribute
Name

Der Name ist frei wählbar. Er wird im Baum angezeigt und soll Ihnen helfen, die Übersicht über die Komponenten eines 'Fensters' zu behalten.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Fenster und Komponenten'

Der 'Fenster und Komponenten' Knoten ist der Platz in der Testsuite, an dem die Fenster und Komponenten untergebracht sind.

Enthalten in: Wurzelknoten

Kinder:'Fenster', 'Fenstergruppe'.

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Alle Fenster Attribute
Abbildung 41.94:  'Fenster und Komponenten'-Attribute
'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine