Was ist Agile Testing?

Agile Testing. Tests agil planen, durchführen und überwachen.

Was versteht man unter Agile Testing? Wie unterscheidet es sich vom klassischen Testmanagement und wie testen Sie agil?

tooltip text
1

Agile Testing verknüpft die Entwicklung mit dem Test. Daher benennt das agile Team mindestens ein Team-Mitglied als Tester bzw. als Entwickler mit dem Fokus auf das Testen.

2

In vielen agilen Projekten bewährt sich ein kontinuierliches Testen während der Iteration. Es ist auch möglich, die letzten Tage jeder Iteration für den Test vorzusehen. Oftmals setzt man vor dem ersten Sprint einen Sprint 0 um, um die Tests zu planen.

Agile Testing – heißt das Testen ohne Management? Zumindest lässt der Begriff eine solche Bedeutung zu. Dann gäbe es keine Trennung von Entwicklung und Test und keine Abarbeitung der Aufgaben Phase für Phase, wie man das vom klassischen Testmanagement gewohnt ist. Wie beim Projektmanagement haben die Erfahrungen hier gezeigt: Die klassische Vorgehensweise ist schwer, zeitaufwändig und weist hohes Konfliktpotential auf. Dies wird besonders im Fall des Testmanagements deutlich: Oftmals entstehen zwei Fraktionen – Entwickler gegen Tester – und das eigentliche Ziel, nur das beste und richtige Produkt für den Kunden zu liefern, rückt in den Hintergrund. Daher steckten die agilen Prinzipien ebenfalls das Testmanagement an. Doch auch wenn das Wort Management fehlt, müssen Sie natürlich trotzdem noch Ihre Tests planen, durchführen und überwachen – nur eben auf agile Art und Weise. Wie funktioniert Agile Testing im Detail?

Lesen Sie hier, um mehr über klassisches und agiles Projektmanagement zu erfahren »

Agile Testing – kurz definiert:

Agile Testing verknüpft die Entwicklung mit dem Test.

Anstatt am Ende des Projekts eine Testaktivität einzuplanen, testet man bereits innerhalb der Iterationen.

Unterschiede zwischen klassischem Testmanagement und Agile Testing

Was ist klassisches Testmanagement?

Im klassischen Testmanagement finden Sie das berühmt berüchtigte V-Modell, auch als Wasserfall-Modell bekannt. Es beginnt mit der Anforderungsdefinition, geht über zum funktionalen Systementwurf, dann zum technischen Systementwurf, zur Komponentenspezifikation und schließlich zur Programmierung. Das ist die linke Seite des V-Modells. Um das System in den einzelnen Phasen bzw. Stufen zu testen, zeichnet man nun die rechte Seite des Modells, die sogenannten Teststufen:

  • Komponententest (auch Unittest, Modultest oder Klassentest): Funktionalität einzelner Komponenten wird getestet.
  • Integrationstest: Zusammenspiel der einzelnen Komponenten wird getestet.
  • Systemtest: Gesamtes System wird gegen Anforderungen intern getestet.
  • Abnahmetest: Gesamtes System wird gegen Anforderungen durch Kunden getestet.

Alle Teststufen laufen nacheinander ab. Der Fokus im klassischen Vorgehen liegt auf der Kontrolle und Steuerung des Testmanagements. Dazu fallen viele Dokumente an wie Testkonzepte, Testpläne oder Testprotokolle. Und wie bereits angedeutet: Die Rollen und Aufgaben sind in diesem Prozess klar definiert und verteilt.

Was ist Agile Testing?

Ein agiles Team, wie es zum Beispiel das Vorgehensmodell Scrum definiert, ist selbst organisiert. Idealerweise gibt es keinen externen Projektmanager und erst recht keinen Testmanager. Diese Rollen übernehmen die Mitglieder des Teams selbst. Dennoch hat das Agile Testing dieselben Aufgaben, die auch das klassische Testmanagement bewältigen muss:

  • Testplanung
  • Testschätzung und Testorganisation
  • Testerstellung und Testdurchführung
  • Testüberwachung, Teststeuerung und Dokumentation

Alle Aufgaben laufen parallel in einer Iteration ab und nicht in nacheinander folgenden Aktivitäten wie im klassischen Testmanagement. Zudem berücksichtigt Agile Testing die klassischen Teststufen. Denn diese Stufen definieren unterschiedliche Testarten, die gleichzeitig bestimmte Testmethoden und –werkzeuge nach sich ziehen. Sowohl klassische als auch agile Projekte nutzen diese Methoden und Werkzeuge. So lassen sich zum Beispiel codenahe Komponententests durch automatisierte Techniken ausführen, während Sie Systemtests meist manuell durchführen. Allerdings ordnet agile Testing diese Stufen in ein anderes System ein, weil es die Teststufen nicht nacheinander durchführt. Um dort Tests zu kategorisieren, finden Sie hier zum Beispiel das Konzept der Testquadranten.

Lesen Sie hier, um mehr über das Konzept der Testquadranten zu erfahren »

Agile Testing bedeutet:

Sie bauen das richtige Produkt lieber unvollständig, als das falsche richtig.

Agiles Testen in der Praxis

Probieren Sie es aus.
30 Tage lang kostenlos mit objectiF RPM »

objectiF RPM

Klassisches Testen

Trennung von Entwicklung und Tests

Externe Tester, Testmanager und Qualitätsmanager

Test ist eigene Aktivität

Vier definierte Teststufen

Teststufen laufen nacheinander ab

Mehr manuelle Tests wegen Trennung von Entwicklung und Tests

Ausführliche Dokumentation

Agiles Testen

Entwicklung und Tests sind vereint

Tester, Testmanager und Qualitätsmanager im Team

Test ist Teil jeder Iteration

Teststufen werden berücksichtigt, aber betten sich in ein anderes System ein

Teststufen laufen parallel ab

Mehr automatisierte Tests wegen Kopplung von Entwicklung und Tests

Stichpunktartige Dokumentation

Automatisiert oder manuell testen?

Sie können Tests automatisiert in einer programmiersprachen-abhängigen Testumgebung oder manuell „per Hand“ durchführen. Wenn Sie an die traditionellen Teststufen denken, dann werden automatisierte Tests für Komponenten- und Unit-Tests durchgeführt. Agile Testing, wie es zum Beispiel Scrum-Projekte durchführen, strebt es ebenso an, Funktionstest automatisiert ablaufen zu lassen. Generell gilt hier: So viel wie möglich automatisiert, so wenig wie möglich manuell. Denn die Automatisierung bringt erhebliche Vorteile: Jeder Test lässt sich genau planen, wiederholen und nachvollziehen. Fragen wie „Was genau hast du dort gemacht?“ existieren nicht.

Trotzdem sind manuelle Tests auch im Umfeld des Agile Testing absolut notwendig. Die Usability lässt sich zum Beispiel nur durch Menschen prüfen. Oder der Akzeptanztest findet noch immer beim Kunden statt. Manuelle Tests stellen also insofern eine Herausforderung dar, dass der Faktor Mensch hinzukommt und Sie die Planbarkeit, Wiederholbarkeit sowie Nachvollziehbarkeit der Tests sicherstellen müssen.

Aufgaben im Agile Testing

Die folgenden Aufgaben beziehen sich vor allem auf das manuelle Testen.

Testplanung

Die Testplanung betrifft beim Agile Testing bereits die Erstellung der Anforderungen bzw. User Storys im Projekt. Das Team muss in diesen Schritt immer prüfen, ob sich die User Storys auch später testen lassen. Somit entstehen bereits Testfälle, die mit den Anforderungen verbunden sind und im Laufe des Projekts detaillierter beschrieben werden.

Für die Testplanung setzt ein agiles Projekt oftmals einen Sprint 0 an. Dort plant es Voraussetzungen wie zum Beispiel die Testumgebung und Testtools. Aber es definiert auch ein Testkonzept mit Zielen der Organisation und Vorgehensweisen für das Testen. Zusätzlich bestimmt das Team hier die Tester und ihre Zusammenarbeit mit dem Rest des Teams. Zum Beispiel definiert es, wie die Tester Bugs kommunizieren.

Testschätzung und Testorganisation

Das Schätzen des Testaufwands erweist sich bereits im klassischen Testmanagement als Herausforderung. Denn zu Anfang eines Projekts haben Sie zumeist zu wenige oder wenig aussagekräftige Informationen. Auch im Agile Testing stoßen Sie auf dieses Problem, wenn Sie den Testaufwand für Ihre User Storys schätzen müssen. Daher behilft man sich oftmals durch eine Referenz-Story: Das Team wählt eine möglichst einfache Story und schätzt ihren Testaufwand. Darauf basierend lassen sich die Aufwände für die anderen Storys kalkulieren. Während des Sprint Plannings und des Backlog Groomings kann das Team dann detailliertere Schätzungen treffen.

Um einen Test zu organisieren, bestimmen Sie die Tester im Team. Da manche Tests wie zum Beispiel ein Lasttest aber Experten benötigen, die sich nicht immer im Team befinden, können Sie externe Tester für diese Spezialfälle hinzuziehen.

Testerstellung und Testdurchführung

Wie bereits zuvor beschrieben, erstellen Sie mit den Anforderungen bereits Ihre Testfälle. Agile Teams können aber – anders als beim klassischen Testmanagement – auf ausführliche Testfälle verzichten, wenn sie ihnen keinen Nutzen bringen. Außerdem setzen sie auch gern die Methode des explorativen Testens ein, die sich Testfälle ganz einspart. Stattdessen setzt dieses Vorgehen auf die Erfahrung des Testers und seiner intrinsischen Motivation, Was-Passiert-Wenn-Fällen nachzugehen.

Während der Testerstellung und –durchführung muss für ein effizientes Agile Testing jedoch immer genügend Kommunikation, am besten von Angesicht zu Angesicht, im gesamten Team herrschen.

Testüberwachung, Teststeuerung und Dokumentation

Die Überwachung und Steuerung für das Testmanagement agiler Projekte reduziert sich im Vergleich zu klassischen Projekten. Die Aufgaben des Messens, der Bewertung der Abweichung und der Ergreifung von Gegenmaßnahmen kommuniziert ein agiles Team zumeist mündlich. Allerdings finden sich viele agile Teams in einer Umgebung des klassischen Projektmanagements wieder: Sie arbeiten als Team zwar agil, müssen nach außen hin jedoch einen bestimmten Prozess folgen und dokumentierte Kennzahlen vorweisen. Diese hybride Projektstruktur lässt eine rein mündliche Kommunikation für die Überwachung und Steuerung nicht mehr zu. Vielmehr eignet sich dann eine passende Software, die diese Kennzahlen liefert. In diesem Umfeld muss das Team oftmals auch detaillierte Dokumentation erstellen.

Lesen Sie hier, um mehr über hybrides Projektmanagement zu erfahren »

Agile Testmethoden – Zwei Beispiele

Sowohl im klassischen Testmanagement als im agilen Testen lassen sich diese Methoden anwenden.

Risiko- und Nutzen-basiertes Testen

Tester prüfen nur die Bereiche, die die höchsten Risiken aufweisen und gleichzeitig den höchsten Nutzen bringen. Der Product Owner ist dafür verantwortlich, die wichtigsten Informationen im Product Backlog festzuhalten. Das Team inkl. der Tester analysiert zusammen die Risiken mithilfe dieser Informationen. Die Multiplikation von Auswirkung und Wahrscheinlichkeit eines Risikos ergibt die Testpriorität.

Exploratives Testen

Der Tester lässt sich von seiner Intuition und seinen Erfahrungen leiten, um das System zu testen. Für diesen Zweck folgt er verschiedenen Pfaden, bis er auf einen Bug stößt. Zum Beispiel prüft er nur die Funktionen, die den meisten Nutzen für die Stakeholder bringen. Oder er geht gezielt destruktiv vor und bohrt in den Schwachstellen des Systems. Erst wenn er Fehler findet, leitet er geeignete Testfälle ab.

Download Projektplanung und Projektkontrolle in agilen und hybriden Projekten Whitepaper

Wissen zum Mitnehmen

Projektplanung und Kontrolle in agilen und hybriden Projekten kompakt

PDF zum Download »

Mehr Downloads rund ums Thema

  • Whitepaper
  • Tipps & Tricks
  • Software

Zum Downloadcenter »

Vorteile des Agile Testing zusammengefasst

Vereinigung von Entwicklung und Test

Frühzeitige Fehlerfindung

Sicherstellung einer hohen Qualität

Senkung der Projektkosten

Hohe Kundenzufriedenheit

Hohe Entwicklungsgeschwindigkeit

Im agilen und hybriden Umfeld testen

Im agilen Umfeld findet das Testen fortlaufend statt. Sie arbeiten häufig mit Testfällen, die Sie zum Beispiel von Ihren Anforderungen ableiten oder beim explorativen Testen entdecken und dokumentieren. Wie im klassischen Testmanagement stellt auch hier das manuelle Testen eine große Herausforderung dar, weil Sie alle Beteiligten zusammenbringen und die Planbarkeit, Wiederholbarkeit sowie Nachvollziehbarkeit der Tests sicherstellen müssen. Das geht nur mit einem passenden Werkzeug. Denn damit können Sie Ihre Testfälle ganz leicht von den Anforderungen ableiten, Umfang, Plandatum und Mitarbeiter Ihrer Tests organisieren und den Fortschritt überwachen. Ein Test schlägt bei jemanden fehl? Kein Problem, Sie können den Status jedes Tests überwachen. Der Mitarbeiter kann zudem gleich einen Bug ableiten und die Kommunikation ist sichergestellt. Auch die Dokumentation Ihrer Tests, zum Beispiel durch einen Export nach MS Excel, ist möglich.