Einführung
Dieses Prinzip besagt, dass, Qualität nur erreicht werden kann, wenn während des gesamten Projekts
ständig an ihr gearbeitet wird. Ein iterativer Prozess wird in besonderer Weise angepasst, um Qualität
zu erreichen, da er viele Mess- und Korrekturmöglichkeiten bietet.
|
|
Vorteile
|
-
Höhere Qualität
-
Früher Einblick in Fortschritt und Qualität
|
Muster
|
-
Sicherstellen, dass das Team Qualitätseigner für das Produkt ist.
-
Tests früh beginnen und dann kontinuierlich durchführen.
-
Testautomatisierung inkrementell erstellen.
|
Antimuster
|
-
Alle Artefakte mit Partnern überprüfen und alle Einheitentests vor dem
Integrationstest abschließen.
-
Alle temporären Artefakte zusammen mit Partnern gründlich überprüfen. Diese
Vorgehensweise ist kontraproduktiv, da sie den Anwendungstest und somit die
Identifikation wichtiger Probleme verzögert.
-
Alle Einheitentests vor den Integrationstests durchführen. Auch diese
Vorgehensweise verzögert die Identifikation der wichtigsten Probleme.
|
|
Diskussion
Um die Qualität zu verbessern, genügt es nicht, Anforderungen einfach zu erfüllen oder ein Produkt zu erzeugen, das
lediglich die Erwartungen erfüllt. Zur Qualität gehört auch die Identifikation von Maßnahmen und Kriterien, mit denen
das Erreichen der Qualität veranschaulicht werden kann, sowie die Implementierung eines Prozesses, mit dem
sichergestellt wird, dass das mit diesem Prozess erzeugte Produkt den gewünschten Qualitätsstandard erreicht. Des
Weiteren gehören Wiederholbarkeit und Verwaltung aller Aktivitäten dazu.
Die Sicherstellung hoher Qualität erfordert mehr als nur die Teilnahme des Testteams, das gesamte Team muss
Qualitätseigner sein. Alle Teammitglieder und alle Teile des Lebenszyklus sind einbezogen:
-
Analytiker sind dafür zuständig, dass Anforderungen getestet werden können und dass klare
Anforderungen hinsichtlich der durchzuführenden Tests formuliert werden.
-
Entwickler müssen beim Anwendungsdesign immer den anstehenden Test im Auge behalten und sind
für das Testen ihres Codes zuständig.
-
Manager müssen sicherstellen, dass die richtigen Testpläne und die richtigen Ressourcen für
die Testware sowie die Durchführung der erforderlichen Tests zur Verfügung stehen.
-
Tester sind Qualitätsexperten. Sie sind dafür zuständig, den übrigen Teammitgliedern Fragen
der Softwarequalität nahezubringen, und auch die Durchführung aller Produkttests (einschließlich Funktions-,
System- und Leistungstests) liegt in ihrer Verantwortung.
Tritt ein Problem im Zusammenhang mit der Qualität auf, sollte jedes Teammitglied daran interessiert sein, an seiner
Lösung mitzuwirken.
Einer der Hauptvorteile der iterativen Entwicklung besteht darin, dass Tests früh und kontinuierlich
durchgeführt werden, wie unten dargestellt. Wenn das Projektende in Sicht ist und die wichtigsten Funktionen bereits
zuvor implementiert wurden, war die wichtigste Software vielleicht schon monatelang betriebsbereit und wurde daher
wahrscheinlich schon monatelang getestet. So überrascht es nicht, dass bei den meisten Projekten, die die iterative
Entwicklung praktizieren, ein spürbarer Qualitätszuwachs ein primäres Ergebnis des verbesserten Prozesses ist.
Tests werden früh eingeleitet und in jeder Iteration erweitert
Iterative Entwicklung ermöglicht frühes Testen. Software, die in einer Iteration entwickelt wird, wird bereits bei
der Erstellung getestet. Regressionstests stellen sicher, dass keine neuen Mängel eingeführt werden, wenn in neuen
Iterationen Funktionen hinzugefügt werden. Referenz: Unterstützendes Material: Qualitätsmanagement.
Parallel zur inkrementellen Erstellung der Anwendung sollte eine inkrementelle Erstellung der
Testautomatisierung erfolgen, um Mängel früh zu erkennen und Vorabinvestitionen auf ein Mindestmaß zu reduzieren.
Schon während das Systemdesign erstellt wird, sollte darüber nachgedacht werden, wie ein entsprechender Test aussehen
sollte. Die richtigen Entscheidungen beim Design können die Fähigkeit zur Testautomatisierung erheblich verbessern. Es
besteht auch die Möglichkeit, Testcode aus den Designmodellen zu generieren. Das spart Zeit, gibt Anreize für frühes
Testen und verbessert die Qualität, da die Anzahl der Programmfehler in der Testsoftware reduziert wird. Automatische
Tests sind einer der Schlüsselbereiche der agilen Softwareentwicklung, der darauf abzielt, den gesamten Code
automatisch zu testen, und der sich dadurch auszeichnet, dass Tests noch vor dem eigentlichen Code geschrieben werden
(Test-First-Design).
|