'Komponente'-Knoten

Wenn 'Komponente' Knoten an Stelle von SmartIDs verwendet werden, speichert QF-Test die Wiedererkennungskriterien der aufgezeichneten Komponenten in 'Fenster' und 'Komponente' Knoten ab, deren hierarchische Anordnung der Struktur des GUI im SUT entspricht. Diese Knoten befinden sich unterhalb des 'Fenster und Komponenten' Knotens. Das folgende Bild zeigt einen Ausschnitt der 'Komponente'-Knoten, die zum QF-Test Hauptfenster gehören:

Komponentenhierarchie eines Swing SUT
Abbildung 5.9:  Komponentenhierarchie eines Swing SUT

Im Detailbereich eines 'Komponente' Knotens werden die Wiedererkennungskriterien abgespeichert. Zusätzlich befindet sich darin das 'QF-Test ID' Attribut. Dieses ist die Referenz-ID für alle Knoten in den Tests, die sich auf eine Komponente beziehen.

Komponentenknoten
Abbildung 5.10:  Komponentenknoten

Jeder Knoten einer Testsuite besitzt ein 'QF-Test ID' Attribut, welches für die meisten Knoten keine besondere Bedeutung hat und automatisch verwaltet wird. Für 'Komponenten' Knoten hat die 'QF-Test ID' dagegen eine wichtige Funktion. Andere Knoten mit einer Zielkomponente, wie Events oder Checks, haben das Attribut 'QF-Test ID der Komponente', welches sich auf die 'QF-Test ID' des 'Komponente'-Knotens bezieht. Diese indirekte Referenzierung der GUI-Elemente ist sehr nützlich: wenn sich die Oberfläche des SUT auf eine Weise ändert, die QF-Test nicht automatisch kompensieren kann, müssen lediglich die 'Komponenten' Knoten der nicht erkannten Komponenten angepasst werden und der Test läuft wieder.

Es ist sehr wichtig sich klarzumachen, dass die 'QF-Test ID' einer 'Komponente' nur ein künstliches Konzept für den internen Gebrauch innerhalb von QF-Test ist, nicht zu verwechseln mit dem Attribut 'Name' welches zur Identifikation der Komponente im SUT dient, worauf wir im folgenden Abschnitt genau eingehen werden. Der eigentliche Wert der 'QF-Test ID' ist vollkommen irrelevant und steht in keinem Bezug zum GUI des SUT. Entscheidend ist nur, dass die 'QF-Test ID' eindeutig ist und dass andere Knoten sich korrekt darauf beziehen. Andererseits wird die 'QF-Test ID' des 'Komponente'-Knotens in der Baumansicht angezeigt, und zwar nicht nur für die 'Komponente' selbst, sondern auch für Events und andere Knoten, die sich darauf beziehen. Folglich sollten 'Komponenten' aussagekräftige 'QF-Test IDs' besitzen, die auf die eigentliche Komponente im GUI hinweisen.

Wenn QF-Test einen 'Komponente'-Knoten anlegt, muss es ihm automatisch eine 'QF-Test ID' zuweisen. Es tut sein Bestes, einen aussagekräftigen Bezeichner aus den verfügbaren Informationen zu konstruieren. Details hierzu finden Sie in Generierung der 'QF-Test ID' der Komponente. Sollte Ihnen eine generierte 'QF-Test ID' nicht zusagen, können Sie diese ändern. Wenn Sie dabei einen Wert wählen, der schon vergeben ist, gibt QF-Test eine Warnung aus. Haben Sie bereits Events aufgezeichnet, die sich auf diese Komponente beziehen, bietet QF-Test an, deren 'QF-Test ID der Komponente' Attribute automatisch anzupassen. Diese Automatik funktioniert nicht bei Referenzen mit Variablen im 'QF-Test ID der Komponente' Attribut.

Hinweis Ein häufig gemachter Fehler ist es, das Attribut 'QF-Test ID der Komponente' eines Events anstelle der 'QF-Test ID' selbst zu ändern. Dadurch wird die Verbindung zwischen dem Event und seiner Zielkomponente zerstört, was zu einer UnresolvedComponentIdException führt. Sie sollten das also nur dann tun, wenn Sie tatsächlich die Zielkomponente ändern wollen.

Häufig werden Tests aus vorhandenen Prozeduren zusammengestellt. Dann ist es oft hilfreich, dass in Abschnitt Komponenten aufnehmen beschriebene Verfahren zum direkten Aufzeichnen von Komponenten zu verwenden. Die 'QF-Test ID' der so aufgenommenen Komponente wird in der Zwischenablage des Betriebssystems gespeichert und kann somit einfach im entsprechenden Prozedurparameter eingefügt werden.

Man kann mittels Komponenten aufnehmen auch zunächst die gesamte Struktur der Komponenten des SUT erstellen, um einen Überblick zu erhalten und sinnvolle 'QF-Test IDs' zu vergeben. Bei Aufnahmen werden dann diese 'QF-Test IDs' verwendet.