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

Martin Schimak

January 27, 2016
Tweet

More Decks by Martin Schimak

Other Decks in Programming

Transcript

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

    dem Spock Framework für Fachbereich & Entwicklung Martin Schimak - [email protected] 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

    Und jetzt also DMN … aber wie testen? 4 ?
  4. 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
  5. 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
  6. 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“
  7. 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)
  8. 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
  9. 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
  10. 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?
  11. 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
  12. 27. Januar 2016 | Wien Camunda BPM Release Roadshow 2016

    DMN testen mit Spock - done done! 15
  13. 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
  14. 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
  15. 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
  16. 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!