Wie geht man das Thema Testen von Prozessanwendungen technisch an? Wie viel Aufwand ist gerechtfertigt, um Unit- und Integrationstests zu automatisieren? Wie entwickelt man Testfälle, die sich bei Prozess- und Codeänderungen möglichst robust verhalten? Diese und weitere Fragen wurden bei der 3. Camunda User Group Rheinland diskutiert.
Am 27. September 2018 kamen die Teilnehmer in den Räumlichkeiten der viadee IT-Unternehmensberatung in Köln zusammen, um sich über Technologien und Good Practices für die Testautomatisierung von Prozessanwendungen zu informieren und auszutauschen.
Nach einem kurzen Kennenlernen startete die Veranstaltung mit Code-nahen Vorträgen und Live-Hacking von Dr. Bastian Schlich und David Zang. Zum Thema Unit-Testen von Prozessanwendungen stellte Dr. Bastian Schlich verschiedene technische Möglichkeiten für das Testen einzelner Prozessknoten und des gesamten Prozessflusses gegenüber. Dazu wurden die Camunda-Community-Extensions „camunda BPM Assert“ und „camunda BPM Assert Scenario“ vorgestellt und anhand einiger Code-Beispiele verschiedene Möglichkeiten der Verwendung aufgezeigt. Anschließend wurden Good-Practices zum Entwickeln möglichst robuster Testfälle diskutiert. Im Kontext des Test-Driven-Developments helfen die Unit-Testframeworks insb. beim verteilten Implementieren eines Prozesses durch mehrere Entwickler. Prozesstests können sofort vor dem zu entwickelnden Knoten gestartet werden. Somit muss ein Test nicht den gesamten Prozesspfad von einem Start-Event bis zum umzusetzenden Teilstück berücksichtigen.
Zum Einstieg in das Thema (System-)Integrationstests von Prozessanwendungen gab David Zang eine Einführung in das Integrationstest-Framework „Arquillian“. Anhand eines Projektbeispiels wurde gezeigt, wie sich die Testumgebung für eine Prozessanwendung mit ihren Umsystemen automatisiert aufbauen lässt. Anschließend wurden die bereits vorgestellten Community-Extensions verwendet, um die Prozessanwendung in einer produktionsnahen Umgebung inkl. der Umsysteme zu testen. In einer Live-Coding-Session wurde demonstriert, wie sich in kürzester Zeit automatisierte Systemintegrationstests für eine Spring-Boot-Prozessanwendung erstellen lassen. Dazu wurde das auf Docker basierende Framework „Testcontainers“ eingebunden, um aus einem Spring-Boot-Test heraus die über REST-Schnittstellen angesprochenen Umsysteme hochzufahren.
Für den zweiten Teil des Abends brachten die Teilnehmer Fragen und Themen mit, die sie in ihren aktuellen Projekten beschäftigen. Im Rahmen eines Open-Space wurden die Themen gesammelt und in mehreren Gruppen diskutiert.
- Eine Gruppe beschäftigte sich mit der Frage, wie Domain-Driven-Design dabei unterstützen kann, den Schnitt zwischen mehreren Prozessen und Services sinnvoll zu gestalten. Dabei stand das Ziel im Vordergrund, Prozesse, auch mit den für die technische Implementierung nötigen Details angereichert, für die Fachseite intuitiv zu gestalten. Hier wurde von den Teilnehmern der Schnitt in mehrere moderat dimensionierte Subprozesse einem einzigen großen Prozessmodell vorgezogen. Diese lassen sich als eigene leichtgewichtige Services implementieren, die von einer übergeordneten Prozessapplikation orchestriert werden.
- Eine weitere Gruppe thematisierte die agile Entwicklung von Prozessanwendungen und die Synchronisierung von fachlicher Prozessmodellierung und Implementierung. Sollten Prozesse zunächst vollständig mit der Fachseite modelliert und anschließend die einzelnen Knoten und Prozesspfade in Sprints ausimplementiert werden oder sollte auch die Prozessmodellierung schrittweise in jedem Sprint vorangetrieben werden? Ergebnis der Diskussion war, dass eine gewisse Agilität und interdisziplinäre Teams in Prozessautomatisierungsvorhaben unabdingbar sind, da sich nur so der volle Nutzen der Sprachnotation BPMN 2.0 entfalten kann: Fachseite und Entwicklung besprechen Anforderungen sehr detailliert auf Basis von genau einem Prozessmodell.
- Eine dritte Open-Space Gruppe vertiefte die Diskussionen um automatisierte Prozessintegrationstests, die durch die Vorträge erfolgreich angeregt wurden.
Viele Teilnehmer ließen die Veranstaltung bei Bier, Brötchen und Musik ausklingen und diskutierten angeregt bis spät in den Abend weiter.
Wir möchten uns bei den Teilnehmern für die rege Beteiligung bedanken und freuen uns über die spannenden Themen, die für das Open-Space-Format mitgebracht wurden.
Die Termine für alle nachfolgende Meetups der Camunda User Group Rheinland werden unter https://www.meetup.com/de-DE/camunda-ug-rheinland/ angekündigt.
Termine für das Ruhrgebiet sind unter https://www.meetup.com/de-DE/Camunda-UserGroup-Ruhrgebiet/ zu finden.
zurück zur Blogübersicht