Erkennung von UI-Elementen
Langsame und fehleranfällige UI-Tests sind meist eine Folge von Unzulänglichkeiten im Testdesign. Im Gegensatz dazu kommen robuste designte Tests auch mit UI-Veränderungen zurecht. Einer der wichtigsten Faktoren in diesem Zusammenhang ist, wie UI-Elemente (also Textfelder, Buttons, Scrollleisten usw.) im Rahmen des Tests erkannt bzw. gefunden werden.

Die Grundlagen

Typischerweise sind UIs (ob Desktop, Mobile oder Web) als eine Reihe von ineinander verschachtelten Containern aufgebaut.  Um ein bestimmtes UI-Element im zugehörigen Container zu finden, greift ein automatisierter Test auf verschiedene Elementattribute wie ID, Klasse, Name und Pfad zu. In diesem Zusammenhang kann man diese Attributen als Identifikatoren bezeichnen. Manche Identifikatoren sind dabei stabiler als andere.

Sehen Sie sich das folgende Video an, um zu verstehen, wie die Identifizierung von UI-Elementen in Ranorex Spy abläuft. Beachten Sie dabei auch, dass Ranorex Spy automatisch Platzhalter (*/*) im Elementpfad einfügt. Das macht den Pfad noch robuster. Falls sich in der Hierarchie der Anwendung etwas ändert, also in der Verschachtelung der Container, kann der Test das UI-Element so dennoch finden.

 

Stabile Identifikatoren

Mit den folgenden Richtlinien können Sie Ihren Test so konstruieren, dass er UI-Elemente zuverlässig auch bei Änderungen identifizieren kann.

Icon coordinate based recognition

Koordinatenbasierte Erkennung vermeiden

Wie der Name schon sagt, werden hier UI-Elemente über Ihre X-Y-Koordinaten gefunden. Damit das funktioniert, dürfen Elemente natürlich ihre Position nicht verändern. Dieser Zugang war selbst in Legacy-Anwendungen, die noch für feste Bildschirmgrößen konzipiert waren, schon recht fragil. Heutzutage ist diese Art der Elementerkennung aufgrund der vielen verschiedenen Bildschirmgrößen, -auflösungen und sogar -ausrichtungen noch instabiler geworden.
Icon image based recognition

Bildbasierte Erkennung vermeiden

Hier wird ein gespeichertes Bild mit der Bildschirmdarstellung während der Ausführung Pixel für Pixel verglichen. Wird das Bild des gesuchten UI-Elements in der Bildschirmdarstellung gefunden, werden seine Koordinaten an den Test ausgegeben. Die bildbasierte Erkennung unterliegt bei der Identifikation eines spezifischen UI-Elements denselben grundlegenden Schwächen wie die koordinatenbasierte und sollte deswegen möglichst vermieden werden. Bei Regressionstests allerdings kann die bildbasierte Erkennung durchaus sinnvoll sein, da hier die Bildschirmdarstellung quasi das gesamte UI-Element darstellt, das mit dem gespeicherten Bild abgeglichen wird.
icon dynamic IDs

Dynamische IDs vermeiden

Dynamische IDs sind solche, die sich bei jedem Laden einer Anwendung oder Webseite ändern. Sie stehen oft in Verbindung mit dynamischen Inhalten, wie zum Beispiel die aktuelle Uhrzeit auf einer Webseite. Im Idealfall weisen Sie jedem UI-Element in Ihrer Anwendung eine Unique ID zu, anhand derer es eindeutig zu erkennen ist. Wenn das nicht möglich ist, sollten Sie andere eindeutige Attribute verwenden, wie zum Beispiel Name (falls nicht auch dynamisch), Link, CSS oder XPath. Ranorex Studio erlaubt die Anwendung von Gewichtungen, sogenannten Weight Rules, um dynamische IDs zu umgehen und stattdessen andere Attribute zur Identifikation zu verwenden. Zusätzlich lassen sich noch Bedingungen konfigurieren, in welchen Fällen die Weight Rules angewandt werden sollen. Mehr zu diesem Thema erfahren Sie im englischen Blogartikel Automated Testing and Dynamic IDs.
Icon shortest path

Den kürzesten Pfad verwenden

Achten Sie darauf, den Pfad zur Elementerkennung so kurz wie möglich zu halten und dabei sorgsam zwischen Schnelligkeit und Robustheit abzuwägen. Wenn Sie zum Beispiel auf eine Webseite ein Element identifizieren wollen, das aber kein eindeutiges Attribut hat, dann weichen Sie auf das nächstliegende Element aus, das ein solches Attribut aufweist, vorzugsweise auf das direkt über- oder untergeordnete Element.

Das folgende Video zeigt die Elementerkennung anhand des RanoreXPath. Der RanoreXPath ist eine auf XPath basierende, erweiterte Abfragesprache, um Teile von XML-Dokumenten anzusprechen.

Weitere Best Practices

Folgen Sie diesen Best Practices, um Ihre Tests noch widerstandsfähiger zu machen und den Wartungsaufwand zu verringern.

Icon object repository

Repositorys verwenden

Die Verwendung eines Repositorys erlaubt es Ihnen, die Definitionen von UI-Elementen vom Automatisierungscode zu trennen. Das spart Arbeit, denn so müssen Sie bei Änderungen an einem UI-Element nicht mehr überall im Code alle Referenzen aktualisieren, sondern nur ein Mal im Repository. Außerdem ist ein gemeinsam nutzbares Repository auch bei der Arbeit in Teams nützlich und erleichtert die Zusammenarbeit zwischen Testern und Programmierern.
Icon developer

Entwickler miteinbeziehen

Wie bereits erwähnt ist es einfacher, robuste automatisierte Tests zu erstellen, wenn jedes UI-Element mit einer eindeutigen ID versehen ist. Zusätzlich können Entwickler das Testen unterstützen, indem sie Ereignisprotokolle über das Anwendungsverhalten erstellen und Hinweise über den Status der Anwendung einbauen, wie aussagekräftige Fehlermeldungen, Statusleisten und Breadcrumbs.

Fehlerbehandlung

Auch wenn robuste Identifikatoren verwendet werden, kann die Elementerkennung fehlschlagen. Hier ein paar Tipps, was Sie in solchen Fällen tun können.

Icon invisible UI elements

Unsichtbare UI-Elemente

Elemente wie Drop-Down-Menüs, Pop-Ups und Combo-Boxen erscheinen erst nach einer bestimmten Aktion oder verschwinden, wenn die Anwendungen nicht mehr im Vordergrund ist. Um hier Fehler in der Erkennung zu vermeiden, stellen Sie sicher, dass im Test alle Schritte inkludiert sind, die ein User ausführen würde, um zu diesem Element zu gelangen. Eventuell müssen Sie auch eine Zeitverzögerung in den Test einbauen, damit er pausiert, bis das entsprechende Element erscheint.
Icon snapshot

Ranorex Snapshots

Wenn Sie bereits Ranorex Studio nutzen, können Sie sogenannte Ranorex Snapshots erstellen und diese an unser Support-Team weiterleiten, um Hilfe beim Lösen von Problemen mit der Elementerkennung zu erhalten. Das folgende Video zeigt, wie Sie das Erkennungsverhalten von Ranorex Studio in Bezug auf Ihre Anwendung prüfen können. Außerdem wird darin auch gezeigt, wie Sie einen Ranorex Snapshot erstellen.