Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Camunda Roadshow Vienna 2016: Business Rules Testing mit Spock

Camunda Roadshow Vienna 2016: Business Rules Testing mit Spock

Operation am offenen Herzen - und was jetzt? DMN Testing mit dem Spock Framework

2999fab21d182294fad0b2cc590fd54d?s=128

Martin Schimak

January 27, 2016
Tweet

Transcript

  1. Operation am offenen Herzen und was jetzt? DMN Testing mit

    dem Spock Framework für Fachbereich & Entwicklung Martin Schimak - martin.schimak@plexiti.com 27. Januar 2016
  2. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Was bisher geschah … 2 github.com/camunda/ camunda-bpm-assert
  3. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Was bisher geschah … 3
  4. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Und jetzt also DMN … aber wie testen? 4 ?
  5. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Was sagt denn der Evangelist? 5 „When authoring rules in a more agile, business- friendly way, do not forget about testing them in a more agile, business- friendly way.“ Bernd Rücker © 2016 Camunda Services GmbH
  6. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Die bewährten Tools für Entwickler … 6 + Leicht & schnell für Java Entwickler - Testfälle für „Fach“ schwer änderbar
  7. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    … oder eigene Tools für Fachbereiche … ? 7 + Gut zugänglich für „Fach“ - Entwickleraufwand für „Fixtures“
  8. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Regeländerungen… wann und wie oft? 8 Abbildung © 2016 Camunda Services GmbH Business Process Entwicklungs- aufwand & Change Management Immer mal wieder (Monate - Jahre) Rule Structure (Columns) Rules (Rows) Entwicklungs- aufwand & Change Management Immer mal wieder (Monate) Einfache Änderungen, Live Editing möglich Laufend (Wochen - Monate) Geschäftsprozess Entscheidungs- struktur (Spalten) Regeln (Zeilen)
  9. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    … und „lästige“ Governance Fragen … 9 Wer macht das? Wie genau? Nach welchen Regeln? Wer macht das? Wie genau? Nach welchen Regeln? „The Decision Management Cycle“ © 2016 Camunda Services GmbH
  10. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Mehr Fragen zur Governance… n Welcher Bereich ändert die Regelstruktur (Spalten)? n Die Entwicklung? Die Pflege gewisser „Regelstrukturtests“ sollten dann also auch in der Entwicklung liegen… n Welcher Bereich ändert die Regeln (Zeilen)? n Der Fachbereich? Die Pflege detaillierter „Regelbeispiele“ sollte also auch beim Fachbereich liegen… n Gibt es dieselben oder unterschiedliche Governance-Regeln für Strukturänderungen wie einfache Regeländerungen? n Fliessen „Live Edits“ auch wieder in das Entwicklungsprojekt ein? n Müssen mehrere logisch verbundene Regeländerungen „in einem“ erfolgen? n Wie wird sichergestellt, dass die fachlichen Tests gemeinsam mit den Änderungen am DMN versioniert werden? 10
  11. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    11 Können wir ein gemeinsames Testvorgehen, gemeinsame Versionierung aller Artefakte und ein immer gleiches Deployment schaffen?
  12. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Auf der Suche nach geeigneten Tools… 12 + Direkt im Java Projekt ausführbar + Auch für Fach/Analysten gut machbar The Spock Framework
  13. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    DMN testen mit Spock Live Demo 13
  14. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    DMN testen mit Spock 14
  15. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    DMN testen mit Spock - done done! 15
  16. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    DMN testen mit Spock Reports n Reports für Entwickler direkt im Entwicklungsprojekt n Reports für Analysten und Fachbereiche als HTML 16
  17. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Das Spock Framework n Spock: „The Enterprise Ready Testing and Specification Framework“ https://github.com/spockframework/spock n Warum Groovy als Testing Language für Java? n Groovy‘s Flexibilität erlaubt kompilierbare DSLs (zB die Spock Datentabellen) n Java Syntax ist ein Subset von Groovy, Java Entwickler können sofort starten n Groovy interagiert völlig reibungsfrei mit Java direkt im selben Projekt n Warum Spock als Testing Framework? n Nicht ein, sondern DAS Testing Framework in der Groovy Community n z.B. Datentabellen DSL perfekt für DMN Decision Tests, n z.B. Test Reports sind „out of the box“ lesbar für Fachbereiche, … u.v.m. n => Eine von Fach & IT gepflegte Basis an DMN Tests ist realisierbar. 17
  18. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    Direkt ausführbare Tests für Fach & IT n Einfache und sichere Änderungen n Compilation Fehler sind sofort sichtbar, Code Completion ist überall verfügbar n IDE Refactoring ändert Namen konsistent, Reformatting organisiert Layout n Workflow ist organisiert: DMN und Tests werden miteinander versioniert n Grosse Flexibilität einer „General Purpose“ Programming Language n Zum Beispiel: Erwartete Resultate sind jetzt Listen… dann verwende Listen! n Zum Beispiel: Wir benötigen zusätzliche Daten je Testlauf… dann hol sie dir! 18
  19. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    camunda-bpm-spock als neues Projekt? n Derzeit rein experimenteller Status… was prinzipiell funktioniert: n @Deployment Annotation für Camunda Nutzung im Spock Framework n Komfortable Auswertung von DMNs per unique(key: value, …) und collect(key: value, …) n Bei Interesse/Feedback kann eine Community Extension entstehen… n Please ˒ the Github Repository if you like the basic approach of http://github.com/plexiti/camunda-bpm-spock ! 19 Live long and prosper!