cucumber Behaviour Driven Development

Behaviour Driven Development – Cucumber

Eine weitere Entwicklungsmethode ist das BDD (Behaviour Driven Development). Bei dieser Methode zur Feature Entwicklung wird das Verhalten von einem Feature beschrieben. Die Testfälle werden auf einer verständlichen Weise für Business Analyst, Entwickler und Tester dokumentiert, damit alle dasselbe Verständnis haben.

Konventionell werden Features vom Entwickler entwickelt. Anschließend werden hierfür Testfälle beschrieben. Um den Entwickler zu entlasten und Missverständnisse zwischen den verschiedenen Schritten eines Entwicklungsprozesses zu vermeiden, findet die BDD immer mehr an Bedeutung.

Kunde möchte ein neues Feature entwickeln:

Der Kunde hat oftmals eine konkrete Vorstellung für sein Feature request. Für eine effektive Umsetzung des Features muss eine eindeutige Kommunikation zwischen dem Auftraggeber und den umsetzenden Parteien vorliegen. Denn selten kommt das Feature request vom Test oder Entwicklungsteam. Die Beschreibung muss auch von einer nicht-technischen Person verstanden werden. Hierfür ist ein Template erforderlich, damit alle Testfälle strukturiert aufgebaut sind. Diese Herangehensweise für eine einfache Kommunikation muss im gesamten Projekt vorliegen.

Cucumber Werkzeuge unterstützen BDD, in dem sie ein Template für das Schreiben von Testfällen zur Verfügung stellt, damit alle Projektbeteiligten unabhängig vom technischen Know-How den Test versteht. Diese Testfälle werden aus der Kundensicht geschrieben und mit dem Produkt Owner abgestimmt, bevor der Entwickler anfängt diese zu programmieren.

Vorteile von Cucumber sind:

  1. Auch das Projektmanagement versteht den Inhalt der Features
  2. Fokus liegt auf den Kunden
  3. Hohe Wiederverwendbarkeit
  4. Schnelle und einfache Einrichtung
  5. Effizientes Werkzeug zum Testen
Cucumber HP ALM Selenium
kostenlos teuer kostenlos
BDD Werkzeug Funktionales Automatisierungs-Werkzeug Funktionales und Performance- Testwerkzeug
Plugin funktioniert schnell Langsames Plugin Langsames Plugin
Sprachen wie Ruby, Java, Scala, Groovy etc. werden unterstützt Nur VB Skript wird unterstützt Java, .Net, und viele weitere Sprachen werden unterstützt
Test-Automatisierung kommen vom Tester und Entwickler Tester schreibt die Testfälle Test-Automatisierung kommen vom Tester und Entwickler
Nur Webanwendung unterstützt Web,Desktop und Client-Server Anwendungen werden untersützt Nur Webanwendung unterstützt

Cucumber Installation:

Gemäß der Anleitung auf der folgenden Seite (Cucumber Installation)  kann Cucumber erfolgreich eingerichtet werden.

Basiswissen Cucumber

In jedem Cucumber Projekt gibt es eine Datei mit dem Namen „features“, wo alle Cucumber Features festgehalten werden. Ein zusätzliches Paket  „step_definition“ muss ebenfalls vorliegen, wo der eigentliche Code zum Ausführen vorliegt.

Cucumber Templates

  • Feature: beschreibt die zu testende Funktion
  • Scenario: beschreibt die Testschritte und das erwartete Ergebnis für einen bestimmten Testfall
  • Given: beschreibt eine Vorbedingung
  • When: beschreibt die auszuführende Aktion
  • Then: beschreibt das erwartete Ergebnis vom Test
  • And: beschreibt zusätzliche Bedingungen

Beispiel:

Feature: Login

Scenario: Erfolgreicher Login mit validen Logindaten

Given: Benutzer ist auf der Homepage

When: Benutzer gibt Name und Passwort ein und klickt auf den Login-Button

Then: Er kann die Folgeseite besuchen.

Gherkin:

Schlüsselwörter, die Gherkin unterstützt:

  • Feature
  • Background
  • Scenario
  • Given
  • When
  • Then
  • And
  • But

 

Was sagen die anderen zu der Idee?