Testen, testen, testen

Neu im Eclipse-Universum: RedDeer – das alternative Test-Framework

Dominik Mohilo

© 2017 Red Hat, Inc.

Wer mit SWTBot nicht zufrieden ist, für den eignet sich das neue Eclipse-Projekt RedDeer. Dieses wurde vom JBoss-Team als alternatives Test-Framework für Eclipse entwickelt und basiert unter anderem auf JUnit. Das Schreiben von automatisierten Tests für Eclipse im Allgemeinen und das Eclipse Standard Widget Toolkit im Speziellen soll durch RedDeer erleichert werden.

Features

Eclipse RedDeer setzt auf Eclipse und JUnit auf und dient dem Entwickeln von automatisierten SWT- bzw. Eclipse-Tests. Das Framework interagiert dabei mit den User Interfaces (UIs) der Anwendungen und ist, dank eines Low-Level-APIs, durch Plug-ins von Drittanbietern erweiterbar. In architektonischer Hinsicht ist RedDeer in mehreren Schichten aufgebaut. Die unterste Ebene enthält zum Beispiel Handler, Look-ups, Matcher, die oberen Schichten beinhalten Widgets, Ansichtsfenster, Dialoge und Editoren.

Mit dem PageObjects API stellt RedDeer ein API zur Verfügung, das das Testen von Standardkomponenten der Eclipse SWT (etwa Buttons), JFace (UIForms), der Eclipse Workbench (etwa Ansichtsfenster und Editoren) und Eclipse selbst (etwa Wizards) erleichtern soll. Es erlaubt dabei auch das Erstellen und Erweitern von eigenen Komponenten.

Die RedDeer-Architektur / Quelle: RedDeer auf GitHub

Auch das Testen in einer Continuous-Integration-Umgebung (mit Jenkins) wird von RedDeer unterstützt, ebenso wie Tests von GEF- und Graphiti-Komponenten. In Sachen Plattformen läuft das Test-Framework auf Windows, Mac OS X und Linux stabil – es wurde für diese drei Betriebssysteme eingehend darauf geprüft, dass sämtliche Implementierungen korrekt gehandhabt werden.

RedDeer hat auch ein Tool zum parsen von Log-Dateien eines Dateisystems an Bord. Dieses basiert auf definierten Parse-Regeln und stellt die Ergebnisse des Parsings optisch ansprechend formatiert im Eclipse Editor dar. Auch eine Reihe von Test Requirements für die Konfiguration von Testumgebungen wie JRE, Server oder Cleaning Workspace fehlen nicht im Paket.

Mit Version 0.5.0 wurde der RedDeer Recorder zum ersten Mal in das Test-Framework integriert. Wie man damit einen einfachen Test erstellt, zeigt dieses Video:

Weitere Informationen zu Eclipse RedDeer gibt es auf der offiziellen Homepage des Projektes, dem Proposal bei der Eclipse Foundation und auf GitHub.

Ausblick

Für das zweite Quartal dieses Jahres wird vom Team die Veröffentlichung von RedDeer 2.0 angestrebt. Derzeit arbeiten die Entwickler daran, die flächendeckende Kompatibilität für alle Wizards und Ansichten der Eclipse IDE für Java-EE-Entwickler zu erreichen. Eine Selenium-Integration für das Testen des internen Eclipse Browsers ist, genau wie ein Code-Generator, ebenfalls in Planung.

Hintergrund

Das Test-Framework RedDeer wurde vom JBoss-Team als Alternative zum etablierten SWTBot entwickelt. Die Entwicklung von Eclipse RedDeer begann bereits im Jahr 2012, doch erst jetzt wurde das auf Eclipse aufsetzende Test-Framework als Proposal der Eclipse Foundation vorgestellt. Ziel von RedDeer war es von Anfang an, Entwicklern dabei zu helfen, komplexe Test-Szenarios zu schreiben, die mit dem Anwendungs-UI schnell und effektiv interagieren.

Lesen Sie auch: Automatisierte UI-Tests

Da das Testen von GUIs prinzipiell keine leichte Angelegenheit ist und es noch schwerer wird, wenn die Testszenarios automatisiert ablaufen sollen, hat sich das Team von JBoss intensiv mit der Problematik auseinandergesetzt. Das Ergebnis dieser Bemühungen, Eclipse RedDeer, soll sich den damit verbundenen Herausforderungen in Sachen Komplexität, Stabilität und Wartung stellen. Version 1.0 des Frameworks erschien am 16. Dezember 2015, die aktuellste Version ist RedDeer 1.2.1, das im vorigen November veröffentlicht wurde.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.