Skip to main content

Jede Person im Bereich der Testautomatisierung kennt Robot Framework und Selenium. Es sind die beiden führenden Automatisierungs-Frameworks, die Entwickler und Tester nutzen, um Testumgebungen zu erstellen, die die Prüfung einer anderen Anwendung automatisieren.

Was sind also die zukünftigen Einsatzmöglichkeiten dieser Frameworks und wie werden sie die Entwicklung von Technologie und Webanwendungen beeinflussen? In diesem Artikel werde ich die Gemeinsamkeiten und Unterschiede zwischen Robot Framework und Selenium, Keyword-basierte Automatisierung sowie weitere Experteneinschätzungen beleuchten.

Die Gemeinsamkeiten zwischen Robot Framework und Selenium

Beide Frameworks sind etablierte Technologien – Selenium existiert seit über zwei Jahrzehnten und Robot Framework nähert sich der 20-Jahres-Marke. 

Beide sind Open Source und haben Nutzerzahlen in Hunderttausenden (wenn nicht Millionen). Allerdings ist keines von beiden im strengsten Sinne des Wortes ein Tool; sie sind Frameworks, mit denen Sie das passende Tool für Ihren spezifischen Testzweck erstellen. 

Robot Framework und Selenium werden häufig für Tests von Webanwendungen eingesetzt. Tatsächlich wurde Selenium speziell für diesen Zweck entwickelt, während Robot Framework so konzipiert wurde, dass sich beinahe sämtliche Automatisierungsvorgänge abbilden lassen. Robot Framework wird beispielsweise auch zur Überprüfung zeitkritischer Signalisierungssysteme verwendet.

Beide Frameworks sind aus verschiedenen Programmiersprachen zugänglich – Selenium ist historisch stark mit Java und C++ verbunden, während Robot Framework vor allem mit Python assoziiert wird.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Die Unterschiede zwischen Robot Framework und Selenium

Ein Testautomatisierungs-Framework arbeitet zwischen dem Tester und der zu testenden Anwendung. Es bietet eine Skriptoberfläche („obere Test-Schnittstelle“) zur Beschreibung der Tests für das Framework sowie eine Treiberschnittstelle („untere Test-Schnittstelle“), um die Anwendung unter Test zu steuern und die Handlungen eines Nutzers zu simulieren. Die Hauptaufgabe eines Frameworks besteht also darin, die Befehle aus dem Testszenario der oberen Schnittstelle in Klicks, Eingaben und Tastendrucke auf der unteren Schnittstelle zu übersetzen.

Selenium hat anfangs den Standard für die untere Schnittstelle bei Webapplikationstests gesetzt: ein konsistentes Modell zum Ansprechen von Webseiten-Elementen mit Hilfe eines Lokators, bekannt als XPath. Die obere Schnittstelle von Selenium ist lediglich eine dünne Programmbibliothek zur Arbeit mit den XPaths, was ausgeprägte Programmierkenntnisse voraussetzt. Zudem wissen alle Selenium-Nutzer, dass sich XPaths häufig ändern, sodass Tests kontinuierliche, zeitaufwändige und teure Wartung erfordern.

Robot Framework entstand aus der Frustration über umständliche Automatisierungswerkzeuge, darunter auch Selenium. Das Ziel war es, ein generisches Automatisierungs-Framework zu schaffen, das sich durch eigene Bibliotheken erweitern lässt, welche verschiedene Testschnittstellen implementieren. Das Konzept wurde durch Keyword-basierte Automatisierung inspiriert, die Hans Buwalda und Behavior-Driven Development (BDD) begründeten. 

Was ist Keyword-basierte Automatisierung im Robot Framework?

Keyword-basierte Automatisierung ist das Programmieren von Befehlen auf hoher Abstraktionsebene wie Login, EnterLead, CreateContact usw., die typische Aktionen eines Testers oder echten Nutzers ausführen. Die Keywords verbergen die Mühe mit XPaths und anderen technischen Details. Die Testdesigner verwenden dann diese Schlüsselwörter, um die eigentlichen Tests zu definieren. Wenn sich in der Anwendungsimplementierung etwas ändert, reicht es, die Definition des Keywords anzupassen, sodass alle Tests, die dieses Keyword verwenden, wieder funktionieren.

Überlegungen zur Keyword-basierten Automatisierung

Keyword-basierte Automatisierung bringt jedoch einen Vorbehalt mit sich. Viel Sorgfalt muss in die Definition des Keyword-Vokabulars fließen, damit keine Inflation von Keywords entsteht. Setzt man BDD ein, ist das Anwachsen der Anzahl der Schlüsselwörter fast garantiert. Wenn das Keyword-Vokabular sehr individuell an eine Anwendung angepasst ist, bedeutet Erfahrung mit Robot Framework beim Testen einer Anwendung nicht automatisch, dass man auch für eine andere problemlos Tests entwerfen kann. 

Und ebenso wie bei Selenium werden die Entwickler, die diese Keyword-Implementierungen pflegen, oft zu Engpässen im Prozess. Die volatile Pflege von XPaths ist vielleicht deutlich geringer als bei Selenium, aber sie bleibt bestehen.

Vorteile der Keyword-basierten Automatisierung und zahlreicher Bibliotheken

Die Erweiterbarkeit des Robot Framework hat die Community dazu befähigt, viele nützliche Keyword-Bibliotheken zu entwickeln. Es gibt beispielsweise mindestens drei verschiedene Bibliotheken für Webautomatisierung: SeleniumLibrary, QWeb und BrowserLibrary.  Die Robot Framework SeleniumLibrary wurde auf Basis von Selenium geschaffen, bietet aber einen höheren Abstraktionsgrad als Selenium selbst. Die Community stellt eine Fülle weiterer Bibliotheken für verschiedene Zwecke bereit, etwa API-Tests oder Testdaten-Generierung. 

Wenn Sie ein professioneller Programmierer sind, können Sie mit Selenium jede Webautomatisierungs-Aufgabe bewältigen, müssen allerdings alles selbst entwickeln. Robot Framework bietet die gleiche Flexibilität, jedoch mit einer Vielzahl nützlicher Bibliotheken, die Ihre Arbeit effizienter gestalten können.

Das wohlüberlegte Erweiterbarkeitskonzept ist eine der großen Stärken von Robot Framework. Sie können beispielsweise eigene Keyword-Bibliotheken programmieren – etwa in Python oder einer anderen bevorzugten Sprache – oder ganz einfach bestehende Schlüsselwörter mit grundlegenden Kontrollstrukturen zu neuen Keywords zusammensetzen.

Ein Hinweis zu No-Code

Wenn Sie kein professioneller Programmierer sind, sind Sie bei Selenium hilflos und, um ehrlich zu sein, bei Robot Framework fast genauso. Ein Selenium-Skript werden Sie kaum verstehen, aber wenn Sie ein Robot Framework Testskript sehen, können Sie dessen Logik wahrscheinlich – jedoch nicht immer – nachvollziehen und verstehen, was es bewirken soll. Wenn Sie gute Beispiele zum Kopieren und Weiterentwickeln haben, sind Sie sogar in der Lage, selbst Robot Framework Skripte zu erstellen.

Viele Testleiter schätzen, dass die Arbeit mit Robot Framework produktiver ist als mit Selenium, dank seines höheren Abstraktionsniveaus und der einsatzbereiten Bibliotheken, die sowohl die Kosten für die Automatisierung als auch insbesondere die Kosten für die Wartung der Tests senken. Es ist üblich, Produktivitätssteigerungen auf das Vier- bis Achtfache gegenüber Selenium zu sehen. 

Auf der anderen Seite gilt: Wenn Sie wissen, was Sie tun, können Sie es mit Selenium zweifellos erledigen – der Schmerz, fast alles allein machen zu müssen, bringt die Freiheit mit sich, auch wirklich alles selbst tun zu können.