Aufgrund des steigenden Umfangs und der Komplexität von Webanwendungen ist in den letzten Jahren der Bedarf nach automatisierten Softwaretests signifikant gestiegen. Um diesen Aspekt Rechnung zu tragen, hat die Firma ThoughtWorks das quelloffene Testwerkzeug Selenium entwickelt, dass sie 2004 veröffentlicht hat.
Inzwischen gehört Selenium und seine verschiedenen Toolvarianten zu eine der bekanntesten Testwerkzeuge im Bereich des automatisierten Testens von Webapplikationen.
Selenium-Varianten
Selenium selber besteht aus einer Tool-Familie. Hierzu gehört die Selenium IDE, ein ideales Capture & Replay-Werkzeug für Testautomatisierer, die Selenium das erste Mal verwenden möchten. Mit dieser Erweiterung (Add-on) von Mozilla Firefox ist es möglich, ausgeführte Interaktionen mit einer Internetseite direkt aufzuzeichnen, Objekterkennungen durchzuführen und die Aufzeichnungen dann ablaufen zu lassen oder als Skripte zu speichern. Diese können dann im Nachgang angepasst, beziehungsweise in verschiedene Programmiersprachen exportiert werden. Selenium IDE selber kann durch Firefox-Add-ons in seiner Funktonalität erweitert werden (z.B. Log-Plugin, Test Resuls, ScreenShot on Fail). Ein Nachteil ist in diesem Zusammenhang, dass diese Add-Ons nur für Firefox verfügbar sind.
Dieser Nachteil gilt aber nicht für den Selenium WebDriver, der es ermöglicht, aus einer Entwicklungsumgebung wie z.B. Eclipse heraus, Webanwendungen in unterschiedlichen Browsern zu testen. Zu den Vertretern gehören hier der Internet Explorer bzw. Edge von Microsoft, Mozilla`s Firefox, Apples Safari oder Opera.
Will man in einem weiteren Schritt noch verschiedene Browserversionen eines Herstellers testen (z.B. die letzten drei Releases), so bietet sich mit Selenium Grid ein weiteres Tool der Selenium-Familie an. Da dieses Tool einer Server-Client-Architektur ähnelt (an einem sog. Hub werden ein oder mehrere Nodes angebunden), können hier die Tests auf mehrere Rechner im Netz verteilt werden, was eine entsprechende Skalierung ermöglicht. Ein weiterer Pluspunkt ist die parallele Ausführung von Testfällen in verschiedenen Browsern sowie die Testausführung auf mobilen Endgeräten (z.B. via dem Testframwork Appium).
Steigende Beliebtheit und Verbreitung
In den letzten Jahren erfreut sich Selenium als Testautomatisierungsframework für das Testen von Webanwendungen immer größerer Beliebtheit. Laut dem aktuellen SwissQ Trends & Benchmarks Report 2016 ist es inzwischen das meist verwendete Tool im Bereich der Testautomatisierung.

Auswertungsgrafik aus SwissQ Trends & Benchmarks Report 2016, S. 50, Testautomatisierung
Als Hauptgründe dafür sind neben der freien Verfügbarkeit (Selenium unterliegt als Open- Source-Software der Apache 2.0 Lizenz) und damit wegfallenden Lizenzkosten die einfache Skalierbarkeit und Parallelisierung von Selenium zu nennen. Auch eine unkomplizierte Integration in vorhandene Continuous Integration- beziehungsweise Continuous Delivery-Systeme spielt hier eine Rolle. Letztendlich ist die einfache Installation und Erlernbarkeit von Selenium ein weiterer Pluspunkt.
Als Nachteil kann genannt werden, dass es keinen direkten Support für Selenium gibt. Bei auftretenden Problemen ist man hier dann auf die Selenium Community angewiesen.
Seleniums Sprung auf Version 3
Rechtzeitig zur Selenium-Konferenz in London (SeleniumConf UK) Mitte November erschien am 13. Oktober Selenium in der Version 3. Zuvor konnten Anwender zum ersten Mal Beta-Versionen (insgesamt 4) im Download-Bereich der Selenium Website herunterladen und vorab testen. Obwohl der Versionssprung von 2.53.1 auf 3.0.0 grössere Änderungen vermuten liesse, halten sich die integrierten Neuerungen in Selenium im überschaubaren Rahmen.
Eines der wichtigsten Änderungen ist hier die Ablösung der Selenium Core Implementierung durch entsprechende Anpassungen und Erweiterungen im WebDriver-Modul. Dies hat besonders Auswirkungen auf Benutzter der älteren Selenium RC API, da diese nicht mehr unterstützt wird und nun Teil eines so genannten Legacy-Paketes ist.
Mit dem Release von Selenium 2 im Jahre 2011 wurde mit der Einführung des WebDriver APIs auch die jeweiligen Treiber für die wichtigsten Browser durch das Selenium Projektteam mitgeliefert und regelmässig an neu verfügbaren Browserversionen angepasst. Inzwischen haben alle wichtigen Browserhersteller ihre eigenen Treiber zur Unterstützung des Selenium WebDrivers implementiert. Da die Hersteller ihre eigenen Browser am besten kennen, kann dies der Stabilität und rechtzeitigen Verfügbarkeit bei neuen Versionen nur förderlich sein. Dies rührt nicht zuletzt daher, dass der WebDriver als Open Source-Lösung die Grundlage einer Empfehlung des World Wide Web Consortiums (W3C) für Browser-Automatisierung ist. Die Blaupause hierfür wurde vom Selenium Entwicklungsteam selber geliefert.
Weitere Informationen zu den Neuerungen, Anpassungen und Bug fixes in Selenium 3 können den offiziellen Blogartikel entnommen werden.
Ein Resümee
Wer sich schnell und effektiv in das Thema Testautomatisierung von Webanwendungen einarbeiten möchte, der wird am kostenfrei verfügbaren Selenium nicht vorbeikommen, zumal es sowohl den Einsteiger (mit Selenium IDE) als auch den erfahreneren Testautomatisierer (mit Selenium WebDriver bzw. Grid) gleichermassen anspricht.
Mit seiner hervorragenden Skalierbarkeit und der parallelen Ausführbarkeit von Testfällen ist Selenium Grid ideal für den Einsatz im Client-Server-Umfeld, um z.B. Browserkompatibilitäts-tests im grösseren Rahmen durchzuführen. Auch eine einfach zu realisierende Integration in bestehende CI-Systemen kann hier als weiterer Vorteil genannten werden.
In entsprechenden Blogbeiträgen auf der SwissQ Webseite werde ich weitere Themen rund um Selenium wie z.B. die Konfiguration eines Selenium Grids oder die Ausführung von Tests auf mobilen Endgeräten erläutern.
Schreibe einen Kommentar