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

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

1
2
Agile Testing: Beispiel in einem Scrum-Project

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.

Klassisches Testmanagement und Agile Testing im Überblick

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.

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

Agiles Projektmanagement und Scrum kompakt

Laden Sie sich jetzt unser kostenloses PDF mit allen Informationen zum agilen Projektmanagement und Scrum herunter.

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.
*: Pflichtfelder
Ich erkläre mich mit der Zusendung des wöchentlichen microTOOL Newsletters einverstanden. Diese Zusage kann ich natürlich jederzeit widerrufen.

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.

Sie haben weitere Fragen? Gut, wir haben weitere Antworten.

Wissen Online

Interessante Details und Erklärungen finden Sie hier  >>