Reifegrade der Testautomatisierung

R 2.0.0

Allgemeine Beschreibung

Art und Umfang der Testaktivitäten, die im Zusammenhang mit einem bestimmten Baustein durchgeführt werden, sagen etwas über die "Reife" eines Projektvorgehens aus. Probieren Sie doch mal, sich anhand unseres Fragebogens selbst einzustufen! Wir definieren für jeden Baustein vier unterschiedliche Reifegrade und geben Ihnen Hinweise darauf, auf welcher "Stufe" Sie sich gerade befinden, bzw. geben Ihnen Hilfestellung durch welche konkreten Maßnahmen Sie eine höhere Stufe, einen höheren Reifegrad also, erreichen können.

Reifegrad "Initial"

Die Testautomatisierung besteht aus ungeplanten Ad-hoc-Aktivitäten. Es findet keine Dokumentation der Planung oder der beobachteten Ergebnisse statt. Eine risikobasierte Priorisierung der zu prüfenden Anwendungsteile erfolgt nicht.

Kontrollpunkte

  • Es ist grundsätzlich bekannt, wie Testautomatisierung funktioniert und eingesetzt wird.

  • Die Testautomatisierung erfolgt spontan und durch lokale Werkzeuge, wenn der Einzelne es für sinnvoll hält.

  • Unit Tests werden rudimentär und unorganisiert ausgeführt, ohne Übersicht der Testabdeckung.

  • Die Durchführung von Smoketests ist ein typisches erstes Praxisbeispiel.

  • Es mangelt an Kommunikation unter den Projektbeteiligten.

Verbesserungsvorschlag

Um sich um einen Reifegrad zu verbessern, müssen die Kontrollpunkte des Reifegrades "Kontrolliert" erfüllt sein. Diese umfassen insbesondere die Planung, Ausführung und Steuerung der Tests:

  • Planen und erstellen Sie die Testskripte basierend auf den Anforderungen und führen ein Review durch

  • Ermitteln Sie die Abdeckung der Anforderungen durch die Testskripte

  • Setzen Sie ein einheitliches Testautomatisierungstool für das Testteam auf und konfigurieren Sie dieses zur automatisierten Ausführung der Tests

  • Führen Sie komplette Testzyklen automatisiert durch und messen deren Fortschritt für die Berichterstattung

Reifegrad "Kontrolliert"

Alle wichtigen Aktivitäten des Testprozesses werden geplant und durchgeführt.

Mehrwert

  • Die Transparenz und Kommunikation werden durch die Berichterstattung verbessert

  • Die Testabdeckung wird mess- und steuerbar

  • Eine kontrollierte Testautomatisierung gewährleistet einen kontinuierlichen Testprozess

  • Die Qualitätsprüfung der Software kann automatisch in kurzer Zeit erfolgen und dadurch den Entwicklungsprozess beschleunigen

    • Automatisierte Tests können eine größere Testabdeckung erreichen

    • Komplette Testzyklen können automatisiert in kürzerer Zeit Testergebnisse liefern

Kontrollpunkte

  • Die erstellten Testskripte wurden einem Review unterzogen und decken die Anforderungen ab

  • Eine Testautomatisierungssoftware ist für das Testteam aufgesetzt, konfiguriert und ermöglicht das automatisierte Ausführen von Testskripten

  • Komplette Testzyklen werden automatisiert ausgeführt, gemessen und ausgewertet

  • Die Testergebnisse werden automatisch protokolliert und stehen für die Berichterstattung zur Verfügung

Verbesserungsvorschlag

  • Nehmen Sie eine Priorisierung der zu prüfenden Anwendungsteile nach deren Geschäftswert vor

  • Verfolgen Sie das Ziel, die priorisierten Regressionstestfälle vollständig zu automatisieren

  • Referenzieren Sie eindeutige IDs der Anforderungen, um die Rückverfolgbarkeit zu ermöglichen

  • Integrieren Sie die automatisierten Tests in einen Continuous Lifecycle (CI/CD)

Um den Reifegrad „Effizient“ zu erreichen, müssen neue Anforderungen aus dem Fachbereich zeitnah als automatisierte Tests geschrieben werden.

Reifegrad "Effizient"

Die Aktivitäten der Testautomatisierung werden so aufeinander abgestimmt, dass es zu einem günstigeren Kosten-Nutzen-Verhältnis kommt.

Mehrwert

  • Priorisierte Regressionstests werden vollständig automatisiert und ermöglichen eine schnelle Rückmeldung und Fehlerbehebung

    • Schnelle Rückmeldung der Testautomatisierungssoftware über den aktuellen Qualitätszustand

    • Schnelle Behebung von Fehlerzuständen auf Basis der automatisiert erstellten Testprotokolle

    • Kurze Abstände der Fehlernachtests und schnelle Lieferung von stabilen Softwareversionen

    • Erhöhung von Geschwindigkeit, Effizienz und Qualität bei reduzierten Testkosten

  • Die knappe Ressource der Tester steht aufgrund der Automatisierung für die Tests wichtiger und risikobehafteter Anwendungsteile bereit

    • Erhöhung von Motivation und Effektivität der Tester

  • Die fachlichen Anforderungen werden durch Testskripte vollständig abgedeckt, wodurch eine umfassende Qualitätssicherung erfolgen kann.

    • Vollständige Transparenz der Qualität der Software durch die komplette Abdeckung der Anforderungen

    • Verbesserte Testabdeckung

Kontrollpunkt

  • Die automatisierten Testskripte umfassen alle nach ihrem Geschäftswert hochpriorisierten Regressionstests des aktuellen Entwicklungsstands.

  • Es gibt eine vollständige Rückverfolgbarkeit zwischen den Anforderungen, den Testskripten und den Fehlerzuständen

  • Continuous Lifecycle ist in der Entwicklungsarchitektur vorhanden

    • Neue Anforderungen werden im Sprint als Testskripte implementiert und in die Testautomatisierung integriert

    • Alle im Sprint umgesetzten Anforderungen können durch die Testautomatisierungssoftware automatisch getestet werden

Verbesserungsvorschlag

Um in den nächsten Reifegrad „Optimierend“ zu gelangen, müssen die hier festgelegten Kontrollpunkte kontinuierlich verbessert werden. Dadurch sollen Routinen oder Betriebsblindheit vermieden werden.

  • Führen Sie dazu einen Verbesserungsprozess ein, der regelmäßige Reviews und Retrospektiven beinhaltet

  • Überprüfen Sie dabei auch die Auswahl ihrer eingesetzten Werkzeuge

  • Konzipieren Sie automatisierte Tests und deren Einsatz so früh wie möglich im Entwicklungsprozess ("shift left")

Das Ziel soll eine wartungsarme und langlebige Testautomatisierung sein, die ggf. auch eine Plattformunabhängigkeit erreichen kann.

Reifegrad "Optimierend"

Der erreichte Zustand des Testprozesses wird gepflegt, analysiert und sich ändernden Erfordernissen stetig angepasst.

Mehrwert

  • Eine Testautomatisierung im Reifegrad „Optimierend“ ermöglicht den gezielten Einsatz automatisierter Test.

  • Dabei werden die Kosten minimiert und sowohl die Softwarewerkzeuge als auch die Prozesse kontinuierlich verbessert.

    • Effizientes und Effektives Testen des Systems unter Test

    • Skalierbarkeit des Testautomatisierungssystems

    • Plattformunabhängige Einsatzmöglichkeiten in Folge- oder Parallelprojekten

Kontrollpunkte

  • Die Testskripte sind anhand der fachlichen Anforderungen werden so früh wie möglich im Entwicklungsprozess erstellt ("shift left").

  • Die unten aufgeführten Punkte werden in regelmäßigen Abständen geprüft und wenn möglich kontinuierlich verbessert.

    • Testautomatisierungsstrategie wird kontinuierlich analysiert und verbessert

    • Testautomatisierungsarchitektur und -werkzeug wird analysiert und verbessert

    • Wartungsarbeiten der Testautomatisierungsumgebung werden regelmäßig durchgeführt

Quellen

  • TPI NEXT - Geschäftsbasierte Verbesserung des Testprozesses; van Ewijk, Linker, van Oosterwijk, Visser, de Vrie, 1. Auflage 2011