Ich bin agiler Tester aus Leidenschaft. Bei SwissQ kann ich das perfekt ausleben, denn ich konnte bereits bei vielen Firmen und Projekten meine Leidenschaft für Softwarequalität unter Beweis stellen. Doch wie mache ich das? Wie kann ich in einem völlig neuen Umfeld schnell einen guten Job machen und Fehler finden?
Die nachfolgenden sieben Lektionen können generell für jedes (agile) Projekt angewendet werden. Grundlage für diesen Beitrag soll hier mein aktuelles Digitalisierungsprojekt bei einem Versicherungsunternehmen sein. Mein Testauftrag betrifft agiles / embedded Testen einer komplexen Systemvielfalt vom Scanner und Analysesoftware über Transfermechanismen mit Eventgenerierung und Verarbeitung bis hin zur Darstellung der Dokumente im Online-Portal. Da die ganzen Zusammenhänge nicht ganz selbsterklärend sind, ist es also nicht so einfach, sofort mit dem Testen zu beginnen. Ich muss mir überlegen, wo ich mit der Arbeit beginne…
Lektion 1: Vertrauen schaffen
Erstmal die 1000-seitige Projektdokumentation lesen? Nein Danke! Ich schaffe Vertrauen, indem ich möglichst schnell einen guten Job mache. Die beteiligten Systeme sind mir alle völlig unbekannt, was die Sache etwas schwierig macht. Aber Moment… eine Portallösung… hier setze ich an. Ich blende einfach die anderen Systeme aus und beginne meine Arbeit beim Portal, denn ich weiss, dass ich in einer Web Applikation sofort ein paar hochwertige Bugs finden kann. Diese erfasse ich nicht plump in Jira, sondern bespreche und analysiere sie mit den Entwicklern: «Ich denke, ich habe einen Bug gefunden, aber ich bin mir nicht ganz sicher… Können wir das eventuell kurz zusammen anschauen?» Wenn es wirklich ein Fehler ist, habe ich bereits einen guten Eindruck gemacht. War es doch kein Fehler, werde ich aufgrund der Erklärungen des Entwicklers schlauer und bin dadurch ein Stückchen mehr eingearbeitet. Vertrauen schafft es sowieso, denn jeder kann sehen, dass ich mich mit dem Thema auseinandersetze.
Lektion 2: Wissen aufbauen
Natürlich kann ich nicht allzu lange das Portal testen und die restlichen Applikationen ignorieren. Schauen wir doch mal, was es noch so für Stories im aktuellen Sprint gibt. «Lieber Entwickler, hast du bitte kurz Zeit für mich? Ich würde gerne Story xy testen aber ich habe leider absolut keine Ahnung, wie ich das machen kann.». Jetzt heisst es gut aufpassen, ein paar Notizen machen und Fragen stellen! «Warum gerade so? Geht es nicht auch diesen anderen Weg?». Anschliessend am Besten nochmal versuchen, das Szenario selbstständig durchzuführen. Wenn das erfolgreich klappt, kann ich die nächste Story, welche darauf aufbaut, vielleicht schon ganz alleine testen.
Lektion 3: Eins nach dem anderen
Getreu dem Motto «Stop starting, start finishing»: Nicht mit allem auf einmal beginnen. Wenn es möglich ist, dann am besten nicht in alle Themen gleichzeitig einarbeiten. Da die unterschiedlichen Themen meistens aufeinander aufbauen, ist es sinnvoller, zuerst ein Thema möglichst gut zu verstehen bevor das nächste angegangen wird. Das gleiche gilt auch für die Abarbeitung von Tasks. Stichwort: «Work in Progress – Limit».
Lektion 4: Aktive, offene Kommunikation
Jeder weiss es und auch der neue Trends & Benchmark Report 2017 bestätigt es wieder: Soziale Kompetenz ist eine der wichtigsten Fähigkeiten eines Test Mitarbeiters. Im agilen Umfeld gehe ich daher lieber einmal mehr zum Entwickler, anstatt im schlimmsten Fall einen unqualifizierten Bug in Jira zu erfassen. Meistens gibt mir das zusätzlich ein paar mehr nützliche Details für die Bugbeschreibung und es unterstützt sowieso Lektion 2. Gelegentlich stellt sich jedoch heraus, dass es sich aufgrund unklar spezifizierter Anforderungen um ein Feature statt einen Bug handelt. Nun kann ich direkt den Product Owner ins Boot holen und es mit ihm besprechen und priorisieren.
Lektion 5: Kompetenz zeigen und erhalten
Wer inkompetent ist, kann in einem agilen Projekt auf Dauer keinen Erfolg haben. Kompetenz in einem völlig neuen Thema kommt aber nicht von alleine, sie muss hart erarbeitet werden. Agiles Testen ist kein Schoggi-Job!
Kompetenz kann aufgebaut und erhalten werden, indem alle Unklarheiten aufgezeigt und besprochen werden. Auch das unterstützt wiederum Lektion 2. Eine weitere Möglichkeit und einer meiner Favoriten: Ein möglichst kompliziertes oder komplexes Testthema suchen, möglichst tief einarbeiten und Fehler finden, die den Entwickler zum Staunen bringen. Das ist auch eine sehr gute Möglichkeit, um Spezifikationslücken zu finden.
Lektion 6: Ehrlich und offen sein
Ehrlich währt am längsten! Da ich bereits meine Kompetenz bewiesen und Vertrauen geschafft habe, kann ich auch offen zu den Dingen stehen, die ich nicht weiss. Wenn ich etwas nicht verstanden habe, dann frage ich nach. Wenn ich eine Erklärung zu einem Thema liefern soll, dann mache ich das nur soweit, wie ich im entsprechenden Thema kompetent bin. Falsches Wissen weitergeben hilft niemandem! Das gleiche gilt natürlich auch für die ersten Tage im Projekt, wenn noch alles unklar ist…
Lektion 7: Richtig priorisieren
Prinzipiell ist Priorisierung ein sehr wichtiger Punkt in der agilen Welt. Schliesslich ist bereits das Backlog priorisiert. Es kommt jedoch oft vor, dass ich meine Testarbeit anders priorisiere als der Backlog priorisiert ist. Ein konkretes Beispiel wäre folgendes: Zwei Stories aus dem Sprint sind «Ready for Test», eine davon ganz oben im Sprint Backlog und die zweite ganz unten. Wenn nun die Story am unteren Ende vom Sprint Backlog einen grösseren Testaufwand sowie eine viel höhere Fehlerwahrscheinlichkeit vermuten lässt, werde ich zuerst diesen Task abarbeiten. So hat der Entwickler genügend Zeit, die vielen Bugs zu korrigieren und in den Retest zu geben.
Priorisierung hilft auch bei der konsequenten Abarbeitung von Tasks. Wenn die Arbeitslast stark zunimmt, ist das umso wichtiger. Sind die am höchsten priorisierten Arbeiten erstmal erledigt, hat das nebenbei einen sehr positiven Einfluss auf das Stresslevel. Im agilen Kontext sollte man hierbei jedoch etwas vorsichtig sein und bei der ganzen Priorisierung nicht das Team im Stich lassen. «Kannst du mir kurz helfen» hat für mich immer eine hohe Priorität. Auch hier kann also meine persönliche Priorisierung von der Priorisierung im Backlog abweichen.
Kreativität + Kommunikation = Agiler Tester
Agiles Testen ist kein stupides Abtesten von Requirements, sondern ein sehr kreativer und kommunikativer Prozess, bei dem der Tester im Team aktiv an Produktverbesserungen mitwirken kann. Das passiert durch das Finden von hochwertigen Bugs, Spezifikationslücken oder Optimierungsvorschlägen. Die sieben Lektionen wirken dabei unterstützend, dieses Ziel zu erreichen und gleichzeitig ein harmonisches Umfeld mit dem gesamten Team zu schaffen.
Dies soll keine abschliessende Liste sein. Wer hier ein wesentliches Optimierungspotential sieht, möge dies mittels der Kommentarfunktion mit unseren Lesern teilen.