Wenn Sie agile Methoden auf bestehende Softwareentwicklungspraktiken anwenden, ist es oft sinnvoll, bei den Grundlagen zu beginnen. Für Regressionstests läuft das auf Folgendes hinaus:
Das erforderliche schnelle Feedback kann oft nur erreicht werden, wenn die Regressionstests schnell und automatisch ausgeführt werden. Zu diesem Zweck müssen Regressionstests geskriptet und in einer automatischen Build-Umgebung ausgeführt werden.
Regressionstestsuite != Summe(Funktionale Testsuiten)
Der Zweck funktionaler Tests besteht darin, das Verhalten bestimmter Geschäftsfunktionen zu untersuchen und Eckfälle aufzuzeigen. Wie bereits erwähnt, besteht der Zweck von Regressionstests darin, einen Gesamtüberblick über das gesamte System zu geben. Diese beiden Zwecke sind unterschiedlich und daher sollten funktionale Testsuiten nicht einfach als Regressionstests verwendet werden.
In einem agilen Kontext werden funktionale Tests verwendet, um zu beweisen, dass das Team die für einen Sprint geplante Funktionalität geliefert hat. Die Entwicklung der funktionalen Testfälle ist Teil des Sprints, in dem die Funktionalität entwickelt wird. Die funktionalen Testfälle sind somit eine Grundlage für den Product Owner, die neue Funktionalität zu akzeptieren. In vielen agilen Teams habe ich gesehen, dass funktionale Tests, die für frühere Sprints entwickelt wurden, nacheinander als Regressionstests für den aktuellen und die kommenden Sprints ausgeführt werden. Obwohl dies ein einfacher und billiger Ansatz ist, um eine Regressionstestsuite zu erstellen, gibt es eine Reihe von Problemen mit diesem Ansatz:
- Regressionstests gewährleisten die Kontinuität der Geschäftsfunktionen.
- In einem agilen Kontext hilft es dem Team, sich auf die (neuen) Funktionen zu konzentrieren, die im Sprint entwickelt werden sollen, während die Gesamtstabilität erhalten bleibt.
- Um Regressionstests in einem agilen Kontext optimal zu nutzen, sollten Testautomatisierung und kontinuierliche Ausführung eingesetzt werden.
- Es ist wichtig, den Unterschied zwischen funktionalen Tests und Regressionstests zu kennen, um einige häufige Fallstricke zu vermeiden.
- Da das System iterativ und evolutionär entwickelt wird, werden dieselben Geschäftsfunktionen oft über viele Sprints hinweg mehrfach geändert und erweitert. Infolgedessen werden viele Funktionstests für dieselbe Geschäftsfunktion geschrieben. Das bedeutet eine Menge "Testduplizierung". Da sich die Geschäftsfunktion ändert, müssen die alten Testskripte angepasst werden und der erforderliche Aufwand steigt mit jedem Sprint.
- Gleichzeitig hat sich der Wert der Regressionstests nicht erhöht, da die gleiche Geschäftsfunktion getestet wird. Der Gesamtüberblick über das System hat sich nicht verbessert, sondern wurde durch das Hinzufügen weiterer Daten verschleiert.
- Als Nebeneffekt dauert es auch länger, die Regressionstests auszuführen und die Ergebnisse zu analysieren.
- Der Product Owner stellt eine Liste aller Geschäftsfunktionen zusammen, die in den Regressionstest einbezogen werden sollen. Dies kann schrittweise über mehrere Sprints hinweg geschehen, während das Team lernt, welche Funktionen wichtig sind. Auch die Erstellung der Tests kann schrittweise erfolgen.
- Funktionstests im Sprint sind im Grunde genommen "Wegwerftests": Sie sind nicht dazu gedacht, lange gepflegt zu werden. Vielleicht behalten Sie die Tests, um sie später zu aktualisieren und wiederzuverwenden.
- Einige Funktionstests können zu Regressionstests aufgewertet werden, wenn sie bestimmte Geschäftsfunktionen besser abdecken als bestehende Tests. Die bestehenden Tests können dann aus der Regressionstestsuite herausgenommen werden.
- Skripte für Regressionstests werden bei Bedarf im Sprint aktualisiert. Dies ist Teil der UserStory und sollte daher bei der Schätzung berücksichtigt werden.
- Regressionstests spielen in der agilen Entwicklung eine wichtige Rolle. Neben dem üblichen Zweck, die Stabilität zu prüfen, helfen sie dem Team, sich auf die Funktionalität im aktuellen Sprint zu konzentrieren.
- Auch wenn es verlockend ist, die funktionalen Tests der vergangenen Sprints als Regressionstests für den aktuellen Sprint zu verwenden, führt dies zu einer unhandlichen Regressionstestsuite und verwischt den Zweck der Regressionstestsuite, indem eine Menge Doppelarbeit eingeführt wird. Stattdessen sollte die Regressionstestsuite so aufgebaut sein, dass sie die (wichtigsten) Geschäftsprozesse widerspiegelt.
Verfasst von
Maarten Winkels
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.



