Die Situation kennst Du vielleicht: Das Projekt ist in der heissen Phase, die Testfälle sind «50 shades of red» und der Zeitplan Geschichte. Ein wichtiger und verzweifelter Mensch läuft durch den Projektraum und will wissen, wo man bei den Tests Zeit einsparen kann, wenn man jetzt überhaupt nicht mehr testen kann. Der Test-Manager schüttelt nur mit dem Kopf, brummelt was von «unzureichender Testabdeckung» und verweist auf seine roten Test-Suiten.
Das ist der Moment, in dem der vorbereitete Testanalyst seinen Finger hebt und sagt: «Herr Wichtig, ich hätte da mal was vorbereitet...».
Der vorbereitete Testanalyst holt mehrere Papier-Ausdrucke hervor. Alle zeigen im mittleren Bereich das gleiche Prozessmodell in BPMN, die Tasks haben aber verschiedenste Annotationen.
Exkurs: BPMN
BPMN steht für «Business Process Model and Notation». Es gibt sie in der Version 2.0 und wird nicht mehr weiterentwickelt, da sie genau das tut, was die Industrie braucht: Eine allgemeine Prozess-Modellierungssprache, bei welcher Kaufleute wie auch Techniker schnell lernen können, um miteinander zu kommunizieren.
Im Gegensatz zu manch anderer Prozess-Modellierungssprache, die eher wasserfall-artig arbeiten, kann man bei einem Modell in BPMN zu jedem Zeitpunkt des Prozesses eindeutig sagen, wo man gerade ist und wer aktiv sein soll. Eine Schwäche von BPMN ist, dass es recht unübersichtlich wird, wenn man an einem Punkt viele verschiedene Möglichkeiten hat, um fortzufahren - man denke nur an Rabattstaffeln bei einer Autoversicherung: männlich, weiblich, Alter, Postleitzahl, seit wann versichert, wie viele Unfälle,... Deshalb hat man noch DMN «Decision Management Model and Notation» nachgeschoben. Diese kann dem BPMN-Modell zugefügt werden. Dafür werden Entscheidungstabellen erstellt, die jedem Tester bekannt vorkommen.
Zurück zu unserem vorbereiteten Testanalysten:
Blatt 1
Das erste Blatt zeigt das normale Prozessmodell, vermutlich von dem Kollegen TA erstellt, als er in das Projekt kam und feststellen musste, dass es seitens Requirements keine Darstellung des End-to-End-Prozesses gab, der abgetestet werden soll.
Blatt 2
Auf dem zweiten Blatt ist der Prozess farbig. Es gibt Tasks in Rot und Grün, aber auch in Gelb und Weiss.
- Weiss: Der Task ist ungetestet
- Grün: Der Task ist getestet und «pass»
- Rot: Der Task ist getestet und steht
- Gelb: Der Task ist getestet und weisst Fehler auf, aber der kreative Testanalyst hat einen Weg gefunden, sich zum nächsten Task weiterzuhangeln
Beispiel:
- Task 1: Erfasse Kundendaten (Gelb)
- Task 2: Prüfe Daten im Vier-Augen-Prinzip (Rot)
- An jedem gelben und roten Task ist über dem Task annotiert, was das die Fehlerwirkung ist
In unserem Beispiel klemmt in Task 1 vielleicht die GUI und es können keine Daten erfasst werden ODER die Datenbank hat einen Programmierfehler und speichert die Daten nicht korrekt ab. Auf jeden Fall ist für Task 1 die Fehlerwirkung, dass man bei korrekter Nutzung keine Daten in die Datenbank bekommt. Die Tests stehen, nichts geht mehr.
Unterhalb des Tasks gibt es auch Annotationen. Sie sagen aus, was es braucht, um den Task durchzuführen: Annotation 2: Daten in der Datenbank bekommen.
Durch die Prozess-Darstellung in «Task -> Fehlerwirkung (Verhinderer)» auf der einen Seite und «Task -> Voraussetzung (Enabler)» auf der anderen Seite, ist es für den kreativen Testanalysten viel einfacher, doch noch eine versteckte Hängebrücke zu entdecken, um zumindest einige Testfälle durchführen zu können.
In unserem Beispiel fehlen Daten. Also lässt der kreative Testanalyst auf dem Entwicklungssystem eine Datenbank mit Testdaten vorbereitet, welche dann in die Datenbank des Testsystems importiert werden. Und schon kann der Testbetrieb weitergehen.
Blatt 3
Der organisierte Testanalyst hat aber noch weitere Blätter in seinem Stapel. Es gibt ein Blatt für das Defect Management. Hier sind die Tasks mit allen grösseren Bugs annotiert. Die Reihenfolge des Bugfixings lässt sich dadurch einfacher priorisieren. Einerseits sieht man die Defects auf dem kritischen Pfad, andererseits ist aber auch offensichtlich, welche Bugs als Proppen auf einem Flaschenhals sitzen. Bei der Fragestellung "welcher Fix bringt aus Testsicht am meisten Fortschritt", kann ein entfernter Proppen auf einem Gateway Zugang zu mehreren Prozesspfaden öffnen, während der auf dem kritischen Pfad nur einen Task freischaltet.
Blatt 4
Besonders bei End-to-End-Tests, über Bus-Systeme hinweg, ist das vierte Blatt sehr wertvoll. Hier werden an Tasks und Events Datenformate und -transformationen von relevanten Daten annotiert. Das unterstützt bei der Erstellung der Testfälle. Als Steigerung können auch noch die definierten Datenbereiche annotiert werden.
Blatt 5
Unser Testanalyst hat noch ein fünftes Blatt. Dieses ist für die Organisation. Wer testet wann welchen Task. Es gehört eigentlich in die Domain des Test-Managers, aber er mitdenke Testanalyst hat dieses Blatt trotzdem dabei. So kann hat er nicht nur eine Antwort auf die Frage "Was können wir noch testen?”, sondern auch auf die Folgefrage "und wann wird das gemacht?"
Der wichtige Kollege ist mit den Antworten des kreativen Testanalysten zufrieden und stürmt zum nächsten Termin.
Fazit
Durch den Einsatz von annotierten BPMN Prozessmodellen kann der moderne Testanalyst sich das Leben vereinfachen, da er in vielen Bereichen benötigte Informationen direkt aufbereitet vorrätig hat.
Für den schnellen Einstieg
Generell unterscheiden muss man zwischen Zeichen-Tools, die BPMN-Elemente darstellen (z.B. Visio), und echten BPMN-Editoren.
Der Unterschied ist, dass der Editor ein Spezialist ist und den Anwender in seiner Arbeit unterstützt. Einerseits werden jeweils nur die Elemente in den Kontext-Menüs angeboten, die syntaktisch korrekt sind, andererseits bleiben die Pfeile alle an ihrem Ort, wenn man einen Task oder ein Event verschiebt – wer schon mal in Vision alle Pfeile neu zurecht schieben musste, weiss wovon ich rede.
Und jetzt bist Du dran. Nimm Deinen liebsten Modeler und überlege, welche Unterstützungshilfen Dir noch einfallen.
Den Modeler von "Camunda" gibt es als Web- und Desktop-Version. Er ist Freeware und sehr leicht unterwegs. Da er in Java programmiert, braucht man keine Installation, sondern legt die Programmdateien einfach in ein Verzeichnis. Damit kann man auch ohne Admin-Rechte auf den meisten Windows- und Mac-Maschinen. Man kann die Dateien in .bpmn und .xml (Standardformate) speichern oder als Bild exportieren.
Die Desktop-Variante findet sich hier.