Wie funktioniert Behavior Driven Development?

Simone Kohl

3 mins read

Heute ist es nicht mehr notwendig, eine fertige Software wochenlang auf ihre Funktionalität zu testen. Mit der Behavior Driven Development-Technik kann man leicht herausfinden, ob die Anwendung den Anforderungen entspricht. Dabei betrachtet man die Software aus der Perspektive des Benutzers. Dies fördert die Zusammenarbeit zwischen Entwicklern, Qualitätsmanagern und dem Kunden.

Was ist Behavior Driven Development?

Behavior Driven Development (BDD) oder auch Specification Driven Development genannt, ist eine Technik der agilen Softwareentwicklung. Ziel ist es, die Zusammenarbeit im Qualitätsmanagement und in der Geschäftsanalyse zu stärken.  

Je komplexer die Softwareanwendungen werden, desto mehr Qualitäts- und Testmanagement ist erforderlich. Dies ermöglicht es, Fehler schnell auszumachen. Seit langem bekannt ist die testgetriebene Entwicklung (TDD), bei der Unit-Tests passend zur Software entwickelt werden. Um andere Teammitglieder und Stakeholder in den Entwurfsprozess einzubeziehen, gibt es das Behavior Driven Development.

Dabei werden die gewünschten Anforderungen von allen Teammitgliedern definiert. Anschließend kann der Programmierer den Quellcode erstellen. Das bedeutet, dass die Teammitglieder Beschreibungen liefern können, die der Programmierer dann umsetzt. Auf diese Weise können sich alle aktiv an der Erstellung beteiligen. Somit werden Missverständnisse schnell erkannt und die Wahrscheinlichkeit ein optimales Endprodukt liefern zu können, steigt. Dies kann Missverständnisse vermeiden und zu einem optimalen Endprodukt führen.

BDD schließt somit die Lücke zwischen Entwicklern und dem Rest des Teams, indem es die Zusammenarbeit und das gemeinsame Verständnis fördert. Außerdem wird in kleinen und schnellen Iterationen gearbeitet, um das Feedback zu erleichtern. Außerdem wird eine Systemdokumentation erstellt, die automatisch mit dem Verhalten des Systems abgeglichen werden kann.

Funktionsweise von Behavior Driven Development

Das Ziel von BDD ist es, das Verhalten der Software zu zeigen. Dabei sollen alle Bereiche der Softwareentwicklung berücksichtigt und Frameworks, Programmiersprachen und Werkzeuge kombiniert werden. Genau dies wird durch BDD ermöglicht.

Es gibt verschiedene BDD-Werkzeuge wie Cucumber oder JBehave, die eine Struktur bieten, die einfacher ist als das Erlernen einer Programmiersprache.

Zwei Merkmale kennzeichnen Behavior Driven Development:

Das erste ist das Verhalten

Das erste ist das Verhalten: Der Entwickler definiert die geschäftlichen Anforderungen an ein Stück Software so, dass andere in der Technologie-Domäne sie verstehen können. Dies ist jedoch für Stakeholder und andere Teammitglieder schwer zu verstehen. Damit Testfälle, Anforderungen und Probleme verstanden werden können, wird die Software beschrieben. Dies hilft den Beteiligten auch, den Geschäftswert zu verstehen und festzustellen, ob die Geschäftsziele erreicht wurden. Es erleichtert auch die Erstellung von Dokumentation, Spezifikationen und APIs.

Das zweite Merkmal ist die Sprache

Hier geht es um die inhaltlichen Merkmale. Der Entwickler erstellt die Anforderungen, die jedoch für Teammitglieder wie Projektmanager oder Qualitätsmanager schwer zu verstehen sind. Bei der BDD-Technologie kann die Sprache Abhilfe schaffen. Die technische Dokumentation von Testfällen wird in eine Sprache übersetzt, die von anderen Teammitgliedern verstanden werden kann. Damit werden die Anforderungen auch im Detail für alle klar.

Hier haben wir eine mögliche Struktur zusammengefasst:

  • Durchführung einer Anforderungsanalyse: Ziele, Aufgaben und Funktionalität der Software sollten in diesem Schritt definiert werden
  • Beschreiben Sie diese Funktionalitäten in allen möglichen Situationen, in denen die Software reagieren soll
  • Aufzeichnung der erwarteten Reaktionen im “Angenommen-wenn-dann”-Schema: “angenommen” bedeutet die Software vor dem Test, “wenn” während des Tests und “dann” nach dem Test. Solche Werkzeuge gibt es zum Beispiel für die am häufigsten verwendeten Programmiersprachen Java, JavaScript oder auch Python. In einigen Tools wird das Wort “Angenommen” durch “Gegeben sei” oder ähnliches ersetzt, je nachdem, welches Tool Sie verwenden.  

Behavior Driven Development und Agilität

Mit Behavior Driven Development kann die agile Arbeit noch weiter verbessert werden. Bestehende Prozesse können optimiert werden, so dass das Team optimaler zusammenarbeiten kann und zuverlässig Softwareprodukte liefert, die den Bedürfnissen der Kunden und des Teams entsprechen.

Beispiel

Ein Beispiel ist die Formulierung eines Szenarios in verständlicher Sprache, die sich an der Software orientiert. Dies ist das oben beschriebene “Annahme-Wenn-Dann”-Schema. Jedes Szenario stellt eine Benutzergeschichte dar, die durch die Softwareanwendung ermöglicht wird. Zum Beispiel die Anmeldung bei einem Kundenkonto.

Beispiel

  • Es existiert ein Konto mit Kundendaten (Benutzername, E-Mail-Adresse, Passwort)
  • Angenommen, der Kunde loggt sich in das Konto ein und gibt seinen Benutzernamen und sein Passwort in das Login-Feld ein, dann sollte sein Login bestätigt werden, dann wird eine Bestätigungsseite angezeigt 
  • Wenn das Passwort oder der Benutzername nicht korrekt ist, sollte eine Fehlermeldung angezeigt werden, die auch angibt, was falsch eingegeben wurde
  • Wenn die Verbindung unterbrochen wird, sollte ebenfalls eine Fehlermeldung angezeigt werden

Diese in verständliche Sprache verpackten Sätze werden dann mit Hilfe der BDD-Tools in ausführbaren Code verpackt. Dadurch werden Testfälle ermittelt, die spätere automatisierte Tests vereinfachen können.

Vorteile

  • Präzisere Anleitung zur Organisation zwischen Entwicklern, Testern und anderen Experten im Team 
  • Näher an der Alltagssprache 
  • Tools ermöglichen die automatische Erstellung von technischer Dokumentation für Endbenutzer 


Teile diesen Artikel

Article by:

Simone Kohl
Simone Kohl

Teile diesen Artikel