Kleine Grammatik zum Schreiben von ausführbaren Spezifikationen auf Deutsch

Keine Kommentare

Vor einigen Tagen hatte ich schon beschrieben, dass es mit dem Robot Framework grundsätzlich möglich ist, die ausführbare Spezifikationen auch auf Deutsch zu schreiben. Im Gegensatz zum Englischen, gibt es im Deutschen aber ein paar Details zu beachten:

Eine ausführbare Spezifikation gliedert sich in drei Abschnitte:

  1. „Given“: Der erste Abschnitt beschreibt eine Ausgangssituation
  2. „When“: Wenn in dieser Situation ein bestimmtes Ereigniss eintritt
  3. „Then“: Dann ist das Ergebnis die gewünschte Zielsituation

Pro Test gibt es nur einen „Given“-Abschnitt, einen „When“-Abschnitt und einen „Then“-Abschnitt. Jeder Abschnitt kann aber aus mehreren Zeilen bestehen, die dann aber nicht mehr mit „Given“, „When“ und „Then“ anfangen, sondern jeweils mit „And“ – jedenfalls im Englischen.

Zur automatisierung der Tests wird das Robot Framework verwendet. Robot hat die Eigenschaft bestimmt Prefixes von Keywords ignorieren zu können. Im englischen Sprachgebrauch eignen sich dafür eben genau die Worte „Given“, „When“, „Then“ und „And“. Dies soll dazu dienen, die Keywords unabhängig vom jeweiligen Kontext wiederverwenden zu können, hier ein Beispiel anhand des Keywords „the user proceeds to checkout“:

Test 1:
   Given ...
   When the user proceeds to checkout
   Then ...
 
Test 2:
 
   Given ...
   When the user confirms some dialog
   And the user proceeds to checkout
   Then ...

Da die Tests allerdings auf Deutsch geschrieben werden, und die deutsche Grammatik sich leider nicht ganz so einfach handhaben lässt, wie die englische, sind ein paar weitere Regeln notwendig, um Keywords sowohl mit dem „Given“ als auch mit dem „And“ Prefix benutzen zu können:

1. Abschnitt: „Given“

Beschreibt einen Zustand. Es ist nebensächlich durch welche Operationen oder Maßnahmen dieser Zustand herbeigeführt wurde. Deshalb beschreibt das Keyword nur ein Subjekt oder eine Situation.
Prefixes, die äquivalent zu behandeln sind:

Gegeben sei <Subjekt>
Es existiert …
[Und] Außerdem …
[Und] Weiterhin …
[Und] Ebenso …
[Und] Dazu …
Und auch …

Beispiele:
Es existiert eine Produktseite für Leben
Es existiert eine Produktseite für Haftpflicht

Statt: Sei eine Lebenssituation ${LS} ausgewählt worden
Besser: Gegeben sei eine ausgewählte Lebenssituation ${LS}

Statt: Und für kein Risiko erscheint ein Preis von 0 €
Besser: Und auch ein Preis ungleich 0 € für alle Risiken

Statt: Und es ist kein Produkt oder Risiko empfohlen
Besser: Und außerdem keine Empfehlungen für ein Produkt oder Risiko

Statt: Und die Rechenblöcke sind mit den Werten aus dem Defaultprofil vorbelegt
Besser: Ebenso eine Vorbelegung der Rechenblöcke mit Werten aus dem Defaultprofil

Statt: Und für die @{Risiken} sind die Preise berechnet
Besser: Dazu berechnete Preise für die @{Risiken}

2. Abschnitt „When“

Es passiert etwas! Kein „ist“, sondern „wird“. Dieser Abschnitt sollte so kurz wie möglich sein, da ausführbare Spezifikationen kein Testskript sind Geschäftslogik und -Regeln prüfen.
Prefixes, die äquivalent zu behandeln sind:

Wenn <Subjekt> <Objekt> <Prädikat>
Wenn <Objekt> <Passiv-Prädikat>
Und dann …
Und danach …

Beispiele:
Wenn der Benutzer auf die Produktseite Haftpflicht wechselt
Wenn die Berechnung erneut durchgeführt wird
Wenn im Feld Geburtsdatum der Wert ${Geburtsdatum} eingegeben wird
Und dann im Feld ${Feld} der Wert ${Wert} eingegeben wird
Wenn die ${wievielte} Seite betrachtet wird

Statt: Wenn das Risiko Gewässerhaftpflicht aufgeklappt ist
Besser: Wenn das Risiko Gewässerhaftpflicht aufgeklappt wird

3. Abschnitt „Then“

Beschreibung des gewünschten Zielzustandes.
Prefixes, die äquivalent zu behandeln sind:

Dann <Passiv-Prädikat> <Objekt> <2. Teil des Prädikats>
Dann <Prädikat> <Subjekt>
Und es …

Beispiele Passiv:
Dann wird der ${Fehler} angezeigt
Dann wird ${einKein} Fehler ${Fehler} angezeigt
Dann wird ${einKein} Fehler ${Fehler} angezeigt
Dann werden die @{Risiken} mit ${Gewichtung} empfohlen
Und es ist das ${Produkt} mit ${Gewicht} empfohlen

Beispiele Aktiv:
Dann sind genau die Produkte @{Produkte} ausgegraut
Dann ist der Link „Weiter“ im ${Zustand}
Dann enthalten die Rechenblöcke die gleichen Werte
Dann befindet sich der ${Fehler} bei ${Ort}
Und es erscheinen keine Validierungsfehler
Dann haben sich die Preise nicht geändert

Robot’s Resource

Das hier ist die Robot Resource Datei, welche die oben beschriebenen Prefixes ignoriert. Mit der kleinen Grammatik sollte es nun auch auf Deutsch sehr einfach sein, ausführbare Spezifikationen zu schreiben.

*** Settings ***
 
 
*** Keywords ***
Gegeben sei ${keyword}
	Run Keyword  ${keyword}
 
Es existiert ${keyword}
	Run Keyword  ${keyword}
 
Und außerdem ${keyword}
	Run Keyword  ${keyword}
 
Und weiterhin ${keyword}
	Run Keyword  ${keyword}
 
Und ebenso ${keyword}
	Run Keyword  ${keyword}
 
Und dazu ${keyword}
	Run Keyword  ${keyword}
 
Außerdem ${keyword}
	Run Keyword  ${keyword}
 
Weiterhin ${keyword}
	Run Keyword  ${keyword}
 
Ebenso ${keyword}
	Run Keyword  ${keyword}
 
Dazu ${keyword}
	Run Keyword  ${keyword}
 
Und auch ${keyword}
	Run Keyword  ${keyword}
 
Wenn ${keyword}
	Run Keyword  ${keyword}
 
Und dann ${keyword}
	Run Keyword  ${keyword}
 
Und danach ${keyword}
	Run Keyword  ${keyword}
 
Dann ${keyword}
	Run Keyword  ${keyword}
 
Und es ${keyword}
	Run Keyword  ${keyword}
Andreas Ebbert-Karroum

Andreas Ebbert-Karroum ist Agile Principal Consultant bei codecentric und Product Owner von CenterDevice.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.