Interview mit Mauro Talevi

Behavior-driven Development mit JBehave [Interview]

Željko Marković
JBehave-Logo

JBehave ist das erste Framework, das Behavior-driven Development (BDD) umsetzt. Es existiert schon seit geraumer Zeit, ist Open Source und freundet sich mit agilen Projekten schnell an. Trotzdem ist es kaum bekannt und eher ein Geheimtipp. Java-Magazin-Autor Željko Marković sprach mit dem Agile Coach Mauro Talevi über die Hintergründe von BDD und die Rolle des JBehave-Projekts im agilen Umfeld. Einen Artikel über JBehave finden Sie in der kommenden Ausgabe 8.2014 des Java Magazins.

Željko Marković: Was ist deine Rolle im JBehave-Projekt?

Mauro Talevi: Ich bin der technische Projektleiter des JBehave-Projekts, oder der „Despot“, wie wir sagen. Codehaus-Projekte werden nach den Prinzipien betrieben, die in dessen Manifest beschrieben sind. Das Manifest strebt ein leistungsorientiertes Vertrauensparadigma an, in dem vor allem Diskussionen und Beiträge herzlich willkommen sind. Aber am Ende sind es die Leiter des Projekts, die das letzte Wort haben.

Marković: Welche Vorteile hat Behavior-driven Development?

Talevi: Behavior-driven Development ist ein generisches Paradigma für die Entwicklung. Es legt das Hauptaugenmerk auf die Automatisierung und Kommunikation des Verhaltens der Anwendung. Das Verhalten ist ein Aspekt der Anwendung aus der Perspektive der Stakeholder, funktional und nicht funktional. Stakeholder sind nicht nur diejenigen, die Anforderungen spezifizieren, sondern auch diejenigen, die ein Interesse an der Applikation und Ansprüche daran haben. Das schließt Administratoren, Sicherheitsbeauftragte, Product Owner, Teams, Supportmitarbeiter usw. ein. BDD ist ein ganzheitliches Paradigma, mit dem Ziel, eine Beschreibung des Verhaltens bereitzustellen, die verständlich für alle Stakeholder und Entwicklerteams ist. Als solches passt dazu am besten eine agile Herangehensweise bei der Softwareentwicklung. Aber es könnte auch erhebliche Vorteile für diejenigen haben, die einfach nur Integrations- oder Regressionstests von bestehenden Funktionen automatisieren möchten.

„BDD ist ein ganzheitliches Paradigma, mit dem Ziel, eine Beschreibung des Verhaltens bereitzustellen, die verständlich für alle Stakeholder und Entwicklerteams ist.“

Marković: Wie bist du zu JBehave gekommen?

Talevi: Es war bei der Google Test Automation Conference 2006 in London. Ich wandte Techniken des Test-driven Developments seit einiger Zeit an, auch Unit Tests mit JUnit, Mock-Bibliotheken und Integrationstests mit Fit. So nützlich sie waren, keines davon passte ideal zu meinem Bedürfnis, die Funktionalität den Stakeholdern gegenüber in einer neutralen und nicht technischen Sprache zu kommunizieren. Da kam Dan North auf mich zu, der mit einem neuen Gedankenexperiment spielte, welches er aber für einige Zeit „geparkt“ hatte. Wir erweckten es wieder zum Leben, und das war der Beginn von BDD und dem Projekt JBehave. Kurz darauf veröffentlichten wir die Version 1.0, aber immer noch als ein Gedankenexperiment, wo der Arbeitsablauf Code → Story → Code war. Erst seit 2.0 wurde uns klar, dass der wirkliche Nutzen von BDD in dem Pfad Story → Code besteht.

Marković: Was sind die kritischen Erfolgsfaktoren beim Einsatz von BDD und JBehave?

Talevi: Behavior-driven Development ist ein Paradigma, und JBehave ist ein Werkzeug, das es unterstützt. Ein Paradigma kann mehr oder weniger erfolgreich praktiziert werden, unabhängig von den verwendeten Tools. Der Erfolg hängt von einer Reihe von Faktoren ab, einschließlich der Kultur und der beteiligten Rollen. Wie zuvor gesagt: Die idealen Bedingungen von BDD sind ein agiler Kontext mit Continuous Integration und Continuous Delivery. Das sind einfache Konzepte. Aber oft ist es nicht so leicht, sie korrekt umzusetzen. Die Schwierigkeiten übersteigen oft die Werkzeuge und rücken kulturelle Angelegenheiten innerhalb der Firma ins Licht, die dem Paradigmenwechsel bei der Softwareentwicklung entgegenstehen. Mit BDD und JBehave können diese Dinge zum Vorschein gebracht werden, die ansonsten eher unterhalb des Radars bleiben würden.

„Die idealen Bedingungen von BDD sind ein agiler Kontext mit Continuous Integration und Continuous Delivery.“

Marković: Wie viele Entwickler schreiben am Sourcecode?

Talevi: Wie es in Open-Source-Projekten üblich ist, haben viele Menschen beigetragen und tragen weiterhin zu JBehave bei. Der Erfolg von Git und das Modell der verteilten Entwicklung haben es sehr einfach gemacht, Code beizutragen, seien es Bugfixes, Verbesserungen oder neue Funktionen.

Marković: Was ist für JBehave geplant?

Talevi: JBehave wird kontinuierlich weiterentwickelt. Wir bemühen uns stark, durch die Bedürfnisse und Wünsche der Anwender gesteuert zu werden. Die Benutzer sind unsere Stakeholder. Wir versuchen auch, aus den Rückmeldungen innerhalb der jeweiligen Hauptversionen zu lernen und JBehave weiter zu verbessern. Zum Beispiel war die wichtigste Rückmeldung bezogen auf die Core-Codebasis von 3.x, dass das Reporting nicht flexibel genug war. Daher haben wir uns in Version 4.x des Themas angenommen, indem wir den Durchführungsteil vom Reporting getrennt haben und erlauben, dass sich das Reporting von den Benutzern in größerem Umfang konfigurieren lässt. Wir bieten auch ein separates Projekt mit einem OSGi-basierten Framework an, um auch damit Storys durchführen zu können.

Ursprünglich war Mauro Talevi ich ein theoretischer Physiker, arbeitete an komplexen Systemen, Wahrscheinlichkeitstheorie und Feldtheorie, wandte Monte-Carlo-Techniken für hoch-skalierte parallele Datenverarbeitung an. Dann wechselte er zu kommerzieller Softwareentwicklung, insbesondere Suchmaschinen, Content-Management, Echtzeitdatentransfer und Finanzsystemen. In den vergangenen zehn Jahren, vom agilen Bug gebissen, gründete er eine Beratungsfirma, um Unternehmen dabei zu helfen, ihre Entwicklungsprozesse durch Continous Integration und Continous Delivery zu verbessern.
Geschrieben von
Željko Marković
Željko Marković
Željko Marković ist Softwareentwickler und beschäftigt sich seit vielen Jahren intensiv mit verschiedenen Methoden und Tools im Bereich der Testautomatisierung. Er arbeitet bei der PostFinance AG in Zofingen (Schweiz) und automatisiert unter anderem funktionale Tests für das Onlinebanking.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: