4. März 2024 von Siver Rajab
Testfallerstellung mit Cucumber – Wenn alle die gleiche Sprache sprechen
Das Cucumber Framework ist ein leistungsfähiges Open-Source-Tool, das im Rahmen des Behavior Driven Development (BDD) eingesetzt wird. Es ermöglicht die Zusammenarbeit zwischen nichttechnischen und technischen Teammitgliedern durch die Verwendung einer gemeinsamen Sprache. Es unterstützt häufig die Erstellung und Ausführung automatisierter Testfälle.
Diese Einführung gibt einen Überblick über die grundlegenden Konzepte und Eigenschaften des Cucumber Frameworks.
BDD – Behavior Driven Development
BDD ist eine agile Softwareentwicklungsmethode, deren Ansatz auf der Überzeugung beruht, dass Software nicht nur auf technischen Aspekten basiert oder basieren kann. Vielmehr sollte das gewünschte Verhalten der Software aus Sicht der Stakeholder im Vordergrund stehen. Dabei zielt BDD darauf ab, die Kommunikation und Zusammenarbeit zwischen den verschiedenen Rollen im Projekt zu verbessern. Eine gemeinsame Sprache soll hierbei helfen, um die Barrieren zwischen den nichttechnischen und den technischen Kolleginnen und Kollegen abzubauen.
Cucumber
Cucumber wurde entwickelt, um die Prinzipien von BDD umzusetzen. Es handelt sich um eine Open-Source-Lösung, die darauf ausgelegt ist, die Definition, Ausführung und Automatisierung von Testszenarien in einer einfachen und natürlichen Sprache zu realisieren.
Dabei verwendet Cucumber die Gherkin-Syntax, um Testfälle in sogenannten Feature-Dateien zu beschreiben.
Cucumber selbst wandelt schließlich die Feature-Dateien in ausführbaren Code (Step-Definitionen) um. Jede Step-Definition ist mit der entsprechenden Feature-Datei verknüpft. Auf diese Weise werden spätere Tests mit den entsprechenden Feature-Dateien verglichen, um Diskrepanzen in der Definition/Umsetzung der Testfälle aufzudecken.
Wie wird Cucumber eingesetzt?
Cucumber ist keine eigenständige Softwarelösung. Vielmehr handelt es sich um eine Art Framework oder Bibliothek, die in verschiedenen Programmiersprachen verwendet werden kann, um Feature-Dateien mit der Gherkin-Syntax zu erstellen.
Folgende Programmiersprachen sind für die Implementierung besonders beliebt:
- Java: Cucumber-JVM
- C#: SpecFlow
- Python: Behave
- Ruby: Cucumber .rb
- JavaScript: Cucumber .js
Für die entsprechende Einrichtung in der jeweiligen Programmierumgebung gibt es zahlreiche Anleitungen im Internet, die leicht zu finden sind.
Erarbeitung der Testfälle durch die Drei Amigos
Das sogenannte Tres-Amigos-Prinzip ist eine bewährte Methode in der BDD, die die Zusammenarbeit und das intrinsische Verständnis zwischen drei wichtigen Schlüsselrollen im Entwicklungsprozess verbessert. Es bezieht sich auf die folgenden drei Rollen:
- Business-Analystinnen und -Analysten/Produktmanagerinnen und -manager
- Entwicklerinnen und Entwickler
- Testerinne und Tester
Das Ziel ist eine präzise Verfeinerung der Anforderungen durch die unterschiedlichen Perspektiven und Fachkenntnisse der verschiedenen Rollen. Dabei kann jemand aus dem Produktmanagement oder aus dem Bereich der Geschäftsanalyse die Anforderungen in einer einfachen und lesbaren Sprache für die nichttechnischen Rollen im Projekt beschreiben. Dazu wird die Gherkin-Syntax verwendet, um Feature-Dateien zu erstellen, die das gewünschte Verhalten der Software beschreiben. Die Entwicklerin oder der Entwickler übernimmt dann die Feature-Dateien und erstellt die entsprechenden Step-Definitionen im Code, die dann mit der entsprechenden Logik im Code verbunden werden, die das gewünschte Verhalten realisiert. Die Testerin oder der Tester übernimmt ebenfalls die Gherkin-Feature-Dateien, um seinerseits automatisierte Testfälle zu erstellen.
Dieser Ansatz sichert und verbessert das inhärente Verständnis zwischen den drei Schlüsselrollen und ermöglicht eine ressourceneffizientere Entwicklung und Implementierung von Anforderungen.
Fazit
Die zentrale Frage, die sich nun stellt, ist: Wie profitiert adesso von diesem Tool/Framework? Das heutige Umfeld für IT-Projekte ist von hoher Dynamik und Komplexität geprägt. Die Entwicklung von Anforderungen und die Durchführung von Qualitätssicherungsmaßnahmen werden durch die zeitlich begrenzte Zusammenarbeit der Teammitglieder zusätzlich erschwert. Diese begrenzte Zusammenarbeit kann sich negativ auf das intrinsische Verständnis zwischen den Teammitgliedern auswirken. Dennoch muss eine Lösung gefunden werden, um unter diesen Bedingungen das bestmögliche Ergebnis aus der Zusammenarbeit zu erzielen. Durch die klare Definition der Rollen, wie oben beschrieben, und die Verwendung des Tools als Alternative, können wir die Testfälle aus verschiedenen Perspektiven betrachten. Dies hilft, das Risiko zu minimieren, dass das Projekt in die falsche Richtung läuft.
Interessierte Leserinnen und Leser finden weitere Information auf dieser Website: https://cucumber.io/docs/cucumber/