Kontrollieren Sie die Kosten für die Testautomatisierung mit virtuellen Testdaten
Wie erhalten Sie gute Testdaten, die vertrauliche Informationen schützen, ohne Ihr Budget zu sprengen? Automatisierte Softwaretests können teuer sein, insbesondere in komplexen Umgebungen, die mit zahlreichen APIs und nachgelagerten Endpunkten interagieren.
Traditionell Testdatenmanagement (TDM) bietet keine kostengünstige Methode zum Generieren von Datenmodellen und simulierten Datensätzen. Durch die Erstellung wiederverwendbarer virtueller Datensätze zum Testen von Abhängigkeiten können Sie die Kosten der Testautomatisierung senken und mehr Kontrolle über Ihre Testdaten und -umgebungen gewinnen.
Möglichkeiten zur Erstellung virtueller Testdaten mit praktischen Beispielen.
Wann und wie man sich bewirbt Testdaten Techniken zur Kostenminimierung und Maximierung der Wiederverwendbarkeit.
Die hohen Kosten des traditionellen Testdatenmanagements
Gute Testdaten zu erhalten ist eine große Hürde. Es geht nicht nur darum, Daten zu haben; es geht darum, die Recht Daten. Stellen Sie es sich wie das Knacken eines Schlosses vor – Sie benötigen die perfekte Kombination von Eingaben, um das gewünschte Ergebnis zu erzielen. Für Softwaretests bedeutet dies, die richtigen Voraussetzungen und Eingabedaten zu haben, um Ihre Anwendung gründlich zu validieren.
Viele Teams verbringen einen großen Teil ihrer Zeit, manchmal 30–60 %, mit der Suche, Verwaltung und Erstellung von Testdaten. Dies liegt daran:
Beschränkter Zugang: Testteams haben oft keinen direkten Zugriff auf Live-Datenquellen. Die Daten, die sie erhalten, sind in der Regel eine Teilmenge der Produktionsdaten, und es kommt zu Verzögerungen bei der Bereitstellung.
Große Mengen: Produktionsdaten können sehr groß sein, insbesondere bei großen Unternehmensanwendungen, was ihre Handhabung mühsam macht.
Datenabhängigkeiten: Die Verwaltung komplexer Datenbeziehungen und -kombinationen über verschiedene Systeme hinweg ist eine große Herausforderung.
Lange Aktualisierungszeiten: Sobald die Testdaten aufgebraucht sind, müssen die Teams den gesamten Prozess erneut durchlaufen, um neue Daten zu erhalten.
Wichtige Erkenntnisse zu den Herausforderungen im Zusammenhang mit Testdaten:
Die Vorbereitung der Testdaten ist zeitaufwändig und nimmt 30–60 % der Zeit der Tester in Anspruch.
Der fehlende direkte Zugriff auf Datenquellen und Produktionsdaten ist ein häufiges Problem.
Große Datenmengen und komplexe Abhängigkeiten verursachen einen erheblichen Verwaltungsaufwand.
Lange Aktualisierungszyklen für Testdaten verlangsamen Testprozesse.
Was macht Testdaten gut (und schlecht)?
Gute Testdaten müssen realistisch sein. Unrealistische Daten können das Vertrauen in Ihre Tests erheblich beeinträchtigen. Wenn Ihre Daten nicht die tatsächliche Nutzung Ihrer Anwendung widerspiegeln, übersehen Sie möglicherweise kritische Fehler oder erhalten Fehlalarme. Dies kann dazu führen, dass Entwickler ihre Arbeit erneut überprüfen müssen, was die Projektkosten erhöht.
Daten müssen auch vom Team kontrolliert werden. Wenn Tester ihre Daten nicht besitzen, führt das zu Frustration. Werden Daten unerwartet zurückgesetzt oder von einem anderen Team verwaltet, kann dies Testvoraussetzungen und -zustände durcheinanderbringen, die die Tester mit viel Mühe erstellt haben. Dieser Mangel an Kontrolle führt oft zu Arbeitsblockaden und längeren Testzyklen.
Darüber hinaus müssen Statusänderungen innerhalb Ihrer Anwendung sichtbar sein. Wenn sich Ihre Testdaten nur auf Ein- und Ausgaben konzentrieren, entgeht Ihnen möglicherweise, was hinter den Kulissen bei komplexen, asynchronen Prozessen oder externen Abhängigkeiten passiert. Dies erschwert die Identifizierung spezifischer Fehler.
Schließlich sollten Daten entkoppelt werden. Bei einer starken Datenkopplung kann eine Änderung in einem Bereich überall sonst Probleme verursachen. Dies erschwert die Behebung von Problemen oder die Implementierung von Updates ohne Dominoeffekte. Schlechte, gekoppelte Daten erhöhen die Projektkosten direkt.
Traditionelle Ansätze und ihre Fallstricke
Es gibt mehrere gängige Methoden zum Abrufen von Testdaten, aber jede bringt ihre eigenen Probleme mit sich:
Klonen von Produktionsdatenbanken: Dies scheint ein einfacher Weg zu sein, um an echte Daten zu gelangen, ist aber oft teuer und zeitaufwändig. Außerdem sind strenge Richtlinien erforderlich, um Datenschutz und Compliance zu gewährleisten und den Zugriff auf die Daten einzuschränken.
Teilmengen/Stichproben von Produktionsdaten: Dies hilft zwar bei der Verwaltung des Datenvolumens, erfordert jedoch umfassende Kenntnisse sowohl der Datensätze als auch der gesamten Systemarchitektur, um sicherzustellen, dass die Teilmenge relevant ist und andere Teile der Anwendung nicht beschädigt.
Generieren/Synthetisieren von Daten: Dieser Ansatz vermeidet Datenschutzprobleme, da die Daten nicht real sind. Die Herausforderung besteht jedoch darin, die Logik und Modelle zu definieren, um Daten zu erstellen, die tatsächlich für Tests nützlich sind und nicht nur zufällige Werte darstellen.
Diese herkömmlichen Methoden führen häufig zu gemeinsam genutzten Testumgebungen, schwerfälligen Testdatenmanagement-Lösungen (TDM) und Teams, die die Datenintegrität nicht respektieren. All dies trägt dazu bei, dass Projekte überzogen werden und potenzielle Fehler in die Produktion gelangen.
Die Lösung: Virtuelle Testdaten mit Service-Virtualisierung
Service-Virtualisierung bietet eine leistungsstarke Möglichkeit, simulierte oder virtuelle Testdaten zu erstellen. Anstatt sich auf echte Datenbanken oder komplexe Datengenerierungsskripte zu verlassen, können Sie mithilfe der Service-Virtualisierung das Verhalten Ihrer APIs und Datenquellen simulieren. Das bedeutet:
Virtuelle Assets erstellen: Erstellen Sie virtuelle Dienste, die Ihre APIs und Datenantworten nachahmen.
Data-Drive-Dienste: Konfigurieren Sie diese virtuellen Dienste für die Verwendung bestimmter Testdaten, sodass Sie die Daten steuern können, mit denen Ihre Tests interagieren.
Isolieren Sie Testumgebungen: Geben Sie jedem Team seine eigene isolierte Testumgebung mit seinen eigenen kontrollierten Daten, um die Eigenverantwortung zu fördern und Konflikte zu reduzieren.
Keine Datenbankinfrastruktur erforderlich: Sie können Testdaten in verschiedenen Formaten wie CSV-Dateien verwalten, ohne dass Sie umfassende DBA-Kenntnisse benötigen.
Isolierte Testumgebungen: Erstellen und verwalten Sie ganz einfach unabhängige Testbereiche.
Eckfälle abdecken: Bearbeiten Sie Daten im laufenden Betrieb, um Randfälle zu testen, ohne andere zu beeinträchtigen.
Einfaches Teilen: Verteilen Sie Testdatensätze effizient an alle, die sie benötigen.
Eliminieren Sie die Schemakomplexität: Vermeiden Sie den Aufwand, sich mit komplexen zugrunde liegenden Datenbankschemata auseinanderzusetzen.
Daten erfassen und maskieren: Erfassen Sie nur die erforderlichen Daten und maskieren Sie sensible Informationen dynamisch.
Praktische Anwendung: Eine Demo
Stellen Sie sich eine Bankanwendung wie Fairbank vor. Mithilfe der Servicevirtualisierung können Sie Interaktionen mit der Anwendung aufzeichnen, beispielsweise das Anmelden und das Abrufen von Kontoständen. Diese aufgezeichneten Daten können dann zur Erstellung virtueller Assets verwendet werden – im Wesentlichen virtueller Dienste, die diese spezifischen Testdaten bereitstellen.
Sie können beispielsweise Kontodaten erfassen und anschließend den virtuellen Dienst aktualisieren, um diese Daten zu verwenden. Wenn Sie Szenarien mit negativen Salden oder einer großen Anzahl von Konten testen müssen, können Sie den virtuellen Datensatz direkt ändern. Dies ermöglicht Ihnen:
Realistische Daten generieren: Erfassen und verwenden Sie Daten wieder, die reale Szenarien widerspiegeln.
Kontrolldaten: Nehmen Sie spontane Änderungen an Testdaten vor, beispielsweise das Anpassen von Kontoständen, ohne dass andere Teams davon betroffen sind.
Statusänderungen verwalten: Stellen Sie sicher, dass Ihre virtuellen Daten die erforderlichen Anwendungszustände zum Testen widerspiegeln.
Daten entkoppeln: Ändern Sie Datensätze unabhängig, ohne andere Teile des Systems oder virtuelle Dienste zu beeinträchtigen.
Dieser Ansatz lässt sich nahtlos in CI/CD-Pipelines integrieren und ermöglicht die automatisierte Bereitstellung und Verwaltung von Testumgebungen und Daten.
Wann sollten virtuelle Testdaten verwendet werden?
Virtuelle Testdaten sind besonders nützlich für:
Agile Teams: Es beschleunigt Testzyklen, indem es die Testdatenverwaltung vereinfacht und die Abhängigkeit von DBAs und der Verfügbarkeit von Produktionsdaten reduziert. Teams können Tests innerhalb desselben Sprints durchführen.
Komplexe Umgebungen: Wenn Ihre Anwendung mit mehreren Diensten und Abhängigkeiten interagiert, bietet die Virtualisierung dieser Komponenten und ihrer Daten eine stabile und kontrollierte Testumgebung.
Leistungstest: Sie können problemlos große Mengen einzigartiger Daten generieren, wie z. B. Benutzeranmeldeinformationen, die für Leistungstests benötigt werden.
Durch Adoption virtuelle Testdatenstrategien, Unternehmen können Projektüberschreitungen deutlich reduzieren, die Testabdeckung verbessern und verhindern, dass Fehler in die Produktion gelangen. Tools, die diesen Ansatz unterstützen, sind oft Low-Code, skalierbar und lassen sich gut in DevOps-Praktiken integrieren. Dadurch wird das Testdatenmanagement effizienter und kostengünstiger.