Konzept: Ständige Konzentration auf Qualität
Dieses Prinzip führt den Begriff der Qualität ein und beschreibt seine Berücksichtigung während des gesamten Prozesses.
Hauptbeschreibung

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
  1. Sicherstellen, dass das Team Qualitätseigner für das Produkt ist.
  2. Tests früh beginnen und dann kontinuierlich durchführen.
  3. 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.

Software, die in einer Iteration entwickelt wird, wird bereits bei der Erstellung getestet. Regressionstests stellen sicher, dass keine neuen Mängel in diesen Prozess eingeführt werden.

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).