Reinventing Quality

ERROR: Content Element with uid "6546" and type "dce_dceuid16" has no rendering definition!

One size does not fit all: Wie man BDD Frameworks an Projektbedürfnisse anpasst

Der Ansatz des Behavior-Driven Developments (BDD) unterstützt die Zusammenarbeit zwischen Entwicklerteams und Business Analysten in der agilen Softwareentwicklung. Er kombiniert dabei die Validation der Anforderungen mit der Verifikation des Systems um das Richtige richtig zu Testen. Dazu werden bei BDD vor Beginn der Implementierung Beispiele anhand des Specification by Example-Ansatzes für die zu entwickelnden Anforderungen (z.B. gegeben in User Stories) erstellt. Die Erstellung erfolgt typischerweise von Business Analysten und wird vom Entwicklerteam abgenommen. Die Beispiele dienen im Erstellungsschritt der Validierung der Anforderungen zur frühen Entdeckung von Anomalitäten und in einem zweiten Testautomatisierungsschritt als Grundlage von Systemtests zur Verifikation. Die Systemtests werden dabei noch vor der Implementierung der Anforderungen entwickelt und dienen dem Entwicklerteam als Zielvorgabe bzw. Akzeptanztests. Auf diese Weise erstellte Beispieleund Tests können dann als Living Documentation funktionieren.

Für BDD gibt es eine ganze Anzahl an unterstützenden Prozessen und Frameworks. Im Rahmen einer Studie haben wir Prozess DOs und DON’Ts beim Einsatz von BDD und Frameworks klassifiziert. Zusätzlich haben wir die Anpassung von BDD-Frameworks in Projektkontexte evaluiert und Entscheidungskriterien für BDD und Frameworks entwickelt. Um diese zu erhalten, wurden verschiedene Frameworks in einem internen Projekt eines Industriepartners eingesetzt und auf Eignung,  Effizienz und Art der Tests evaluiert. Im Projekt wurden dabei die Frameworks Jbehave, LivingDoc und Fitnesse (im BDD-Stil) jeweils in je einem dreiwöchigen Sprint von mehreren Junior Software Engineers verwendet und bewertet. Aus dieser Bewertung und anderen gemessenen Faktoren (z.B. Zeit, #Beispiele, #Testfälle, etc.) wurden Entscheidungskriterien und unterstützende Maßnahmen entwickelt, die anderen Projektkontexten nützlich sein können.

Der Vortrag umfasst die Vorstellung von BDD und den verschiedenen Frameworks als einen Ansatz, das Richtige richtig zu Testen. Um die Anpassung an Projektbedürfnisse als Test- oder Projektmanager vorzunehmen, stellen wir die Ergebnisse der Studie mitsamt den ausschlaggebenden Faktoren zum Einsatz von BDD sowie zur Auswahl eines unterstützenden Frameworks vor (z.B. Erstellbarkeit von Negativtests). Als Ausblick geben wir einen Leitfaden wie aus dem Einsatz von BDD und Frameworks eine Living Documentation entstehen kann.

Dominik Holling, Technische Universität München

Dominik Holling ist seit 2012 am Lehrstuhl Software Engineering der TUM (Prof. Pretschner) in den Gebieten des fehler- und modellbasierten Testens und der symbolischen Ausführung tätig. Insbesondere arbeitet er an Wissensmanagement in der Qualitätssicherung und Prozessverbesserung durch deren frühe Involvierung. Er ist Mitglied im Conference Board des German Testing Day und strategischer IT-Berater zur Prozessverbesserung im Bereich Qualitätssicherung.
Vor dem Eintritt in die Forschung studierte Dominik Holling Informatik an der TU Kaiserslautern (2006 – 2011) mit dem Fokus auf Software Engineering und Informationssicherheit. Während des Studiums entstand die Veröffentlichung eines Ansatzes zum Aufbau von Vertrauensverhältnissen in Cloud-Infrastrukturen.
Während der Forschungsarbeit an Fehlermodellen hat Dominik Holling mit einer Vielzahl von Firmen zusammengearbeitet um Fehlermodelle zu erheben und zu klassifizieren.