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:
- „Given“: Der erste Abschnitt beschreibt eine Ausgangssituation
- „When“: Wenn in dieser Situation ein bestimmtes Ereigniss eintritt
- „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“:
1Test 1: 2 Given ... 3 When the user proceeds to checkout 4 Then ... 5 6Test 2: 7 8 Given ... 9 When the user confirms some dialog 10 And the user proceeds to checkout 11 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
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, sondern Geschäftslogik und -Regeln prüfen.
Prefixes, die äquivalent zu behandeln sind:Wenn
Wenn
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 <2. Teil des Prädikats>
Dann
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.
1*** Settings *** 2 3 4*** Keywords *** 5Gegeben sei ${keyword} 6 Run Keyword ${keyword} 7 8Es existiert ${keyword} 9 Run Keyword ${keyword} 10 11Und außerdem ${keyword} 12 Run Keyword ${keyword} 13 14Und weiterhin ${keyword} 15 Run Keyword ${keyword} 16 17Und ebenso ${keyword} 18 Run Keyword ${keyword} 19 20Und dazu ${keyword} 21 Run Keyword ${keyword} 22 23Außerdem ${keyword} 24 Run Keyword ${keyword} 25 26Weiterhin ${keyword} 27 Run Keyword ${keyword} 28 29Ebenso ${keyword} 30 Run Keyword ${keyword} 31 32Dazu ${keyword} 33 Run Keyword ${keyword} 34 35Und auch ${keyword} 36 Run Keyword ${keyword} 37 38Wenn ${keyword} 39 Run Keyword ${keyword} 40 41Und dann ${keyword} 42 Run Keyword ${keyword} 43 44Und danach ${keyword} 45 Run Keyword ${keyword} 46 47Dann ${keyword} 48 Run Keyword ${keyword} 49 50Und es ${keyword} 51 Run Keyword ${keyword}
Weitere Beiträge
von Andreas Ebbert-Karroum
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Andreas Ebbert-Karroum
Agile Principal Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.