Agiles Testen: Mehr Effizienz durch die Testpyramide

In meinem Beitrag „Was agiles Testen nicht ist und was es ist“ habe ich darüber geschrieben, dass Funktionalitäten in einem Sprint fertig getestet werden müssen, um am Ende des Sprints funktionierende (Teil)Produkte liefern zu können. Das kann herausfordernd sein: Man muss frühzeitig wissen, was man testet, die notwendige Infrastruktur muss zur Verfügung stehen und vor allem muss es schnell gehen – denn die Iterationen sind kurz, sehr viel kürzer als wir es aus klassischen Projekten gewohnt sind.

Mike Cohn hat schon vor einigen Jahren die Testpyramide vorgestellt, die uns zeigt, wie das Testen effizient gestaltet werden kann:

  • Unit Tests sind relativ einfach zu erstellen und auch noch schnell durchzuführen. Wir können diese nutzen, um eine hohe Testabdeckung zu erreichen und in sehr frühen Phasen der Entwicklung die meisten Fehler zu entdecken. Hier hilft es sehr, wenn Entwickler konsequent bei der Erstellung von Unit Tests dabei sind und ein hohes Qualitätsbewusstsein haben. Idealerweise entwickeln sie sogar mit TDD oder folgen den Prinzipien zu Clean Code.
  • System- und Integrationstests kann man relativ gut automatisieren, dafür gibt es auch eine große Toolauswahl. Um möglichst effizient zu testen, ist es absolut wichtig, das richtige Tool auszuwählen. Die Kosten dürfen dabei nicht das einzige Entscheidungskriterium sein. Genauso wichtig sind das Know-how der Teammitglieder (Script-Tools, Capture & Replay, Beschreibungssprache etc.), die Interaktion mit den anderen Entwicklungstools und vieles mehr. Aus dieser Testphase heraus lässt sich meiner Meinung nach auch am besten entscheiden, welche Testfälle sich für den Pool an Regressiontest-Testfällen eignen. Meine Empfehlung: mindestens 1 Gutfall-Testfall + 1 kritischer Negativ-Testfall pro User Story. Hier ist auch wichtig zu wissen, ob sich diese User Story in naher Zukunft noch sehr verändern wird (dann mehr Testfälle in den Regressionstest) oder nicht.
  • UI/Fachbereichstests sind meist sehr komplex und schwer zu automatisieren. Auch die Wartung der Automatisierung ist sehr zeitintensiv, daher sollte man sich gut überlegen, ob eine Automatisierung tatsächlich sinnvoll ist. In dieser Phase der Entwicklung sollte man eigentlich schon die meisten Fehler gefunden haben. Es geht also nur noch darum, zu verifizieren, ob das Richtige entwickelt wurde und nicht mehr so sehr, ob es richtig entwickelt wurde. Diese Tests sollten natürlich nicht vernachlässigt, aber auf ein Minimum reduziert werden. So spart man Zeit und Geld und vor allem entstehen keine Redundanzen.

Mit dieser Taktik lässt sich die Qualität des Produkts am effizientesten erhöhen und es kann sichergestellt werden, dass am Ende des Sprints funktionierende Software potenziell geliefert werden kann.Bild: Copyright Mike Cohn, Constanze Riess

Andra Calancea
July 11, 2018

Table of content

Diesen Beitrag teilen

Das könnte auch interessant sein:

Wie du mit klaren Rollen Erwartungen managst (und Konflikten vorbeugst)
BG

Wie du mit klaren Rollen Erwartungen managst (und Konflikten vorbeugst)

Innere Klarheit statt Aktionismus – wie du als Führungskraft souverän bleibst
BG

Innere Klarheit statt Aktionismus – wie du als Führungskraft souverän bleibst

Zwischen Klarheit und Kontrolle – was moderne Führung heute wirklich braucht
BG

Zwischen Klarheit und Kontrolle – was moderne Führung heute wirklich braucht

Gute Führung beginnt bei dir - warum Selbstführung kein Luxus ist
BG

Gute Führung beginnt bei dir - warum Selbstführung kein Luxus ist

„Purpose statt Position“ - warum der Wunsch nach Sinn zum neuen Karrieremotor wird
BG

„Purpose statt Position“ - warum der Wunsch nach Sinn zum neuen Karrieremotor wird

Arbeiten im Wandel - was Unternehmen heute leisten müssen
BG

Arbeiten im Wandel - was Unternehmen heute leisten müssen

Was ist eigentlich ein Agile Coach - und brauchen wir das wirklich?
BG

Was ist eigentlich ein Agile Coach - und brauchen wir das wirklich?

Finde deine Stimme – und nutze KI als Verstärker
BG

Finde deine Stimme – und nutze KI als Verstärker

Leadership in the AI Era: Reinventing Human-Centered Leadership
BG

Leadership in the AI Era: Reinventing Human-Centered Leadership

KI hier, KI da – was bedeutet das für mich als Führungskraft?
BG

KI hier, KI da – was bedeutet das für mich als Führungskraft?

Der kybernetische Teamkollege
BG

Der kybernetische Teamkollege

Agile Strategie mit OKRs: Vom Denken ins Tun kommen
BG

Agile Strategie mit OKRs: Vom Denken ins Tun kommen