Testautomatisierung mit Robot Framework

In Zeiten in denen Softwaresysteme immer komplexer werden, rückt auch das Thema Qualitätssicherung immer mehr in den Fokus unserer Projekte. Hierbei spielt vor allem Testautomatisierung eine entscheidende Rolle, denn nur so lassen sich die vielen unterschiedlichen Testfälle wirklich effizient ausführen und wiederholen. Bei vielen unserer Kunden ist das automatisierte Testen fester Bestandteil der CI/CD Prozesse und trägt entscheidend zu verlässlichen Releases bei. Seit mehreren Jahren setzen wir hauptsächlich auf Robot Framework als Tool für automatisierte Tests und das über verschiedene Ebenen der Testpyramide hinweg. Robot Framework kann als generisches Test-Framework angesehen werden und steht als Open-Source-Projekt unter der Apache 2.0 Lizenz auf GitHub frei zur Verfügung.

Testpyramide
Testpyramide

Merkmale von Robot Framework

Es sprechen viele Gründe für den Einsatz von Robot Framework für die Testautomatisierung:

  1. Guter Support
    Robot Framework ist Open-Source und erfreut sich einer großen Community an Entwicklern aus unterschiedlichen Branchen, die ständig an der Weiterentwicklung mitwirken. Der Quellcode steht auf GitHub zur Verfügung. Derzeit arbeiten an der Kernkomponente ca. 110 Entwickler. Daneben existieren 40 zugehörige Projekte für bestimmte Anwendungsfälle. Auf Stack Overflow gibt es mehr als 11.000 Threads zum Thema Robot Framework.
  2. Viele Integrationen und Erweiterungen
    Dank der großen Community existieren bereits sehr viele Erweiterungen und Integrationen zu diversen Systemen, welche als Plugins verwendet werden können. Hierzu zählen beispielsweise der Zugriff auf Datenbanken, die Kommunikation per REST oder SOAP sowie das Testen des Verhaltens von Web-Frontends, APIs oder mobiler Endgeräte.
  3. Dokumentation
    Alle Features und Funktionen von Robot Framework sind gut und verständlich dokumentiert. Auf der Website von Robot Framework wird der Einstieg in das automatisierte Testen mit Robot Framework durch entsprechende Tutorials gut beschrieben.
  4. Erweiterbarkeit
    Robot Framework selbst ist in der Programmiersprache Python geschrieben und es besteht die Möglichkeit eigene Erweiterungen und Integrationen für spezielle Anforderungen zu entwickeln. Somit ist die Einsetzbarkeit von Robot Framework nahezu grenzenlos.
  5. Reporting
    Robot Framework generiert nach jeder Ausführung automatisch einen Report über die Testergebnisse und ermöglicht im Falle eines Fehlers die schnelle Analyse und Behebung. Der Report wird als HTML ausgegeben und stellt sich in unterschiedlichen Abstraktionsebenen dar. So kann über eine Art Drill-Down von der Gesamtübersicht bis hin zu den einzelnen Ausführungsschritten eines Tests navigiert werden, um die genaue technische Ausführung und deren Parameter zu sehen.
  6. DevOps und CI/CD
    Robot Framework lässt sich ohne Probleme innerhalb von CI/CD-Umgebungen wie z. B. Azure DevOps, Jenkins, GitLab, Concourse CI oder Team City integrieren. Somit kann es sehr gut als Quality Gate in automatischen Deployment Prozessen eingesetzt werden. Auch für die Verwendung innerhalb von Container-Umgebungen (z. B. Docker) ist es einsetzbar. Viele CI/CD-Umgebungen verwenden bereits Container zum Ausführen der Pipelines, daher ist dies ein wichtiger Aspekt. Zudem verfügt Robot Framework über die Möglichkeit den Report im xUnit-Format auszugeben, welches von vielen CI/CD-Umgebungen interpretiert werden kann. Somit stehen die Ergebnisse der automatischen Tests als zusätzliche Informationen der ausgeführten Test-Pipeline zur Verfügung.

Testfallbeschreibung in Robot Framework

Gemäß dem DRY-Prinzip werden in Robot Framework für die Testfälle sogenannte Keywords erstellt. Diese Keywords abstrahieren die Logik, um mit dem Zielsystem zu kommunizieren und können in unterschiedlichen Einzeltestfällen wiederverwendet werden.

Beispiel:

Login Page Should Be Open
    Title Should Be    Login Page

Zum Beschreiben der Testfälle gibt es die Möglichkeit Keywords einfach sequenziell aufzurufen, oder sich mit Hilfe der Gherkin-Syntax eine Art ausführbare Dokumentation in englischer Sprache zu erstellen. Das ermöglicht es vor allem Testern ohne Entwicklungshintergrund Testfälle zu implementieren und zu verstehen.

Beispiel:

Given calculator has been cleared
When user types "1 + 1"
And user pushes equals
Then result is "2"

Zusammenfassung

Automatisiertes Testen ist ein starker Erfolgsfaktor für Softwaresysteme. Ein Framework wie Robot Framework kann dabei unterstützen, unterschiedliche Komponenten der Softwaresystems wiederholbar und transparent zu testen. Viele Erweiterungen und eine aktive Community garantieren die Einsetzbarkeit für nahezu jeden Anwendungsfall. Die einfache Implementierung von Testfällen ermöglicht es auch Mitarbeitern aus den Fachbereichen unserer Kunden, Testfälle für ihre Systeme zu erstellen.

Quellen:
https://robotframework.org
https://github.com
https://stackoverflow.com
https://en.wikipedia.org
https://cucumber.io

Tags