Die Rolle der Tester beim agilen Testen

Im ISTQB-Glossar wird agiles Testen als „Testing practice for a project using agile methologies“ beschrieben. Diese sowie andere Definitionen bleiben trotz der Werte und Prinzipien des agilen Manifests vage, wenn es um ein Framework im Allgemeinen und die Testbedingungen im Speziellen geht. In einschlägigen Publikationen und Fachkreisen ist man sich einig, dass Testen früher stattfinden und öfter wiederholt werden muss. Was bedeutet das jedoch konkret für den Ablauf? Wie können schnell und flexibel Tester rekrutiert werden? Der folgende Beitrag widmet sich der Frage, wie im agilen Softwaretesting Anwendungen flexibel und schnell getestet werden können – unter anderem mithilfe von Crowdtesting.

Ziele und Prinzipien des agilen Testens

In Bezug auf das agile Manifest und einschlägige Literatur, prägt das Testen in agiler Softwareentwicklung, wie zum Beispiel Scrum, agile Testmethoden und -modelle. Agiles Testen setzt vorhandene und bewährte Testingtechniken so ein, dass die für die agile Entwicklung definierten Ziele und Prinzipien erfüllt werden. Bekannte Ziele des agilen Vorgehens sind Softwareentwicklungsprozesse flexibler, schlanker und interdisziplinärer zu gestalten, damit eine hohe Kundenzufriedenheit, hohe Produktqualität sowie hohe Entwicklungsgeschwindigkeit erreicht wird. Schnelles und kontinuierliches Feedback sowie eine enge Zusammenarbeit aller Beteiligten sind für die agile Softwareentwicklung erforderlich, um für eine Risikominimierung und die Erfüllung der eben genannten Anforderungen zu sorgen. Doch die Testkapazitäten sind begrenzt und die Ressourcen – neben Manpower auch an relevanten Testsystemen – nicht immer ausreichend vorhanden. Abhilfe verschafft hier das Konzept des Crowdtestings.

Crowdtesting ist, wie bereits in der ersten deutschen Ausgabe von testing experience beschrieben, eine relativ junge Disziplin, die Teile des Softwaretestingprozesses an die weltweite Internetgemeinde auslagert und damit traditionelle ebenso wie innovative Softwaretestingmethoden unterstützt. Agiles Testing kann maßgeblich von diesem Ansatz profitieren, schließlich geht es in beiden Konzepten im Kern darum, Software näher am Kunden zu entwickeln – schnell und flexibel.

Crowdtesting als Komponente der agilen Softwareentwicklung

Agile Softwareentwicklung postuliert ein iteratives und interdisziplinäres Vorgehen. Auf allen Ebenen müssen alle Beteiligte von den Entwicklern über die Projektmanager bis hin zu den Testpersonen eng zusammenarbeiten. Rückkopplungsprozesse und Rücksprachen sind das A und O, um Mehrarbeit zu vermeiden und ein Projekt systematisch abwickeln zu können. Sobald ein Programmcode entwickelt bzw. geändert wurde, gilt es ihn zu testen, um Feedback zur Funktionalität der geschaffenen Features geben zu können. Die Testerperspektive muss deshalb frühzeitig in die agile Entwicklung wie beispielsweise bei Scrum eingebunden werden. Während ein Teil der testbaren Software durch (automatisierte) Unit-, System- bzw. Sicherheitstests abgebildet werden kann, ist exploratives Testing durch reale Personen bzw. Endanwender unverzichtbar. Die Realisierung schneller Feedbackzyklen auf möglichst vielen Endgeräten hingegen bedeutet hohen Aufwand. Hier bietet sich an, einen Crowdtestingdienstleister hinzuzuziehen, dessen Crowd über alle auf dem Markt befindlichen Endgeräte verfügt sowie schnell und flexibel rekrutiert werden kann. Außerdem wird Software auf diese Art nah an den tatsächlichen Kundenwünschen gestaltet, da die Tester in einer natürlichen Umgebung (von Zuhause aus oder unterwegs) testen.

Crowdtesting als Teil der agilen Softwareentwicklung

Bei der Kombination aus agilem und crowdbasierten Softwaretesting sind verschiedene Möglichkeiten und Herangehensweisen vorstellbar. Denkbar ist beispielsweise, dass ein Projektmanager des Crowdtestinganbieters von Beginn an in einen agilen Prozess eingebunden wird und beratend sowie als Schnittstelle zu den Testern fungiert. Als Teil des Scrumteams zeichnet sich folglich die Crowd vertreten durch den Projektmanager verantwortlich für definierte Sprintergebnisse. Als Mitglied des Teams sind der Projektmanager und seine Crowd an den Inhalten der Sprints beteiligt und damit auch für das Erreichen der Ergebnisse laut Definition of Done verantwortlich. Der Dienstleister rekrutiert Tester, spielt ihnen die zu testende Software zu und reported deren Feedback an das Scrum-Team. Bei der Auswahl der Tester und Endgeräte ist der Auftraggeber völlig frei: Von Studenten über Hausfrauen und zertifizierten, gut ausgebildeten Softwareexperten steht ein großer Pool an Personen mit unterschiedlichsten Geräte- und Systemkombinationen zur Verfügung.

Unkompliziert bietet Crowdtesting die Lösung für schnelle, flexible und endkundenbasierte Überprüfung von Sprints. Der Ansatz ergänzt und unterstützt die hausinterne QS. Egal ob Prototypen- oder Usabilitytests, Benchmarkstudien oder Akzeptanztest mit Endanwendern, die Crowd kann das gesamte Spektrum an Softwaretesting abdecken. So ist es, anders als in der klassischen Softwareentwicklung, ein agiles Anliegen, bereits in der Entwicklungsphase Anpassungen vorzunehmen und dadurch Fehler zu vermeiden. Durch das Einbinden einer Crowd in den agilen Testablauf können Defects und Usability Probleme aufgedeckt werden, die beispielsweise aufgrund der Betriebsblindheit der eigenen Entwickler und Tester selbst im agilen Prozess durch Testanalysten noch mit in das Release gerutscht wären. Würde eine Überprüfung erst wie im klassischen Wasserfallmodell am Projektende erfolgen, wären Anpassungen noch aufwändiger. Deshalb setzt die agile Methode bewusst auf die Früherkennung von Defects und erhält unter Einbezug der Crowd nochmals eine Optimierung – insbesondere im Hinblick auf die Endkundenperspektive, die Heterogenität der Endgeräte und Tester. Durch die Vermeidung von Fehlentwicklungen noch während der Projektlaufzeit steht am Ende eines agilen Testprozess, das durch Crowdtesting ergänzt wurde, ein Produkt, dass den Prämissen nach hoher Kundenzufriedenheit ebenso genügt wie dem Anspruch an hohe Produktqualität.

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

Schreibe einen Kommentar

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

Kategorien

Recent Posts