Testautomatisierung mit Selenium und FitNesse
Testautomatisierung: Was sind Selenium und FitNesse?
In der Welt der Testautomatisierung ist es wichtig, die passenden Programme zu nutzen, um möglichst effizient testen zu können. In diesem Artikel behandeln wir sowohl Selenium, als auch FitNesse, zwei Programme, die zum Automatisieren von Tests mehr als nur hilfreich sind.
In einem Interview mit Nadir Öztürk, einem Tester von redbots, wurden vor allem die positiven Aspekte der beiden Tools beleuchtet. Nadir ist in einem der zahlreichen Projekte beteiligt, die redbots begleitet. Im Moment befinden sich circa 19 Teams in diesem Projekt, welche Hand-in-Hand arbeiten, um zusammen dafür zu sorgen, dass alles funktioniert. Zu den dortigen Aufgaben zählen die unterschiedlichsten Teststufen. Der Hauptfokus liegt vermehrt bei den Regressionstests, bei denen eine Testautomatisierung besonders sinnvoll ist. Dabei setzt Nadir in seinem Projekt sowohl auf Selenium als auch auf FitNesse, um wiederkehrende Tests zu automatisieren. Die beiden Tools bedienen unterschiedliche Bereiche, allerdings greifen sie ineinander, sodass es den Arbeitsalltag von Nadir erheblich erleichtert.
Kurz und knapp: Was ist der Unterschied zwischen Selenium und FitNesse?
Die Automatisierung von Frontend-Tests ist relativ schwer und teuer. Durch die Nutzung von Tools wie Selenium und FitNesse wird der Zeitaufwand für die Durchführung von Tests minimiert. Bei Selenium handelt es sich um ein Framework, welches mit dem Webbrowser bedient wird. Es dient dazu, funktionale Testfälle der Oberfläche zu kreieren und somit das Benutzerverhalten zu simulieren, um potenzielle Fehlerquellen zu finden.
Ein weiteres Programm zur Automatisierung von Weboberflächen ist FitNesse. Es wird ebenfalls über den Browser bedient und dient als sogenanntes Akzeptanztesttool. Man kann die durch Selenium erstellten Testfälle innerhalb dieses Tools durchführen und erhält direkt das Ergebnis im Report. FitNesse ist ein Tool, welches einfach zu bedienen ist und die Tests automatisiert durchführt, sodass auch unerfahrenere Tester keine Probleme mit dem Umgang des Tools haben dürften.
FitNesse besitzt ein Datenbankensystem, auf das von überall zugegriffen werden kann. Dadurch eignet es sich hervorragend für große Projekte, wie das von Nadir. Bestes Beispiel für gemeinsames Arbeiten: Wenn ein Test im Projektstandort Deutschland durchgeführt wird, so kann dieser im Nachgang ebenfalls von einem Kollegen z.B. aus Tokio zu seiner Arbeitszeit erneut aufgegriffen und bearbeitet werden.
Man sieht also, dass Agilität in der Testautomatisierung von großem Nutzen sein kann, um globale Projekte aktiv zu gestalten. Programme wie FitNesse und Selenium sind dabei mehr als unerlässlich.
Wie funktioniert eine solche Automatisierung genau?
In der Datenbank von FitNesse werden die durch Selenium erstellten Testfälle hinterlegt und können so jederzeit abgerufen werden. In diesen Testfällen werden alle Schritte detailliert festgelegt. Jeder Klick wird also genauestens notiert und durch FitNesse genauso ausgeführt, wie es vorher vom Benutzer definiert wurde. Man muss also nicht wie bei manuellen Tests selber Hand anlegen, sondern das Tool übernimmt jeden Schritt und gibt am Ende ein Ergebnis aus. Aus dem Ergebnis kann dann wiederum entnommen werden, ob es eventuelle Fehler gibt, die dann an die Entwickler zur Behebung weitergeleitet werden. Die Dokumentation der Fehler erfolgt in der Regel beim aktuellen Projekt von Nadir in Form eines Excel Sheets, so das die Entwickler sehen können an welchen Stellen noch Fehler behoben werden müssen.
Dieser Prozess stellt einen klaren Vorteil gegenüber dem manuellen Testen dar. Durch die automatische Ausführung von Tests, wird die Fehleranfälligkeit durch Benutzerinteraktionen innerhalb der Regressionstests minimiert, da alles über die Tools in immer gleicher Form wiederholt ausgeführt werden kann. Dies erleichtert den Arbeitsalltag der Tester, welche sich auf die wesentlichen Tests beschränken können, bei denen ein händischer Eingriff unabdingbar ist.
Neben der Zeitersparnis sind bei der Testautomatisierung natürlich auch die Kosten ein wichtiger Faktor. Die Anschaffungs- und Personalkosten wirken im ersten Moment sehr hoch, langfristig ist die Investition jedoch sehr rentabel. Durch die Zeitersparnis bei mehrfacher Durchführung von Regressionstests können Lücken im System oder Fehler schneller und effektiver überprüft und behoben werden. Das steigert nicht nur die Kundenzufriedenheit, sondern auch die Effektivität, indem sich die Entwickler schnell der Probleme annehmen können.
Alles in allem ist eine Testautomatisierung also sehr lohnenswert. FitNesse ist ein Tool, welches seines gleichen sucht und auch Selenium ist ein etabliertes Programm am Markt für webbasierte Systeme, um es den Testern zu ermöglichen, die Fehler von Programmen schnell und effektiv erkennen und weiterleiten zu können. In dem angesprochenen Großprojekt von Nadir ist die agile Testautomatisierung ein voller Erfolg für die Qualitätsoptimierung und für alle beteiligten gewinnbringend.
Autoren: Nadir Öztürk, Dustin Porth, Sergio Lucenti