zurück
Avatar of Max Melzer
Autor: Max Melzer
16. Dezember 2022

SmartID – Die nächste Generation der Komponentenerkennung

Viele Anwender:innen von QF-Test kennen das Problem: Mit steigender Testgröße wächst auch der Komponentenbaum unter "Fenster und Komponenten" immer weiter und wird schließlich so enorm, dass man es aufgibt, den Überblick über einzelne Komponenten zu behalten.

Für weniger komplexe Testszenarien ist dies kein Problem. QF-Test ist so entworfen, dass man im Idealfall den Komponentenbaum gar nicht zu beachten braucht; dank intelligentem "record & replay" übernimmt QF-Test das Anlegen und Wiederverwenden von Komponenten komplett automatisch.

Screenshot eines QF-Test-Fensters mit einem riesigen Komponentenbaum.

Nicht wenige unserer Kunden sind jedoch an eine Grenze gestoßen, hinter der sie die Wartung des Komponentenbaums nicht mehr QF-Test allein überlassen konnten. Gemeinsam mit ihnen haben wir verschiedene Lösungen erarbeitet. Ein häufig eingesetztes Muster waren Generische Komponenten. Mit QF-Test Version 6.0 kam das überlegenere Feature SmartID hinzu.

Umweg über Generische Komponenten

Eine generische Komponente ist eine Komponente, in der entscheidende Eigenschaften mit einer Variable befüllt sind, sodass eine Komponente je nach aktuellem Variablenwert anderen GUI-Elementen zugeordnet werden kann. Generische Komponenten sind – in den richtigen Händen – ein mächtiges Werkzeug, um den Komponentenbaum schlank und übersichtlich zu halten, und damit auch die Lesbarkeit der Tests zu verbessern.

Screenshot eines QF-Test-Fensters mit einer typischen Generischen Komponente.

Aber auch Generische Komponenten kamen immer wieder an ihre Grenzen. Die QF-Test Aufnahmefunktion konnte nur noch eingeschränkt zur Testentwicklung verwendet werden. Um Vollständig auf Generische Komponenten zu setzen, musste außerdem für jede einzelne Klasse und generische Eigenschaft und alle Kombinationen von beiden eine eigene Komponente angelegt werden, was schnell unübersichtlich wurde. Besonders unhandlich wurde es dann, wenn Änderungen an der zu testenden Anwendung Anpassungen an der Komponentenerkennung nötig machten. Dann mussten quer durch alle Testsuiten Variablenwerte und Prozedurparameter angepasst werden, um die Generischen Komponenten wieder richtig aufzulösen.

Wir haben also weiter an dieser Frage gearbeitet und sind schließlich beim neuen Paradigma SmartID angekommen.

SmartID – Komponentenerkennung "Smart"

Anders als Generische Komponenten ist SmartID nicht nur ein Verwendungsmuster, sondern ein komplett neues Feature, um GUI-Element anzusprechen. Bei der Entwicklung der SmartID war unsere Maxime: "Keep simple things simple".

Eine der Stärken des klassischen Komponentenbaums ist, dass QF-Test sich dank Aufnahmefunktion größtenteils selbst um die Verwaltung der konkreten Komponenten kümmert. Der entscheidende Vorteil von Generischen Komponenten ist, dass sie die Komplexität des Komponentenbaums durch Konzentration auf relevante Elementeigenschaften elegant umgehen. SmartID wiederum kombiniert diese zwei Vorteile: Die Pflege des Komponentenbaums fällt weg, und trotzdem können gezielt die entscheidenden Wiedererkennungsmerkmale angesprochen werden.

Wie das funktioniert? Die Definition der Komponente wandert komplett in die "QF-Test ID"-Referenz:

Screenshot eines QF-Test-Fensters mit einem Mausklick-Knoten. Im Feld "QF-Test ID" steht die SmartID #Button:OK.

In einer SmartID wird über eine mächtige Syntax aus allen möglichen Wiedererkennungsmerkmalen ein einziges oder eine bestimmte Kombination explizit ausgewählt. Die SmartID wird direkt an Stelle der QF-Test ID der Komponente angegeben. Es wird also überhaupt kein Komponentenknoten mehr referenziert oder generiert. Und: QF-Test ist intelligent genug, um auf Wunsch sogar bei der Aufnahme von Klicks und Checks SmartIDs statt Komponentenknoten zu erzeugen.

Dabei kann eine SmartID auf all die gleichen Merkmale zugreifen wie aufgezeichnete Komponenten.

SmartID-Anwendungsbeispiele

Mittels SmartID ist es nun sehr einfach möglich, mit QF-Test Testgetriebene Entwicklung (TDD) oder auch Schlüsselwortbasierte Tests (KDT, BDT) zu schreiben, da SmartIDs nicht aufgenommen werden müssen, sondern aus der Spezifikation einer sogar noch nicht entwickelten Anwendung abgeleitet werden können.

Diese Unhabhängigkeit vom konkreten Zustand des SUT erleichtert ebenfalls die Integration mit anderen Testwerkzeugen (zum Beispiel Robot Framework), oder technologieübergreifende Tests, etwa einer Web- und einer Android-Version der gleichen Anwendung.

Verfügbar seit QF-Test 6.0

Seit QF-Test Version 6.0 ist SmartID als Preview vollständig unterstützt. Die automatische Aufnahme lässt sich über das Menü „Aufnahme“ aktivieren.

Was bedeutet aber "Preview"? Weil wir noch nicht unsere komplette Vision für SmartID umgesetzt haben, möchten wir uns Nachbesserungen und Änderungen im Detail vorbehalten. Aber wir ermutigen unsere Kundinnen und Kunden, das Feature ohne Sorge um Rückwärtskompatibilität zu nutzen. Nicht wenige (uns selbst eingeschlossen) haben SmartID bereits im produktiven Einsatz.

Ist das das Ende des Komponentenbaums?

Wir sind überzeugt, dass SmartID der beste Weg sein wird, um mit QF-Test GUI-Komponenten anzusprechen. Besonders von der Verwendung von Generischen Komponenten raten wir ab, da SmartID für diese Anwendungsfälle beinahe immer besser geeignet ist.

Trotzdem wird der Komponentenbaum in QF-Test nicht in absehbarer Zukunft abgeschafft. Es wird immer Situationen geben, in denen eine klassisch aufgenommene Komponente einfacher zu handhaben oder performanter als eine SmartID ist. SmartID und klassische Komponenten lassen sich außerdem nahtlos kombinieren, sodass überhaupt keine Konkurrenzsituation entstehen muss.


Wenn Sie mehr über SmartID erfahren möchten, können Sie alle Details im QF-Test Handbuch nachlesen oder die Videoaufzeichnung zu unserem Spezialwebinar "SmartIDs" ansehen.

Die Kommentarfunktion ist für diesen Artikel deaktiviert.

0 Kommentare