Automatisierte UI-Tests – Warum sie für die Qualitätssicherung unerlässlich sind

Hast du es satt, das GUI deiner Webanwendung zum x-ten Mal manuell zu testen? Wie wäre es, die Qualität deiner Software durch automatisierte UI-Tests sicherzustellen? In diesem Blog-Artikel möchten wir dir die Vor– und Nachteile, sowie ein einfaches Beispiel, rund um automatisierte UI-Tests, vorstellen.

Es gehört heute zum guten Ton, dass die Qualität einer Software durch automatisierte Tests sichergestellt wird. Unit-Tests, sowie Integrationstests sind dabei beliebte Stichworte und in der modernen Softwareentwicklung ein Muss. Das GUI einer Applikation wird heute vielfach noch manuell durch einen leibhaftigen Menschen getestet. Diese Tests können sehr repetitiv und langweilig sein. Das hat zur Folge, dass sie in der Praxis gerne mal vernachlässigt werden. Glücklicherweise gibt es mittlerweile Möglichkeiten, mit welchen sich diese Tests automatisieren lassen. Man spricht dabei von automatisierten UI-Tests. Als beliebtes UI-Test-Framework hat sich Selenium etabliert. 

Wer steckt hinter Selenium 

Selenium ist ein Open Source-Softwareprojekt, das durch Jason Huggins (ThoughtWorks) im Jahre 2004 initiiert wurde. Die Selenium Community besteht heute aus einer breiten Palette von Entwickler:innen und Anwender:innen, welche eine grosse Sammlung von Tools und Bibliotheken erstellt hat. Somit handelt es sich um ein Umbrella Project. Ein Nachteil von Selenium ist die ausschliessliche Beschränkung auf UI-Tests. Ausserdem werden für das Schreiben von Tests erste Entwickler-Erfahrungen vorausgesetzt, da diese in Code-Form implementiert werden. Die aktuelle Version von Selenium ist beim Erstellen von diesem Blog-Beitrag die Version 4.7.0 für C#. Veraltete Webtechnologien wie Silverlight werden nicht unterstützt. Mit Selenium hat man die Möglichkeit, die Tests mittels WebDriver, IDE oder Grid zu implementieren.

Funktionsweise von Selenium 

Ein Testszenario wird mithilfe einer Programmiersprache (Java, Phyton oder C#) implementiert. In diesem Code wird die Interaktion mit der Benutzeroberfläche beschrieben. Selenium startet über einen installierten WebDriver die gewünschte Browser-Instanz und simuliert die vorgegebenen Benutzerinteraktionen.  

Funktionsweise von Tests mittels Selenium WebDriver (Bildquelle: Elia Krummenacher & Manuel Agner)

Beim Starten des Tests aus einer lokalen Instanz, wird auf die zu testende Website navigiert. Auf dieser werden nun die im Test implementierten Benutzerinteraktionen ausgeführt. Es können:

  • Hyperlinks angeklickt werden
  • Formulare befüllt und abgesendet werden
  • Dokumente hochgeladen werden
  • Cookies können mutiert werden
  • und vieles mehr

Zur Sicherstellung der Resultate gibt es folgende Möglichkeiten: 

  • Erstellung von Screenshots
  • Vergleich von Anzeigetexten
  • Download von Resultaten
  • Generierung von Reports
Selenium Test Beispiel in C# (Bildquelle: Elia Krummenacher & Manuel Agner)

Vorteile von Selenium 

  • Zeitersparnis: Tests können schnell und in hoher Frequenz ausgeführt werden.
  • Zuverlässigkeit: Automatisierte UI-Tests sind weniger fehleranfällig. Langwierige Testabläufe werden immer nach demselben Ablauf ausgeführt.
  • Konsistenz: Tests können x-fach wiederholt werden und sicherstellen, dass sich das Verhalten einer Web-Anwendung nicht geändert hat.
  • Kosteneinsparung: Langfristig sparen automatisierte Tests viele menschliche Testressourcen ein.
  • Kürzere Release-Zyklen

Nachteile von Selenium 

  • Zeitaufwändig / Komplex: Es muss bereits bei der Entwicklung des GUI’s darauf geachtet werden, dass die Navigationselemente durch die Testsoftware angesprochen werden können.
  • Automatisierte UI-Tests haben kein User-Feedback.
  • Know-how in der Softwareentwicklung notwendig.

Fazit 

Wir sind der Überzeugung, dass viele grundlegende Funktionalitäten von Webseiten mittels automatisierten Tests abgedeckt werden können. Jedoch benötigt es in jedem Fall manuelle Tests, um ein Interaktionsgefühl zu erlangen. Die Qualitätssicherung ist dadurch garantiert, dass die Reihenfolge der Testschritte statisch implementiert ist.

 

Weiterführende Links

Selenium Dokumentation

Beitrag teilen

Elia Krummenacher & Manuel Agner

Elia Krummenacher ist System Engineer bei dem Migros Genossenschafts-Bund und bloggt aus dem Unterricht des CAS Modern Software Engineering & Development. Manuel Agner ist Softwareentwickler bei der IMS integrierte Managementsysteme AG und bloggt aus dem Unterricht des CAS Modern Software Engineering & Development.

Alle Beiträge ansehen von Elia Krummenacher & Manuel Agner →

Schreibe einen Kommentar