27
für Camunda Community Event, 26. November 2013 Testgetriebene Geschäftsprozessmodellierung mit camunda BPM

Testgetriebene Geschäftsprozessmodellierung

Embed Size (px)

DESCRIPTION

BPM/SOA-Projekte binden oft eine Vielzahl von Abteilungen und Systemen ein und integrieren diese in den Prozess. Sie zeichnen sich durch hohe Komplexität der Anforderungen aus, die zwischen dem Fachbereich, der Organisationsentwicklung und IT ausgetauscht werden. Geschäftsprozessmodelle sind dabei die zentralen Artefakte: sie stellen nicht nur die wichtigste Grundlage der Kommunikation dar, sondern bilden bereits das Skelett der späteren Fach- und Softwarearchitektur. Darüber hinaus dienen BPMN-Modelle quasi als “Programmiersprache” für die ausführende BPM- Engine. Insbesondere wenn man agil arbeiten und die Geschäftsprozessmodelle inkrementell-iterativ entwickeln möchte, ändern sich diese BPMN-Modelle häufig. Und genau dann ist es unverzichtbar, Methoden und Werkzeuge einzusetzen, die für die Einhaltung von Qualität und Korrektheit von Modellen sorgen. Hier setzt unser Vortrag an: er zeigt, wie man ausgehend von fachlichen Anforderungen zusammen mit dem Fachbereich die Akzeptanztests für das BPMN-Modell entwickelt. Diese Tests werden zunächst für die Überprüfung des Modells verwendet, können jedoch auch in der Softwareentwicklung und -integration verwendet werden und dienen als Basis für spätere Abnahme- und Regressionstests von End-to-End-Prozessen. Der Clou: Die Tests verwenden natürliche Sprache! Sie dokumentieren so den Prozessablauf und dessen Attribute und können vom Fachbereich verstanden und gegebenenfalls sogar erstellt werden. Wie das funktioniert, demonstrieren wir anhand eines existierenden Prozessmodells mit fertig beschriebenen Szenarien und führen live Verhaltenstests durch. Dann ändern wir die fachliche Anforderung (simulierter Fehlschlag) und passen den produktiven Prozess an, bis das gewünschte Verhalten erreicht ist.

Citation preview

Page 1: Testgetriebene Geschäftsprozessmodellierung

für Camunda Community Event, 26. November 2013

Testgetriebene Geschäftsprozessmodellierung

mit camunda BPM

Page 2: Testgetriebene Geschäftsprozessmodellierung

Die Holisticon AG ist eine Management- und IT-Beratung mit Sitz in Hamburg. Mit einem ganzheitlichen Beratungsansatz unterstützen wir unsere Kunden in ihren Entwicklungsprojekten auf technischer, taktischer wie auch strategischer Ebene.

Über uns...

SimonZambrovski

ClaudiaCordes

JanGalinski

Page 3: Testgetriebene Geschäftsprozessmodellierung

Agenda

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 3

■ Warum BPM/SOA?

■ Was muss getestet werden?

■ Wie geht das wirklich? (Live Demo)

■ Fazit und Ausblick

■ Offene Diskussion

Page 4: Testgetriebene Geschäftsprozessmodellierung

Komplexität

[email protected] | 4

Page 5: Testgetriebene Geschäftsprozessmodellierung

BPM/SOA

oper

ativ

stra

tegi

sch

Proz

esse

Serv

ices

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 5

Page 6: Testgetriebene Geschäftsprozessmodellierung

Prozesse sind ausführbar

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 6

BPMN 2.0

Page 7: Testgetriebene Geschäftsprozessmodellierung

Sollten Prozesse getestet werden?

oper

ativ

stra

tegi

sch

Proz

esse

Serv

ices

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 7

Icon

: ©

htt

p:/

/ww

w.v

isu

alp

harm

.com

/

Page 8: Testgetriebene Geschäftsprozessmodellierung

Prozesse müssen getestet werden!

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 8

■ Voraussetzung für Refactoring■ BPM/SOA für höhere Flexibilität■ Die Auswirkung jeder Änderung kann geprüft werden

■ Basis für iterative und inkrementelle Entwicklung ■ Agile Prozess-Modellierung, nicht nur Software-Realisierung■ Kurze Modellierungszyklen möglich

■ Nachhaltige Qualität■ Tests sind die beste Dokumentation■ Vision, Projekt, Wartung, Betrieb

Page 9: Testgetriebene Geschäftsprozessmodellierung

Ebenen von Tests

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 9

Entwickler

Anwender

technisch

fachlich

End-To-End

Integration

System

Component

Unit

Page 10: Testgetriebene Geschäftsprozessmodellierung

■ Unit■ Technischer Test■ Abgeschlossene Einheiten:

■ Funktion/Methode■ Klasse

■ Testet einen Zustand

Automatische Tests

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 10

■ Behavior■ Fachlicher Test■ (Quasi-)Offenes System:

■ Dialogfolge■ Ablaufsteuerung

■ Testet Zustandsfolge

SUT

Eingabe Ausgabe

Referenz

TEST

Page 11: Testgetriebene Geschäftsprozessmodellierung

Prozesse sind…

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 11

keine Units

Page 12: Testgetriebene Geschäftsprozessmodellierung

Eine Mail senden

Angenommen der Benutzer erzeugt eine Mail

Und der Text ist „Hello World“

Und der Empfänger ist „[email protected]

Wenn die Mail abgeschickt wird

Dann wechselt der Status auf ‚versendet‘.

BDD Szenario / Story

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 12

Page 13: Testgetriebene Geschäftsprozessmodellierung

Tests von BPM/SOA Systemen

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 13

Page 14: Testgetriebene Geschäftsprozessmodellierung

Test: Syntax, Ausführbarkeit

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 14

Page 15: Testgetriebene Geschäftsprozessmodellierung

Test: Orchestrierung, Erreichbarkeit

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 15

Page 16: Testgetriebene Geschäftsprozessmodellierung

Guards gegen falsche Annahmen

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 16

■ Kontrakt zwischen Process Engine und Services

■ Anforderungen an Datenfluss

■ Vor- und Nachbedingungen im Prozess

Page 17: Testgetriebene Geschäftsprozessmodellierung

15 Minuten

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 17

Page 18: Testgetriebene Geschäftsprozessmodellierung

Demo: Ist Prozess

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 18

Page 19: Testgetriebene Geschäftsprozessmodellierung

Demo: Vertragsverarbeitung

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 19

Ist-Prozessanalyse

Soll-Vision

Inkrementell modelliert und

entwickelt

Ausgerollt

Page 20: Testgetriebene Geschäftsprozessmodellierung

Demo: Sprint 5

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 20

Page 21: Testgetriebene Geschäftsprozessmodellierung

Fehlertolerante Verarbeitung

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 21

Page 22: Testgetriebene Geschäftsprozessmodellierung

Implementierung Sprint 6

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 22

Teilprozessbild Sprint 1

User Story, Szenario

Demo: Szenarien + Guard

Page 23: Testgetriebene Geschäftsprozessmodellierung

CI & Reporting

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 23

Page 24: Testgetriebene Geschäftsprozessmodellierung

Fazit

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 24

■ Was haben wir gesehen?■ Prozesse sind keine Units, aber trotzdem testbar■ Akzeptanzkriterien als Szenarien beschrieben

■ Was bedeutet das für mein Projekt?■ Prozesstests sind Grundlage für agile Modellierung■ Szenarien dienen als Spezifikation und Dokumentation■ Teamspezialisierung ist möglich

■ Camunda BPM Platform■ In-Memory Prozess Engine■ Camunda-BPM-Testing

Page 25: Testgetriebene Geschäftsprozessmodellierung

Weitere Informationen

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 25

■ www.camunda.org

■ github.com/camunda/camunda-bpm-testing

■ Contributions zu JBehave, Needle, Camunda

■ github.com/holisticon

Page 26: Testgetriebene Geschäftsprozessmodellierung

Was kann man noch machen?

Testgetriebene Geschäftsprozessmodellierung| [email protected] | 26

■ Wiederverwendung der Testszenarien für I-Tests■ Austausch der In-Memory-Process Engine gegen Intergrationsumgebung

■ Messung der Testabdeckung■ Was bedeutet Testabdeckung für Prozesse?■ Wie misst man sie?

Page 27: Testgetriebene Geschäftsprozessmodellierung

Vielen Dank!