Dienstag, 6. November 2012

Testing im agilen Prozess

In den agilen Prozessen ist oft nicht genau definiert, welche Tests wann durchzuführen sind (siehe auch älteren Blogbeitrag). Die Diskussion ist inzwischen weiter fortgeschritten, dennoch ist oft in den Projekten strittig, wann Systemtests und Integrationstests durchzuführen sind. Vor allem in großen Software-Projekten, mit vielen agilen Teams, oder Unternehmen mit vielen Programmen (und damit auch vielen Teams), die Abhängigkeiten untereinander besitzen, ist es wichtig zu definieren, wann welche Tests durchzuführen sind. Nachfolgend ein Vorschlag, wie Test und Entwicklung im agilen Projekt verzahnt werden können:
agile testing in large projects

Während des Sprints werden funktionale Tests durchgeführt. Zusätzlich finden auch nicht-funktionale Tests, z. B. zur Usability statt. In jedem Sprint wird das Inkrement getestet (Basis ist das Sprint-Backlog). Zu entscheiden ist auch, ob und welche Regressionstests ab dem 2. Sprint stattfinden.
Am Ende des Sprints werden Integrationstests (z. B. Schnittstellen zwischen Programmen) und Systemtests (Lasttest, Performancetests) für alle Softwareteile durchgeführt. Dazu werden alle Programme auf einem System aufgebracht, dass der Konfiguration wie beim Kunden entspricht.
Der letzte Sprint ist ein reiner Quality-Sprint. Es wird keine funktionale Weiterentwicklung durchgeführt. Diese ausführliche QS-Phase ist notwendig, um alle Programme noch einmal intensiv zu testen, wenn die Fehler aus dem Quality Gate des letzten Sprints beseitigt wurden.