Best-Practice: Testdatenbeschaffung
im Rahmen kontinuierlicher Software-Entwicklung (TEIL 1/3)
Durch die massive Zunahme datengestützter (Data-Enhanced Business Model) oder auch datengetriebener (Pure Data-Driven Business Model) Geschäftsmodelle spielen die IT und damit insbesondere die Softwareentwicklung eine zentrale Rolle für die Bereitstellung der Produkte und damit den geschäftlichen Erfolg. Die benötigte Software muss dabei regelmäßig an die sich ändernden Anforderungen des Marktes angepasst und auf dem Stand der Technik gehalten werden. Damit ist die Softwareentwicklung zur Daueraufgabe – continuous development – geworden.
Wenn viel entwickelt wird, muss folgerichtig auch viel getestet werden, denn keine Software darf ungetestet zum Einsatz kommen. UBS Hainer konzentriert sich mit seinen Produkten auf diesen Bereich des Software-Testing und hat sich dabei auf die Beschaffung der Testdaten spezialisiert. - Es folgt ein Überblick zur Best-Practice hinsichtlich der Beschaffung optimierter Testdaten für das Software-Testing. The following is an overview of best practice with regard to obtaining optimized test data for software testing.
PART 1 – Pre-Production as the basis for test data procurement
Ausgangslage: Das Release Management bestimmt den Zeitplan und die Richtlinien, nach denen produktive Anwendung weiterentwickelt, verbessert, ergänzt oder an neue Anforderungen angepasst werden. Dies ist heute ein kontinuierlicher Entwicklungsprozess.
Natürlich muss jede Änderung einer Applikation getestet werden. Dies erfolgt verständlicherweise nicht im Live-Betrieb, sondern in einer Testumgebung. Für diese Tests brauchen die Entwickler passende Testdaten. Wenn sich nun mehrere Entwickler eine Testumgebung teilen und dort die gleichen Testdaten nutzen, kann es schnell zu Behinderungen kommen.
Die gegenseitige Beeinflussung der Tests und die Beschädigung und Verfälschung von Testdaten kann zu ineffektivem und damit erfolglosem Testen führen. Diese Situation existiert bis heute noch in erstaunlich vielen Unternehmen.
Anforderungen: Die Integrität der Testdaten, darf durch die parallele Nutzung auf keinen Fall beschädigt werden, sonst leidet die Qualität der Tests. Das Software Testing muss zudem sicherstellen, dass neu hinzugefügte oder modifizierte Funktionen die bestehenden Features nicht beeinträchtigen oder gar entfernen.
Daher benötigt die Qualitätssicherung beides:
- möglichst realistische, sprich produktionsnahe Daten
- spezifische Testfalldaten für die neuen Funktionen.
Wie lässt sich diese Herausforderung meistern? Welche Vorgehensweise ist hier – Stand heute – Best-Practice?
Pre-Production als Basis der Testdaten: Die produktive Systemlandschaft besteht in der Regel aus verschiedenen Anwendungen und Datenbanken, oftmals verteilt auf unterschiedliche Plattformen und Architekturen. Um sicherzustellen, dass der neue Release später auch mit produktiven Daten zurechtkommt, empfiehlt sich als Datenbasis eine konsistente Kopie der produktiven Systeme.
Diese Kopie der realen Produktion wird meist Vorproduktion (Pre-Production) genannt. Mit ihrer Hilfe kann der kritische Prozess der Herstellung einer zeitlich und fachlich konsistenten Datenbasis durchgeführt werden. Die Vorproduktion kann auch als Trennung im Testdatenbereitstellungsprozess zwischen anonymisierten und nicht-anonymisierten Daten darstellen. Vor Nutzung der Daten im Testprozess kann hier eine zentrale und konsistente Maskierung durchgeführt werden.
Abb – Das produktive System (PROD) wird 1:1 kopiert. Die so entstehende Vorproduktion (PRE-PROD) bietet eine realistische Datenbasis für die Entwicklungsumgebung (DEV) und die Tests (TEST).
Voraussetzung für realitätsnahe Daten ist jedoch, dass diese Datenbasis häufig genug durch die jeweils aktuellen Produktionsdaten ersetzt wird. Wenn sie zum Beispiel wöchentlich oder täglich oder besser nächtlich automatisch aktualisiert wird, kann sie als Datenquelle für alle Test- und Entwicklungsarbeiten dienen. Alle mit dieser regelmäßigen Aktualisierung verbundenen Prozesse können heute konfiguriert und automatisiert durchgeführt werden.
Fazit:
Die für das kontinuierliche Testen benötigten realitätsnahen Testdaten werden gewonnen, indem die aktuelle Produktion kopiert wird und damit als Datenbasis zur Verfügung steht. Wenn diese sogenannte Pre-Production regelmäßig aktualisiert wird, können Applikationen zu jedem Zeitpunkt realistisch getestet werden, ohne den Live-Betrieb zu beeinträchtigen.