Partner von:

Berichte für Fachexperten

Mit dem, was bisher beschrieben wurde, sind schon vier der fünf oben genannten Ziele erreicht. JGiven ist entwicklerfreundlich, da Szenarien direkt in Java-Code geschrieben werden. Szenarien werden in der Given-When-Then-Notation geschrieben und Stage-Klassen sorgen für eine sehr gute Code-Wiederverwendbarkeit. Es ist auch keine weitere Programmiersprache außer Java nötig, um JGiven zu verwenden. Falls wir an dieser Stelle aufgehört hätten an JGiven zu arbeiten, wäre JGiven allerdings nur ein nettes Test-Tool für Java-Entwickler. Das entscheidende Merkmal eines echten BDD-Tools würde allerdings fehlen: die Zusammenarbeit mit den Fachexperten. Dazu müssen Fachexperten die Szenarien allerdings lesen können und zwar ohne vorher Java lernen zu müssen. Die Lösung für dieses Problem ist denkbar einfach: JGiven generiert während der Ausführung der Szenarien Berichte. Diese können dann von Fachexperten gelesen werden. Das Generieren der Berichte erzeugt dabei keinen zusätzlichen Aufwand für die Entwickler.

Textausgabe

Für schnelles Feedback gibt es die Textausgabe von JGiven. Sie wird automatisch generiert während die Szenarien ausgeführt werden. Für das obige Beispiel generiert JGiven die folgende Textausgabe:

Quelle: TNG

Wie man sieht, ist die Textausgabe praktisch identisch zu dem Text, den man in Cucumber schreiben würde. Sie Textausgabe dient im Wesentlichen den Entwicklern während der Entwicklung des Szenarios. Zusätzlich generiert JGiven noch JSON-Dateien, die dann in einem späteren Schritt in einen HTML-Bericht konvertiert werden können.

HTML-Bericht

Der HTML-Bericht ist ein zentraler Bestandteil von JGiven. Erst der HTML-Bericht ermöglicht es Fachexperten die Szenarien zu lesen und zu beurteilen. Der Bericht ist interaktiv, d.h. man kann nach Inhalten suchen und kann Szenarien nach bestimmten Kriterien filtern und sortieren. Das obige Beispiel sieht im HTML-Report folgendermaßen aus:

JGiven [Quelle: TNG Technology Consulting]

Einbindung ins Projekt

JGiven ist, wie bei Java üblich, über Maven-Central verfügbar. JGiven wird entweder mit JUnit oder TestNG zusammen verwendet. Für JUnit fügt man folgende Abhängigkeit zur Maven-Konfiguration hinzu:

Quelle: TNG

Für TestNG heißt die Artefakt-ID jgiven-testng. Um nach der Test-Ausführung den HTML-Bericht zu generieren, bindet man noch das JGiven-Maven-Plugin ein:

Quelle: TNG

Ein mvn verify führt nun die Tests aus und generiert anschließend den JGiven HTML-Bericht.

Erfahrungen mit JGiven aus der Praxis

JGiven wird seit zwei Jahren erfolgreich von TNG eingesetzt. In dem anfangs erwähnten Java-Projekt sind mittlerweile schon über 2.000 Szenarien entstanden, die nach und nach unsere existierenden Tests ersetzen. Das Framework wurde von allen Entwicklern sehr schnell angenommen und auch sehr schnell erlernt. Entwickler, die neu ins Projekt kommen, erlernen das Framework ohne Probleme innerhalb der ersten Wochen. Innerhalb von TNG wird das Framework nun schon in anderen Projekten eingesetzt und auch außerhalb von TNG wird JGiven mittlerweile aktiv eingesetzt, unter anderem in einem Open-Source-Projekt von Siemens.

Zusammenfassung

Hinter verhaltensgetriebener Entwicklung steht die Idee, dass Fachexperten und Entwickler gemeinsam an der Verhaltensspezifikation eines Softwaresystems arbeiten. Dadurch werden Unklarheiten vermieden und Fehler so früh wie möglich aufgedeckt. Existierende Werkzeuge für Java haben allerdings entweder einen erhöhten Wartungsaufwand oder benötigen eine weitere Programmiersprache wie Groovy oder Scala. JGiven vermeidet diese Probleme, in dem Szenarien direkt in Java-Code geschrieben werden. Aus dem Java-Code erzeugt JGiven HTML-Berichte, die von Fachexperten ohne Programmierkenntnisse gelesen werden können. Die generierten HTML-Berichte stellen dabei zusätzlich eine automatisch validierte und somit lebende Dokumentation des Systems dar. JGiven hat noch diverse Features, deren Beschreibung allerdings den Rahmen dieses Artikels sprengen würden. Ausführliche Informationen, Beispiele und auch ein Einführungsvideo sind auf der offiziellen Webseite abrufbar. Das komplette Beispiel aus diesem Artikel ist unter GitHub verfügbar.

Dr. Jan Schäfer ist Senior Consultant und seit vier Jahren bei der TNG Technology Consulting GmbH in München tätig.

nach oben

Stipendiaten und Alumni von e-fellows.net können kostenlos oder ermäßigt zahlreiche Online-Kurse belegen oder an Seminaren teilnehmen.

Verwandte Artikel

Hol dir Karriere-Infos,

Jobs und Events

regelmäßig in dein Postfach

Kommentare (0)

Zum Kommentieren bitte einloggen.

Das könnte dich auch interessieren