Systemtest
Der Systemtest ist eine sehr spannende Teststufe. Unittest und Integrationstest fokussieren sich mehr auf die inneren Aspekte der Applikation. Im...
Einführung von Testautomatisierung in einem Unternehmen erfolgt bestenfalls schrittweise. Dies dient dazu, die Techniken und Tools an die Bedürfnisse im Unternehmen anzupassen. Aber auch dazu, die Prozesse anzupassen und insbesondere die Erwartungen im Unternehmen an die Möglichkeiten der Testautomatisierung anzugleichen. In der Praxis hat sich für uns eine Einführung in 3 grundlegende Phasen bewährt, die diese schrittweise Einführung repräsentieren: Pilotprojekt, Anwendung und Roll-Out.
Die Phase des Pilotprojekts umfasst mehrere Aktivitäten: die Vorbereitung, die Durchführung und die Auswertung des Piloten.
Während der Vorbereitung erfolgt die Analyse des IST-Standes. Dazu werden die Prozessbeschreibungen, verwendeten Werkzeuge und bestehenden Abhängigkeiten über die Analyse der zugehörigen Dokumentation erfasst. Weiterhin werden typischerweise auch Interviews mit allen Beteiligten geführt, um die gelebten Prozesse und den Abgleich zur Dokumentation zu erfassen. Der Unterschied ist manchmal gravierend. Während dieser Analyse wird vorrangig darauf geachtet, Verbesserungspotenzial zu identifizieren, das sich auf die Reduktion bislang manuell ausgeführter Tätigkeiten ergibt. Entsprechende Tätigkeiten zur Hebung dieses Potenzials (z.B. Werkzeugeinsatz, Notwendigkeit zur Modellierung, Testüberdeckung oder Rückverfolgbarkeit) werden ebenso analysiert. Hieraus ergibt sich ein Katalog an Kriterien, die eine Testautomatisierungslösung bestmöglich erfüllen sollte.
Der nächste Schritt ist die Marktanalyse der verfügbaren Konzepte, der zugehörigen Werkzeuge, sowie der entsprechenden Abhängigkeiten auf Basis des zuvor identifizierten Kriterienkatalogs. Dabei werden alle verfügbaren Lösungen analysiert und bewertet und im Anschluss daran verglichen. Je nach zeitlichen und finanziellen Möglichkeiten wird die Pilotphase im Anschluss mit den besten x Lösungen durchgeführt. Da es höchstwahrscheinlich einige Angebote gibt, die offensichtlich nicht zu den Bedürfnissen des Unternehmens passen, ist die Durchführung mit allen Lösungen unsinnig. Ebenso rate ich davon ab, den Piloten nur mit einem (dem bestplatzierten) Werkzeug durchzuführen, da hier der Blick auf die Vor- und Nachteile doch sehr eingeengt wird. Ich empfehle die Durchführung des Piloten mit den 3 bestplatzierten Werkzeugen.
Die Durchführung des Piloten erfolgt nun mit dem Ziel, eine kleinere Aufgabe zu lösen, die nur wenige Personentage in Anspruch nimmt. Die Durchführung selbst kann unter Einbeziehung der Fachexperten geschehen. Federführend sollten in jedem Fall die Experten für die Testautomatisierung sein. Der Weg zu der Lösung, die dabei erfahrenen Vor- und Nachteile, sowie die Lösung selbst werden für jedes eingesetzte Werkzeug protokolliert.
Im Anschluss an die Durchführung werden die gemachten Erfahrungen ausgewertet und im Rahmen eines Workshops dem gesamten Teilnehmerkreis präsentiert. Hierbei werden die Unterschiede zwischen den eingesetzten Werkzeugen neu bewertet. Insbesondere die praktischen Erfahrungen beim Umgang mit den Werkzeugen können die zuvor getroffenen Bewertungen revidieren. Im Rahmen des Workshops sollen zwei fundamentale Fragen geklärt werden:
Wenn die erste Frage positiv beantwortet wurde und auch für die zweite Frage eine Antwort gefunden wurde, dann wurde der letzte Meilenstein dieser Phase gemeistert und die Anwendungsphase beginnt.
Die Phase der Anwendung umfasst im Wesentlichen zwei Schritte: Die Auswahl der Abteilung / Gruppe, in der die kommerzielle Anwendung der Testautomatisierung stattfinden soll, sowie die Anwendung selbst.
Bei der Auswahl der Abteilung ist einer der wesentlichen Punkte die Wiederverwendung der Erfahrungen aus dem Pilotprojekt und die notwendigen Anpassungen, um einen möglichst reibungslosen Übergang vom Piloten zur Anwendung zu gewährleisten. Ich empfehle jedem Entscheider, auch hier auf die Auswahl der fachlich geeigneten Personen zu achten, da sich die Einführung noch immer in einer sensiblen Phase befindet. Weiterhin muss im Rahmen der Anpassung das zugehörige Werkzeug ausgewählt und die Prozesse angepasst werden. Für die Bewertung des Erfolgs ist es auch empfehlenswert, die relevanten Kennzahlen sorgfältig auszuwählen.
Im Anschluss an die Vorbereitung findet die Anwendungsphase statt. Gerade bei der ersten Anwendung ist es empfehlenswert, dass die Anwender im ständigen Austausch mit Experten stehen, um ihre Erfahrungen, Hindernisse und Fortschritte mit diesen diskutieren und reflektieren zu können. Dies geschieht anfangs mit Schulungen und Trainings über anwendungsbegleitendes Coaching mit dem Ziel des eigenständigen Arbeitens in der Abteilung.
Mit Hilfe der anfangs festgelegten Kennzahlen kann die gewählte Technologie der Testautomatisierung nach der Anwendungsphase mit Hinblick auf kommerzielle Anwendungstauglichkeit final bewertet werden. Diese Erfahrungen sollten genug Informationen für die Entscheidung liefern, ob die Technologie unternehmensweit ausgerollt wird.
In der Phase des Roll-Out wird die Anwendung der Testautomatisierung formalisiert. Der Entwicklungsprozess wird an die Testautomatisierung angepasst und ein entsprechendes Schulungsprogramm wird aufgesetzt. In den Abteilungen werden Verantwortliche benannt, die die Prozessverbesserung überwachen und steuern. Insbesondere bei der erstmaligen Anwendung sollte anwendungsbegleitendes Coaching stattfinden. Das langfristige Ziel des Roll-Out ist es, dass die Mitarbeiter ohne externe Unterstützung den Prozess verinnerlichen und bei Bedarf an die sich ändernde Geschäftswelt anpassen.
In agilen Projekten finden diese Phasen verkürzt statt. Meist wird im laufenden Projekt ein Testautomatisierungs-Werkzeug an einem Teilbereich der Applikation erprobt. Das Ergebnis wird z.B. in einer Retrospektive bewertet und bei Erfolg sukzessive auf das Projekt ausgerollt. Hier ist der Einsatz deutlich dynamischer, Tools werden gelegentlich gewechselt und es herrscht oft auch eine Tool-Landschaft, statt eines einzelnen Testwerkzeugs.
Der Systemtest ist eine sehr spannende Teststufe. Unittest und Integrationstest fokussieren sich mehr auf die inneren Aspekte der Applikation. Im...
Zugegeben, dem Auslagern von Testaktivitäten – egal ob in die Nähe oder in die Ferne – stehe ich skeptisch gegenüber. Zum Testen und dem Drumherum...
Der Unittest ist für mich die essentiellste aller Teststufen. Auf sie schaue ich auch zuerst, wenn ich ein neues Beratungsprojekt starte. Warum? Hier...