Reifegrade des Integrationstests
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"
Der Testprozess besteht aus Ad-hoc-Aktivitäten.
Kontrollpunkte
-
Keine vollständigen Informationen über die Ergebnisse der Komponententests
-
Der Umfang der Integrationstests ist nicht komplett definiert
-
Interne / externe Schnittstellen zwischen zwei oder mehreren Komponenten
-
Zugriff auf Datenbanksubsystem
-
-
Ad-hoc-Tests haben stattgefunden, sind jedoch nur rudimentär dokumentiert
Verbesserungsvorschlag
Um auf den kontrollierten Reifegrad im Integrationstest zu gelangen, müssen die Kontrollpunkte dieses Grades erfüllt sein. Diese umfassen insbesondere die Planung, Design und Ausführung der Tests:
-
Starten Sie frühzeitig mit der Testvorbereitung.
-
Dokumentieren Sie die durchgeführten Tests, indem zum Beispiel die Schnittstellendefinitionen in der Spezifikation als getestet abgehakt werden.
-
Setzen Sie Mock-Objekte ein, um nicht fertige Schnittstellen etc. zu simulieren
-
Definieren Sie klare Ziele und Metriken und bestimmen messbare Eingangskriterien für den folgenden Systemtest.
-
Messen und dokumentieren Sie die Ergebnisse der Testdurchführung für die Projektsteuerung
-
Starten Sie die Teststufe, nachdem alle Komponententests abgeschlossen sind
-
Setzen Sie Werkzeuge zur Testdurchführung und Automatisierung ein
Reifegrad "Kontrolliert"
Alle wichtigen Aktivitäten des Testprozesses werden geplant und durchgeführt.
Mehrwert
-
Falls notwendig werden Mock-Objekte eingesetzt, die Schnittstellen simulieren
-
Die einzelnen Komponenten sind erstmals als verbundenes System prüfbar
-
Transparente Ergebnisse durch die Testdokumentation helfen der Projektsteuerung
-
Klare Vorgaben bezüglich der Eingangskriterien zur nächsten Teststufe
Kontrollpunkte
-
Komponententests sind abgeschlossen
-
Testausführung wird protokolliert, ggf. mit einem Report zur Abdeckung.
-
Werkzeuge für Integrationstests sind vorhanden und für alle Stakeholder wieder verwendbar
-
Eventuell sind erste automatisierte Integrationstests erstellt
-
Testauswertung soll stattfinden
Verbesserungsvorschlag
-
Bauen Sie den Anteil der automatisierten Tests (z.B. Regression) aus
-
Verwenden Sie ein Testwerkzeug, welches die bidirektionale Rückverfolgbarkeit über einheitliche IDs zwischen Testfällen und Anforderungen ermöglicht.
-
Beziehen Sie eine Risikobetrachtung zur Ermittlung der Komplexität der Integration in die Tests ein
Reifegrad "Effizient"
Die Aktivitäten des Testprozesses werden so aufeinander abgestimmt, dass es zu einem günstigeren Kosten-Nutzung-Verhältnis kommt.
Mehrwert
-
Integration der notwendigen Komponenten und Subsysteme zu einem lauf- und funktionsfähigem Gesamtsystem
-
Die Berichterstattung stellt die Daten und/oder Messwerte zur Verfügung, die für aktuelle und zukünftige Verbesserungen des Softwarelebenszyklus genutzt werden können
-
Eine Risiko-Analyse hat stattgefunden – d.h. man kennt die Bedeutung und Komplexität der Schnittstellen.
-
Bei den Regressionstests wird weniger Zeit investiert, da die Tests automatisiert sind.
-
Binden Sie die Tests in eine Continuous Integration - Umgebung ein
Kontrollpunkte
-
Komponententests sind abgeschlossen
-
Eine Risiko-Analyse hat stattgefunden – d.h. man kennt die Bedeutung und Komplexität des Systems und wie sie vom Endbenutzer benutzt werden soll
-
Die Tests werden unterschiedlich in Tiefe und Abdeckung durchgeführt. Das hängt von der Risiko-Analyse ab (hohes Risiko, höhere Komplexität – mehr Tests, weniger Risiko → weniger Tests)
-
Dokumentation ist in einem Werkzeug vorhanden
-
Umsetzung automatisierten Integrationstests definieren
-
Erstellung der Testauswertung mit festgelegten Metriken
-
Einbindung in Continuous Integration - Umgebung
Verbesserungsvorschlag
-
Stellen Sie eine Teststrategie auf, in der für jede Komponente eine Einschätzung der Wichtigkeit und der Testumfang beschrieben wird.
-
Bei den Komponententests, die durch die Entwickler durchgeführt werden, besteht die Gefahr der Betriebsblindheit.
-
Um dieses Problem zu umgehen, können die Integrationstests von anderen Testspezialisten bzw. Fachexperten durchgeführt werden.
-
Wenden Sie Pair-Testing an (zwei Entwickler arbeiten am Test gleichzeitig)
-
Durch wiederholte Reviews und Retrospektiven sorgen Sie für kontinuierliche Prüfung des Vorgehens.
-
Ständige Weiterbildung und Schulung des Test- und QS-Teams
Reifegrad "Optimierend"
Der erreichte Zustand des Testprozesses wird gepflegt, analysiert und sich ändernden Erfordernissen stetig angepasst.
Mehrwert
-
Integration der notwendigen Komponenten und Subsysteme zu einem lauf- und funktionsfähigem Gesamtsystem
-
Es hilft, die Mängel (Funktionalität bzw. Design-Lücken) frühzeitig zu finden, was wiederum Aufwand und Kosten spart
-
Bei den Regressionstests wird weniger Zeit investiert, da die Tests automatisch laufen
-
Großer Testabdeckungsgrad wegen automatisierten Tests (Continuous Integration und Continuous Delivery)
-
Simulation "fehlender" Komponenten
-
"Big Bang - Effekt" wird vermieden
Kontrollpunkte
Es geht auf der Ebene „Optimierend“ darum, das Erreichte aus dem Reifegrad „Effizient“ zu pflegen und zu optimieren.
-
Dokumentation ist in einem Werkzeug gut beschrieben
-
Möglichst hoher Grad an automatisierten Integrationstests erreichen (fast für jede Anforderung wird ein automatisierter Integrationstest erstellt)
-
Einbindung in Continuous Integration und Continuous Delivery - Umgebung
-
Review der Testspezifikation findet statt
-
Testauswertung mit festgelegten Metriken in einem Bericht (Nachverfolgbarkeit)
-
Es findet nach jeder Auslieferung eine „Lessons learned“ Runde statt, um Verbesserungen am Integrationstests durchzuführen