Softwaretests managen und automatisieren

Testdatenmanagement bei Applikationstests

Bei der Entwicklung komplexer Software spielt die Teststrategie eine wichtige Rolle. Ein praxistaugliches Testdatenmanagement und automatisierte Testsoftware helfen, die Qualität der Software zu sichern und die Kosten zu senken

Die richtige Teststrategie während der Entwicklungsphase von Software hilft nicht nur, die Qualität der fertigen Anwendung sicherzustellen. Sie kann auch schon in der Frühphase der Entwicklung Probleme und Designfehler aufdecken, die zu einem späteren Zeitpunkt nur mit hohen Kosten gelöst werden können. Doch die Testentwicklung und Qualitätssicherung können sich sehr schnell so kompliziert wie die ganze Anwendungsentwicklung selbst erweisen – und damit das Budget der Softwareentwicklung sprengen.

Komplexität beim Testen mit relationalen Daten

Den ersten Schritt beim Testen datenbankgestützter Anwendungen bildet die Erstellung der Testdatenbank. Da „reale“ Testdaten natürlich ideal geeignet sind, ist die Testdatenbank normalerweise ein Klon der Produktionsdatenbank. Doch die meisten Anwendungen bauen auf relationalen Datenbanken auf und sind daher entsprechend komplex: Dutzende, Hunderte oder gar Tausende Tabellen unterhalten zahlreiche Beziehungen untereinander und können damit die Navigation im Datenmodell erschweren. Dabei müssen es keine Großsysteme sein, die das Navigieren in zahlreichen Tabellen, Zeilen und Spalten zur echten Herausforderung werden lassen. Bereits ein Dutzend Tabellen können so zahlreiche Beziehungen enthalten, dass es schwierig wird, die benötigten Datenbankdaten zu erstellen, zu ändern und ständig zu aktualisieren.

Um Testdaten erstellen zu können, greifen die Entwickler häufig auf komplexe Extraktionsprogramme zurück. Da diese aber alle definierten und umgesetzten Beziehungen berücksichtigen müssen, sind sie recht kompliziert zu entwickeln. Außerdem gibt es nach dem Testlauf meist keine klare und einfache Methode, um die Ergebnisse auf Korrektheit zu überprüfen.

Ein umfassendes Testsystem muss in der Lage sein, die Abhängigkeiten in relationalen Datenbanken zu bewältigen und sie auch bei jeder Extraktions-, Vergleichs- oder Aktualisierungsoperation zu berücksichtigen. Je nachdem, aus welchen Datenbanktypen die Testdaten stammen, ergeben sich dabei andere Anforderungen an das Testsystem. Im Folgenden werden sie kurz skizziert: