Holen Sie sich die UMFANGREICHSTE Abdeckung für die Einhaltung von MISRA C! Erfahren Sie mehr >>

Sie müssen Selen nicht loswerden, um Ihre Selenprobleme loszuwerden

Von Chris Colosimo

17. Oktober 2019

6  min lesen

Es ist klar, dass Selen die beliebteste Wahl für Unternehmen ist, die ihre UI-Tests automatisieren, aber die Teams stehen immer noch vor Herausforderungen. Erfahren Sie, wie Sie diese Herausforderungen lösen können, ohne das Framework ganz aufzugeben.

Bei der Durchführung von Umfragen zu UI-Testtools wurde sehr deutlich, dass Selen zum De-facto-Standard geworden ist. Aber das Seltsame war, egal wen wir fragten, wir bekamen immer die gleiche Einschränkung: „Wir lieben Selen, aber es gibt Herausforderungen. “

Also gingen wir zurück in die Community und fragten: "Was sind Ihre größten Herausforderungen beim Testen der Benutzeroberfläche?"

Die Ergebnisse waren klar: Die größte Herausforderung war Bautests, die im Laufe der Zeit gewartet werden können. In weiteren Kundeninterviews haben wir die wichtigsten Selenprobleme auf diese fünf Herausforderungen reduziert:

  1. Erstellen zuverlässiger Locators und Wartebedingungen
  2. Wartungstests, wenn sich die Benutzeroberfläche ändert
  3. Debuggen und Diagnostizieren von Automatisierungsfehlern
  4. Zeitaufwand für die Ausführung der gesamten Suite
  5. Kenntnisse / Fähigkeiten zum Erstellen von Skripten

Dann begannen wir zu überlegen, wie wir helfen könnten, sie zu lösen, ohne Selen loswerden zu müssen. Es stellt sich heraus, dass Sie all diese Herausforderungen lösen können, indem Sie hinzufügen Parasoft Selenic in die Mischung - aber es gibt viele relativ einfache Möglichkeiten, um alle Herausforderungen von Selen zu lösen, ohne die Plattform aufzugeben, die jeder eindeutig liebt.

Wie man die Top 5 Herausforderungen mit Selen löst

Lassen Sie uns diese Herausforderungen genauer untersuchen und herausfinden, wie sie gelöst werden können.

Herausforderung 1: Erstellen zuverlässiger Locators und Wartebedingungen

Um zuverlässige Locators zu erstellen, müssen Sie wissen, wie Sie einen Bezeichner erstellen, der jedes Mal mit dem richtigen Element interagiert und zwischen verschiedenen Ausführungen stabil ist. Benutzer stöbern in den Chrome-Entwicklertools, um den richtigen HTML-Block zu finden, herauszufinden, was er tut, und verbringen dann Zeit damit, den intelligentesten Locator zu erstellen, der möglich ist. Normalerweise passiert, dass der Element-Locator in der Anwendung ausgewählt wird, wenn er sich im aktuellen Status befindet, und dass bei der Wiedergabe die Dinge anders aussehen. Das kann sehr frustrierend sein.

Auch hier spielen Wartebedingungen eine große Rolle. Bei modernen Webanwendungen bedeutet das dynamische Laden von Inhalten auf einer einzelnen Seite, dass Sie selbst dann, wenn Sie den richtigen Locator finden, die richtigen Wartebedingungen erstellen müssen, um sicherzustellen, dass das Element für die Interaktion bereit ist. Es kann alles ein großer Schmerz sein.

Die Lösung: Smart Locators

Es gibt viele UI-Testlösungen, die sich darauf konzentrieren, genau diese Herausforderung mit dem Begriff „Smart Locators“ zu lösen. Smart Locators erfassen den intelligentesten Locator, der beim ersten Erstellen des Testskripts möglich ist, damit es widerstandsfähiger gegen Änderungen ist. Mein letzter Beitrag, der ruft 10 großartige neue Tools zum Testen der Benutzeroberfläche Enthält mehrere Tools, die über Aufnahme- und Wiedergabefunktionen verfügen.

Darüber hinaus gibt es Plug-Ins für Chrome, die bei der Skripterstellung helfen können, die besten Element-Locators direkt aus der Seite zu extrahieren. Ich habe mir einige dieser Plug-Ins angesehen, und das mit Abstand beste, das ich je gesehen habe, ist TruePath.

Herausforderung 2: Wartung von Tests, wenn sich die Benutzeroberfläche ändert.

Dies ist eine schmerzhafte Herausforderung für Unternehmen, wenn es um laufende agile Testaktivitäten geht. Wir hören diese Geschichte immer wieder - Tester verbringen viel Zeit damit, ihren Selenium-Test zu erstellen (mit guten Locators und Wartebedingungen), und dann ändert sich die Benutzeroberfläche der Anwendung und ihre Tests brechen ab, wobei der nächtliche Build häufig fehlschlägt. Der Tester muss dann zurückgehen und herausfinden, was sich in der Anwendung geändert hat, und feststellen, ob es sich um eine handelt realer Defekt / Regression oder ob es ist Nur etwas stimmt nicht mit ihrem Testskript. Führen Sie anschließend den Vorgang zum Korrigieren oder Aktualisieren des Tests durch, indem Sie neue Locators / Wartebedingungen identifizieren und erstellen. Es ist ein Teufelskreis.

Die Lösung: Künstliche Intelligenz

KI kann Ihnen in diesem Bereich wirklich helfen. Ja, ja, ich weiß, KI ist heutzutage so ein Modewort. Aber da sind äußerst praktische Anwendungen. Insbesondere Parasoft Selenic verwendet maschinelles Lernen während der Ausführung des Selentests, um genau diese Herausforderung zu lösen. Jeder Testlauf erzeugt einen eindeutigen Eintrag in seinen Verlauf, der den aktuellen Status des DOM anzeigt und angibt, ob der Test erfolgreich war oder nicht.

Sollte der Test jemals aufgrund einer Änderung der Benutzeroberfläche der Anwendung fehlschlagen, geht Selenic die Zeit zurück und erklärt Ihnen, wie Sie einen neuen Locator erstellen, der mit der neuen Version der Anwendung funktioniert. Dies ist sehr leistungsfähig, da Sie Selenium nicht verlassen müssen, um Wartungsprobleme durch das Ändern von Benutzeroberflächen zu bewältigen. Ein zusätzlicher Vorteil dieser Technologie ist die Fähigkeit, Ihre CI / CD-Pipeline selbst zu heilen und den Locator zur Laufzeit automatisch auf zu aktualisieren verhindern, dass der Build unnötig fehlschlägt).

Herausforderung 3: Debuggen und Diagnostizieren von Automatisierungsfehlern

Das Debuggen und Diagnostizieren von Selentests ist schwierig und kann eine erhebliche Zeitersparnis bedeuten (insbesondere in Verbindung mit einer sich ständig ändernden Benutzeroberfläche). Wir haben festgestellt, dass verschiedene Lösungen versucht haben, diese Herausforderung zu lösen, indem sie ihre eigenen Frameworks mit erweiterten Berichtsfunktionen ausgestattet haben. Dann wurden die Tester jedoch in einer proprietären Plattform oder IDE eingeschlossen. Dies ist „in Ordnung“, wenn Sie vorhaben, für den Rest Ihres Lebens bei diesem Anbieter oder Tool zu bleiben. Aber was ist mit Selenium-Benutzern, die die ursprüngliche Freiheit behalten möchten, die Open Source ihnen bietet?

Die Lösung: Intelligente Automatisierung und Berichterstellung

Um diese Herausforderung zu lösen, können Sie eine Kombination aus Berichterstellung und Analyse der Testausführung in Verbindung mit IDE-Tools verwenden.

Durch das Einstecken von Berichterstellungstools, wie z Parasoft SelenicIn Ihrer vorhandenen CI / CD-Pipeline können Sie leichter nachvollziehen, welche Tests fehlschlagen und warum. Durch die Selbstheilung zur Laufzeit kann Parasoft Selenic verhindern, dass der Build aufgrund instabiler Tests unnötig fehlschlägt. Nach Abschluss des Tests gibt Selenic Empfehlungen zur Behebung dieser fehlerhaften Tests, die zur automatischen Behebung direkt in die IDE importiert werden können.

Die IDEs selbst, wie Eclipse und IntelliJ, verfügen über Debugging-Funktionen, mit denen Sie Haltepunkte in Ihren Selenium-Tests festlegen und die Anwendung an einem bestimmten Punkt anhalten können, um Informationen über den Status der Benutzeroberfläche und die möglichen Ursachen abzurufen Anwendungsfehler.

Herausforderung 4: Zeitaufwand für die Ausführung des gesamten Skripts

Die Ausführung automatisierter UI-Tests dauert länger als Tests, die für die API / Service-Schicht Ihrer Anwendung ausgeführt werden (und viel länger als isolierte Komponententests). Je mehr UI-Tests Sie erstellen, desto länger dauert die Ausführung dieser Tests… und Je länger Sie auf Feedback von der CI / CD-Pipeline warten müssen. Das Problem ist, dass die Pipeline aufgrund häufiger Codeänderungen mehrmals am Tag ausgelöst wird und Sie nicht bis zum nächsten Tag (oder manchmal über das Wochenende) warten können, bevor Sie nützliches Feedback erhalten. Es muss eine Möglichkeit geben, die Ausführung Ihrer Testsuiten zu optimieren, die schnelles Feedback mit umfassender Abdeckung in Einklang bringt.

Die Lösung: Auswirkungsanalyse testen

Hier können Sie Technologien wie z Parasoft Selenic Test Impact Analysis. Indem Sie den Code verfolgen, den jeder Selenium-Test abdeckt, und diesen mit den Änderungen in der Codebasis korrelieren, können Sie die Teilmenge der Tests priorisieren, die ausgeführt werden müssen, um die Codeänderungen zu validieren. Mit Parasoft Selenic müssen Sie keinen Zugriff auf den zugrunde liegenden Code haben, da es einfach die Binärdateien (z. B. .war oder file) durchsucht, identifiziert, welche Klassen zwischen Builds geändert wurden, und diese dann den betroffenen Testfällen zuordnet, um sie zu aktivieren Sie können eine Teilmenge Ihrer Selenium-Tests als Teil der CI / CD-Pipeline ausführen.

Herausforderung 5: Kenntnisse und Fähigkeiten, die zum Erstellen von Skripten erforderlich sind

Schließlich können das Wissen und die Fähigkeiten, die erforderlich sind, um die Selentests überhaupt erst zu erstellen, die Verwendung von Selen unzulässig machen. Je nachdem, mit wem wir gesprochen haben, war dies entweder der erste oder der letzte auf der Liste der Herausforderungen, denen sich die Menschen gegenübersahen. Wir würden normalerweise sehen, dass, als Benutzer gerade mit Selen anfingen, ihre größte Herausforderung die Testerstellung war - aber sobald sie anfingen, eine ausgereifte Testpraxis aufzubauen, war dies nicht mehr die größte Herausforderung und wirklich die anderen Probleme wurde wichtiger. So wie ich das sehe, ist es die eigentliche Herausforderung, diese anfängliche Hürde zu überwinden.

Die Lösung: Code-Helfer

Es gibt solche Dinge wie die Selenium- und NLP-gesteuerte Selenium-Erstellung ohne Code, aber ich habe keine besonders gesehen, die so funktioniert, wie wir es uns alle erhoffen würden. Eine der Hauptrealitäten von Selen ist, dass es Code ist. Das ist gut und schlecht. Es ist gut, denn wenn Sie Dinge haben, die außerhalb der „normalen Praxis“ liegen, können Sie durch eine schnelle Google-Suche einige gute Codebeispiele finden. Es ist schlecht, weil es Code ist, und das stellt für einige Tester ein Hindernis dar.

Müssen Sie Entwickler sein, um Selenium-Skripte zu erstellen? Die Antwort ist nein, aber einige Entwicklungsfähigkeiten helfen. Wie ich bereits erwähnt habe, sind viele der Tolle neue UI-Testtools haben Rekorder, die Selenium-Skripte erstellen, wie z Parasoft Selenic, SeleniumIDE und Katalon. Diese Hilfstools bieten Benutzern, die Selenium noch nicht kennen, einen Einstieg in die Praxis und bieten einen Mittelweg zwischen Code-frei und codiert. Natürlich muss man sich dessen bewusst sein Kein UI-Aufnahme- und Wiedergabetool ist perfekt (Natürlich gibt es auch Möglichkeiten, diese Herausforderungen zu lösen).

Fazit

Selen ist die erste Wahl für die Automatisierung von Benutzeroberflächen. Die Technologie wird von Tag zu Tag besser. Es gibt viele Technologien, die Selenium unterstützen und dabei helfen, einige seiner grundlegenden Herausforderungen zu lösen. UI-Tests sind für die Validierung des Kundenerlebnisses von entscheidender Bedeutung. Die Möglichkeit, umfangreiche und aussagekräftige Selentests zu erstellen, die über einen längeren Zeitraum gewartet werden können, trägt dazu bei, die allgemeine Testabdeckung in unserer Branche zu verbessern, um in Zukunft bessere und aussagekräftigere Erfahrungen zu erzielen.

Von Chris Colosimo

Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.