Motivation für ein leistungsfähiges Testmanagement

Daten

Herausforderungen im Versicherungsumfeld

Wenn wir in hochintegrierten IT-Umgebungen den Test planen und vorbereitende Maßnahmen einleiten, haben wir eine große Zahl an Systemen und Komponenten, Schnittstellen, parallele Projekte und Linienmaßnahmen zu berücksichtigen. Gleichzeitig sind Restriktionen in Bezug auf Testumgebungen, Testdaten und Testusern vorzusehen, sowie das Rücksetzen auf einen Testdatenbestand über alle Systeme zu planen. In der Regel kennt man zum Zeitpunkt der Testplanung grobe Komponenten und grobe Prozesse. Daraus müssen dann die Vorgaben abgeleitet werden, zum Thema Testdatenbereitstellung, Testuser, es müssen Prozesse vorbereitet werden, um Testumgebungen auf einen Stand zurückzusetzen, der als Grundlage für die Testdurchführung in beliebigen Iterationen der Softwareaktualisierung dienen kann.

Der Idealfall im Testmanagement

Im Idealfall stehen Testumgebungen für Entwickler, spezifische Testumgebungen für Systeme und integrierte Testumgebungen zur Verfügung. Entwickler können in stabilen Testumgebungen ihre Änderungen verproben, können auf Schnittstellen anderer Komponenten und Systeme zugreifen. Anschließend erfolgt ein automatisiertes Deployment auf eine integrierte stabile Abnahmetestumgebung. Dort sind die Testdaten durch automatisierte Skripte eingespielt worden, die Testuser sind erfolgreich angelegt, und alle automatisierten Tests laufen nach dem Deployment der neuen Anwendung grün durch. Die Test-Experten konnten ihre manuellen Testfälle durchspielen, die Batchprozesse sind integiert und zeitgesteuert verfügbar wie in einer produktiven Umgebung. Die Anbindung aller relevanten Komponenten/Systeme steht und die GUI läuft flüssig. Das Testmanagementergebnis besteht aus einem Extrakt der Testausführungsergebnisse und einem Testvorschrittsbalken.

Der Alltag im Testmanagement

Wir kennen Testmangement im Bereich Versicherungen als Vollzeitjob, in dem die heterogene Anwendungslandschaft in einer eigenen Testumgebung abgebildet werden muss, um z.B. eine neue Anwendung oder eine Komponente mit eine Vielzahl von Integrationen an Drittsystemen zu entwickeln. Dabei haben gerade Standardsoftwareanwendungen eigene Testumgebungskonzepte, die mit der projektspezifischen Testumgebungsstrategie zusammengeführt werden muss.

Wir halten Testmanagement für eine herausfordernde Tätigkeit, die fachliches und technisches Verständnis voraussetzen. Dabei ist keine Aufgabe im Testmanagement in der Regel selten einfach. Die Herleitung eines tragfähigen, realistischen Testplans erfordert sehr gute Kenntnisse (oder Erfahrungswerte) der Zielumgebung. Das Testvorgehen muss mindestens auf Releasepläne, Integrationsbesonderheiten, unterschiedliche Testdatenbestückungen auf unterschiedlichen Testumgebungen und parallel laufende Projekte eingehen. Die Testfallherleitung erfordert das bereits erwähnte fachliche und technischen Verständnis der Prozesse. Die Testfalldurchführung muss mit de Motivation erfolgen, dass das Entwicklungsergebnis anschließend auch in der täglichen Arbeit unterstützt.

Zum Testmanagement gehört in der Regel auch ein effizientes Berichtswesen. Dies ist nur dann erfolgreich, wenn Testfallbeschreibungen, Testplanung und Testdurchführungsergebnisse so abgelegt werden, dass sie integriert ausgewertet und die Ergebnisse für verschiedene Komponenten und Teams auswertbar sind. Das erfordert jedoch eine Reihe von Metadaten an den einzelnen Beschreibungen.

Unser Vorgehen im Testmanagement

Berücksichtigung des Projektvorgehens

Die Teststrategie hängt, wie auch das Anforderungsmanagement vom Projektvorgehen ab. In einem inkrementellen, ganzheitlichen Projektvorgehen, das zu einem Tag X eine Vielzahl von Komponenten in Produktion setzt, ist auch ein ganzheitlicher Testmanagementplan, und eine dazu passende Teststrategie erforderlich. Da jede Komponente ihre eigenen Anforderungen an den Test hat, muss der Fokus auf dem Test der Komponenten liegen. Das hat aus unserer Sicht eine Reihe von Vorteilen. Die Komponenten sind deutlich schneller testbereit, als die Gesamtanwendung. Komponenten lassen sich über Schnitstellentests effizient funktional und nichtfunktional testen.

Schnittstellentests sind die Basis des Testexperten

Testpyramide

Martin Fowler hat in einem 2012 veröffentlichten englischsprachigen Artikel TestPyramid beschrieben, wie sich Testblöcke erabeiten lassen, die sich unterschiedlich gut automatisieren und zeitnah, sowie ressourcenschonend ausführen lassen.

Diese Betrachtung hat sich zwischenzeitlich im Testmanagement fest etabliert, und liefert nach unserer Erfahrung sehr gute Ergebnisse. Voraussetzung für den komponentenbasierten Schnittstellentest ist allerdings die Expertise, typischerweise REST- und SOAP-Webservices automatisiert zu testen. Das erfordert für Services, die datenbankbasiert arbeiten, die automatisierte Bereitstellung von Testdaten. In der Regel erfordern Anwendungen auch eine Authentifizierung

Integrations- und Ende-zu-Ende-Tests

Schnittstellentests können wenig integrierte Services und Komponenten sehr gut testen. Sofern Komponenten auf weitere Systeme und Komponenten zugreifen müssen, besteht die Abhängigkeit konsistenter Testdaten. Hier ist dann ein zentrales Testmanagement notwendig, das frühzeitig eine Testdatenstrategie entwickelt. Im Versicherungsbereich sind oft übergreifend verfügbare Vermittlernummern und User mit verschiedenen Berechtigungen und Vertragskonstellationen eine echte Herausforderung, insbesondere, da ein einfacher Abzug von Produktion aus Datenschutzrechtlichen Gründen nicht ohne weiteres möglich ist und mindestens anonymisiert werden müssen.

Automatisierte integrierte Oberflächentests

Anwendungen stellen grafische Oberflächen zur Verfügung, diese greifen auf Komponenten zu. Die grafischen Oberflächen entstehen in der Regel recht spät im Projekt, zum einen, da die gesamte Prozesslogik funktionieren muss, zum anderen, weil die Anforderungen an die grafischen Oberflächen in Bezug auf Ergonomie und Effizienz sehr hoch sind, und grafische Oberflächen - abgesehen von Mockups - erst umfangreich getestet werden können, wenn die darunterliegenden Kompoenten korrekt funktionieren. Auch im Bereich der Oberflächentests ist eine Automatisierung möglich, der Automatisierungsgrad ist nach unserer Erfahrung allerdings geringer, und der Aufwand der Erstellung hoch. Testtools wie Selenium oder Testrunner unterstützen hier, die Überprüfung der Korrektheit erfordert allerdings häufig eine nachträgliche manuelle Validierung durch einen Testexperten, sodass der Hauptvorteil in der fehlerfreien und schnelleren Testdurchführung und der Automatisierten Testüberprüfung für spezifische Felder ermöglicht.

Unsere Leistungen im Testmanagement

Unsere Berater sind iSTQB®-zertifiziert. Wir unterstützen bei der operativen Erstellung eines ganzheitlichen Testmanagements, der Entwicklung zielführender Testdaten- und Testuserstrategien. Wir leiten aus dem Funktionsumfang die Testfälle ab, aus diesem die benötigen Testdaten und Testuser und entwickeln das Vorgehen zur Bereitstellung der Daten für die jeweilige Testumgebung. Wir führen die Tests durch. Da die Testdurchführungsdokumentation zum einen Wichtig und zum anderen aufwändig ist, erstellen wir regelmäßig Importskripte in JIRA, um Testausführungen zu dokumentieren, sofern keine vollautomatische Testdurchführung innerhalb von Buildskripten wie in Jenkins möglich ist. Wir unterstützen auch gerne durch Trainings und Training on the job, in dem wir unser Wissen über Testtools und Testvorgehen weitergeben.


CgSe