© ecco/Shutterstock.com
Event Storming aus der Sicht eines Testers

Vom Post-it zum Test


Event Storming ist im Domain-driven Design eine gute Methode, ein gemeinschaftliches Verständnis aller Projektbeteiligter bezüglich der Anwendungsdomäne zu erlangen und dabei ein Prozessmodell zu erstellen. Oft wird dabei aber außer Acht gelassen, dass die dabei entwickelten Informationen nur mit wenig Aufwand direkt in automatisierbare Testfälle transformiert werden können. Daher soll hier die Frage beantwortet werden, wie die verschiedenen Modellierungspattern des Event Stormings in sinnhafte Behavior-driven-Design-Testfälle umgesetzt werden können.

In Softwareprojekten ist es essenziell, ein gutes Verständnis für die Fachdomäne der zu entwickelnden Software zu erhalten und aufgrund dessen eine passende Architektur zu entwerfen. Eine Möglichkeit, dieses Wissen aufzubauen und zu erweitern, ist, durch Workshops mit allen Stakeholdern und Projektbeteiligten Prozessmodelle für die verschiedenen Anwendungskontexte zu erstellen und dabei ein fachspezifisches Vokabular zu vereinbaren – die Ubiquitous Language. Event Storming ist dabei ein Modellierungsansatz, dieses Ziel zu erreichen und auf diese Weise sowohl technisch versierte als auch rein fachliche Experten zusammenzubringen, sodass sie ihre Visionen der geplanten Software austauschen.

Das Event-Storming-Modell

Da der Fokus in diesem Artikel auf dem Entwickeln von Testfällen aus dem entstandenen Event-Storming-Modell liegt, wird auf die nähere Beschreibung eines Event-Storming-Workshops an dieser Stelle verzichtet und direkt mit einem möglichen Ergebnismodell gearbeitet. Eine kurze Beschreibung des Vorgehens und aller Elemente eines Event Stormings ist im Kasten „Wie funktioniert Event Storming?“ nachzulesen.

Wie funktioniert Event Storming?

Event Storming ist ein relativ einfacher Ansatz, mit dem man unter Zuhilfenahme von Post-its und einer weißen Tapete gemeinschaftlich die für die Software relevanten Prozesse modelliert. Dazu bereitet man einen Raum vor, in dem man ein langes Stück Tapete quer auf die Wände hängt und verschiedenfarbige Post-its sowie gut lesbare Stifte bereitlegt. Bei der Modellierung störendes Mobiliar wird zur Seite geräumt.

Elemente des Event Stormings

Im Event Storming gibt es mehrere Modellierungselemente:

  1. Domain Events: Das sind Ereignisse innerhalb des Systems, die für Domänenexperten relevant sind. Sie lösen Reaktionen aus und können sehr kleingranular gehalten sein. Sprachlich sind sie in der Vergangenheitsform verfasst.

    andrejthiele_eventstormingfortester_a.tif_fmt1.jpg
  2. Kommando: Mit einem Kommando werden die Entscheidungen beteiligter Akteure modelliert. Sie werden in der Befehlsform notiert. Ereignisse und Kommandos können nie direkt aufeinander folgen.

    andrejthiele_eventstormingfortester_b.tif_fmt1.jpg
  3. Aggregat: Aggregate sind Objekte, die aufgrund eines Kommandos ein Ereignis auslösen. Sie entsprechen State Machines und stellen die Kernelemente innerhalb des Systems dar. Da sie normalerweise erst während der Modellierung gefunden werden, wird ihre endgültige Bezeichnung häufig erst in einer späten Phase der Modellierung festgelegt.

    andrejthiele_eventstormingfortester_c.tif_fmt1.jpg
  4. Externes System: Die externen Systeme sind Organisationen oder Services, die innerhalb des modellierten Prozesses angesprochen werden und auf die kein Einfluss genommen werden kann. Sie stellen so etwas wie Blackboxes dar. Man kann ihnen Kommandos zusenden und irgendwann wird von ihnen ein Ereignis erzeugt. Zeitliche Vorhersagen sind im Normalfall nicht möglich.

    andrejthiele_eventstormingfortester_d.tif_fmt1.jpg
  5. Regel: Regeln sind automatisierte oder regelbasierte Entscheidungen, die ohne eine Benutzerinteraktion innerhalb des Systems gefällt werden. Sie stellen die reaktive Logik dar und können häufig mit den Schlüsselwörtern „immer wenn“ modelliert werden, falls sie an keinerlei Bedingungen in ihrer Ausführung geknüpft sind.

    andrejthiele_eventstormingfortester_e.tif_fmt1.jpg
  6. Lesemodell: Mit Hilfe von Lesemodellen werden Informationen und Daten, die für Entscheidungen des beteiligten Benutzers notwendig sind, bereitgestellt. Sie werden in der späteren Anwendung normalerweise in einer Oberfläche präsentiert. Ergänzend dazu können auch noch konkrete Bildschirmdesigns im Modell aufgenommen werden.

    andrejthiele_eventstormingfortester_f.tif_fmt1.jpg
  7. Benutzer: Die Akteure, die für Aktionen und Ereig-nisse innerhalb des modellierten Systems verantwortlich sind, werden beim Event Storming durch die Benutzer modelliert. Sie agieren aufgrund ihrer Erfahrung und den Informationen, die vom System zur Verfügung gestellt werden.

    andrejthiele_eventstormingfortester_g.tif_fmt1.jpg
  8. Unklare Bereiche: Unklare Bereiche sind Modellierungsbereiche, in denen noch nicht vollkommen klar ist, was passiert. Sie werden dazu verwendet, im aktuellen Modell Markierungen für alle Teilnehmer des Modellierungs...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang