Der agile Tester

Ein Anforderungsprofil

Die Wichtigkeit der agilen Softwareentwicklung verlangt einerseits nach agilen Modellen für den Softwaretest, aber ebenso nach einem neuen Rollenbild des Testers in diesem agilen Projektumfeld.

Denn agile Softwareentwicklung hat in den letzten Jahren und Jahrzehnten stark an Bedeutung gewonnen. Mittlerweile haben neben kleinen und mittleren Unternehmen auch große börsennotierte Konzerne und Banken die Vorteile der agilen Vorgehensweise erkannt und entwickeln ihre Software nach Scrum oder ähnlichen agilen Vorgehensmodellen.

Testen wird jedoch in agilen Modellen, wie Scrum, als Aufgabe des Teams angesehen. Die Rolle eines dedizierten Testers ist dort nicht vorgesehen. So findet die Rolle des Testers auch in den Publikationen von Ken Schwaber und Jeff Sutherland [Schwaber2011] keine Erwähnung.

Neben der Projektpraxis haben bereits Case Studies, herausgegeben von John Watkins ([Watkins2009]), belegt, dass der Einsatz von dedizierten Testern in Scrum-Teams Vorteile mit sich bringt. So können mit einem dedizierten Testteam mehr als nur Komponententests, nämlich auch höhere Teststufen (Integrationstest, Systemtest, Akzeptanztest) durchgeführt werden. Klarerweise bringen kompetente Tester auch Wissen und Erfahrung zu Testmethoden mit und können diese gezielt einsetzen. Somit werden die Entwickler entlastet und können sich auf ihre Kernkompetenz konzentrieren. Alles in allem ist dies selbstverständlich der Softwarequalität zuträglich.

Es muss hier jedoch ein ganzheitliches Umdenken stattfinden, welches zulässt, dass sich das Rollenbild des agilen Testers mit zusätzlichen Kompetenzen und Aufgabenbereichen erweitert. Dies hat starke Auswirkungen auf die Zusammenarbeit im Team, die Projektorganisation und -kommunikation, fängt aber ganz klar bereits beim Recruiting an.

agile Tester

Aufgabenbereiche und Fähigkeiten des agilen Testers

Generell könnte man – wie es auch Hellerer in seinem Buch [Hellerer2012] feststellt – zusammenfassen: Die Aufgaben des Testers sind im Scrum-Umfeld wesentlich verantwortungsvoller als in einem klassischen Vorgehensmodell.

Erfahrung ist für jeden guten Tester ein Pluspunkt; für einen agilen Tester ist diese praktische Erfahrung jedoch ein wirklicher Schlüsselfaktor. Dabei ist es weniger wichtig, ob die Erfahrung in Projekten nach agilen oder klassischen Vorgehensmodellen gesammelt wird. Der entscheidende Punkt ist, dass ein erfahrener Tester unterschiedliche Testmethoden kennt und weiß, wie und wann diese eingesetzt werden sollten. Diese Skills ermöglichen es ihm, sehr flexibel auf Gegebenheiten zu reagieren und passende Methoden für die jeweilige Situation zu finden. Auch das erworbene Wissen verschiedener Technologien und das sogenannte Gespür für das Auffinden von Fehlern sind weitere Pluspunkte eines erfahrenen Testers.

Die notwendigen Qualifikationen eines agilen Testers definieren sich schon alleine durch die Natur eines agilen Projektes. Im klassischen Vorgehen wird die Spezifikation durch das Requirements Engineering und die Analyse festgelegt. Die Fertigstellung geschieht, bevor mit der Entwicklung und der Erstellung der Testfälle begonnen wird. Sobald die Spezifikation freigegeben ist, starten Entwickler und Tester parallel mit der Umsetzung von Programmcode bzw. Testfällen, ohne direkten Einfluss aufeinander zu nehmen. Ist ein zuvor definierter Meilenstein erreicht, werden die Testfälle an der Testversion der Software durchgeführt (siehe dazu Abbildung 2). Dies ist der erste Zeitpunkt, in dem die Arbeit der Entwickler von den Testern geprüft wird.

Beim agilen Softwareentwicklungsmodell Scrum könnte der Einsatz eines Testers wie folgt aussehen (siehe dazu Abbildung 1). Nach dem Sprintplanning, in dem die User Stories für den nächsten Sprint ausgewählt wurden, erarbeitet der Tester Testfälle aus und stimmt diese mit Product Owner und Entwicklern ab, um ein gemeinsames Verständnis der User Story sicherzustellen. Somit ist am Ende des Sprints zu einem hohen Maß sichergestellt, dass das gelieferte Softwareinkrement der Definition of Done (DOD) entspricht und somit dem Kundenwunsch gerecht wird. Dafür ist neben ganzheitlichem Denken selbstverständlich auch technisches Verständnis gefragt.

agile Tester agile Testing

In Scrum-Teams wird es nicht in allen Fällen möglich oder sinnvoll sein, einen dedizierten Testmanager einzusetzen. Daher ist es notwendig, dass die Tätigkeiten und Aufgaben des agilen Testmanagers von den anderen Testern des agilen Teams wahrgenommen werden. Für diese Managementaufgaben muss der agile Tester auch Testmanagementkenntnisse und -fähigkeiten mitbringen.

Zusammengefasst setzt sich das ideale Rollenbild eines agilen Testers aus Praxis, technischem Know-how und Softskills wie folgt zusammen:

Testmethoden flexibel einsetzen

Er bringt Praxis im Testbereich mit und kann auf Erfahrungen mit diversen Testmethoden zurückgreifen und diese flexibel anwenden.

Testmanagement-Skills

Weiters hat er Erfahrung in der Testplanung und -koordination, um gegebenenfalls Testmanageraufgaben übernehmen zu können.

Softwareentwicklung-Basics

Der Tester sollte zumindest grundlegende Fähigkeiten in der Softwareentwicklung mitbringen und versteht Scriptsprachen, da er diese immer wieder bei diversen Automatisierungstools zum Einsatz bringen wird.

Blick für das große Ganze

Um den Überblick zu wahren und die User Stories möglichst realitätsnah zu testen, braucht er darüber hinaus ein ausgeprägtes ganzheitliches Denken und Qualitätsbewusstsein.

Teambewusstsein

Der ideale agile Softwaretester ist außerdem ein ausgeprägter Teamdenker, der gemeinsam mit anderen nach einem Ziel strebt und nicht als Einzelkämpfer auftritt. Gleichzeitig übernimmt er gerne Verantwortung und ist sich seiner Wichtigkeit im Team bewusst.

Feedback- und Kritikfähigkeit

Der agile Tester sieht das tägliche Reporting als selbstverständlich an und ist daran interessiert, auch im Dialog Feedback zu geben, während er ebenso kritikfähig ist.

Kommunikationsfähigkeit

Man kann gar nicht genug betonen, dass im agilen Umfeld ein Skill ganz weit oben steht: Kommunikationsfähigkeit. Nur mit funktionierender Kommunikation im Testteam sowie zum restlichen Projektteam und zu den Auftraggebern kann agiler Test überhaupt implementiert werden.

Fazit

Ob Personalabteilung, Projektleiter oder Scrum-Team: Klar ist, dass auf allen Ebenen ein Umdenken stattfinden muss, damit agiler Softwaretest funktionieren kann. Darüber hinaus variiert je nach Projekt und Projektgröße die Sinnhaftigkeit und Wirtschaftlichkeit eines dedizierten Testteams. Aus diesem Grund sollte bei jedem agilen Projekt ein Testexperte evaluieren, welches Setting einzusetzen ist. Wenn es das Projektumfeld jedoch zulässt, bekommt das agile Team mit einem (oder mehreren) dedizierten Tester nicht nur einen Testverantwortlichen, sondern auch so etwas wie einen agilen Koordinator, da viele Prozesse immer wieder durch seine Hände laufen. Dass diese verantwortungsvolle Aufgabe jedoch auch nach einem ganz bestimmten Anforderungsprofil besetzt werden sollte, ist essenziell für den agilen Softwaretest.

Literatur

 

  • [Schwaber2011] Ken Schwaber und Jeff Sutherland. The Scrum Guide. https://www.scrum.org/Scrum-Guides
  • [Hellerer2012] Heinz Hellerer. Soft Skills für Softwaretester und Testmanager. Dpunkt.Verlag GmbH, 2012. ISBN: 3898648311.
  • [Watkins2009] John Watkins. Agile testing: how to succeed in an extreme testing environment. Cambridge University Press, 2009. ISBN 978-0-521-72687-0

 

Weitere Artikel vom testing experience Magazin

Wie kann Crowdtesting den agilen Entwicklungsprozess unterstützen?
von Jan Wolter & Jannis Reuter

Autisten als Softwaretester und IT-Spezialisten

von Jenny Siotka

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kategorien

Recent Posts