test data management concept
Im letzten Tutorial haben wir uns darauf konzentriert Vorbereitung des Prüfstands zur Minimierung von Fehlern in der Testumgebung . In Fortsetzung des gleichen Tutorials werden wir heute lernen Einrichten und Verwalten der Testumgebung und wichtigTestdatenverwaltungTechniken.
Einrichtungsprozess für die Testumgebung
Der wichtigste Faktor für die Testumgebung besteht darin, sie so nah wie möglich an der Endbenutzerumgebung zu replizieren. In der Regel wird von Endbenutzern nicht erwartet, dass sie selbst Konfigurationen oder Installationen durchführen, da ein vollständiges Produkt oder System an sie ausgeliefert wird. Daher von Nach dieser Definition müssen selbst die Testteams solche Konfigurationen nicht explizit durchführen.
Wenn solche Konfigurationen nur zu Testzwecken erforderlich sind (aber für Endbenutzer konfiguriert werden), müssen Administratoren identifiziert werden. Die Administratoren, die die Entwicklungsumgebung konfigurieren, müssen dieselben Personen sein, die die Testumgebung konfigurieren.
Wenn das Entwicklungsteam selbst bei der Installation / Konfiguration die Initiative ergreift, muss es helfen, dies auch in der Testumgebung zu tun.
Zum Beispiel, Wenn Sie eine Anwendung (mit der zu installierenden und zu konfigurierenden zugehörigen Middleware) auf einem System auf verschiedenen Betriebssystemplattformen usw. testen müssen, können Sie dies am besten beheben Virtualisierungs- oder Cloud-Umgebungen .
Haben Sie ein Master-System, in dem alle Anwendungen und die benötigte Middleware korrekt installiert und konfiguriert sind. Machen Sie dieses System dann zu einem Master-Image, indem Sie es erfassen und mehrere Instanzen aus demselben Image klonen, sodass jeder Benutzer das Gefühl hat, ein dediziertes System mit der zu testenden Anwendung zu haben.
Hier unten ist eine bildliche Darstellung dessen, was ein Testumgebungsprozess beinhalten würde:
Einrichtungsprozess für die Testumgebung
Was du lernen wirst:
Wartung einer Testumgebung
So viel über die Vorbereitung der Testumgebung gesagt, obwohl dies eine Herausforderung ist, ist dies zweifellos mehr als ein Grund, die Wartung oder Standardisierung der Testumgebung erforderlich zu machen. Oft verliert ein Tester die Testzeit aufgrund von Umgebungs- oder Einrichtungsproblemen.
Mit einer raschen Zunahme der Betriebssysteme und des Angebots an Hardware und Software muss die Umgebung nahezu dynamisch sein, um den Anforderungen gerecht zu werden. Testteams können sicherstellen, dass sie ein qualitativ hochwertiges Produkt mit einem guten Testmanagementprozess liefern. Dies würde dazu beitragen, Ressourcen, die nur begrenzt verfügbar sind, optimal zu nutzen.
Wichtige Hinweise zur Gewährleistung einer effektiven Wartung der Testumgebung
In Testumgebungen enthalten die meisten Fälle heterogene Plattformen und Stapel. Im Folgenden werden einige wichtige Hinweise aufgeführt, um eine effektive Wartung der Testumgebung sicherzustellen.
# 1) Effektive gemeinsame Nutzung und Verteilung von Umgebungen:
Wie bereits erwähnt, besteht eine der wichtigsten Herausforderungen bei der Vorbereitung der Testumgebung darin, dass viele Teams oder Personen dieselben Ressourcen für ihre Testzwecke verwenden müssen. Daher muss ein geeigneter Freigabemechanismus entwickelt werden, der den Bedürfnissen aller Teams und Personen gerecht wird, ohne die Zeitpläne zu verzögern.
Dies kann erreicht werden, indem ein Repository oder eine Informationsverbindung gepflegt wird, in der alle Daten in Bezug auf:
- Wer nutzt die Umwelt?
- wenn die Umgebung frei genutzt werden kann und
- Wie die Verteilung der Umgebungsnutzungszeit genau eingegeben wird.
Durch proaktives Bestimmen, wo der Bedarf an Ressourcen im Vergleich zu deren begrenzter Verfügbarkeit groß ist, wird eine große Menge an Chaos automatisch zunichte gemacht.
Der zweite Aspekt besteht darin, die Ressourcenanforderungen der Teams für jeden einzelnen zu überprüfen Testzyklus und suchen Sie, welche Ressourcen nicht sehr stark genutzt werden. Analysieren Sie, ob diese bestimmten Ressourcen durch neue Ressourcen oder Systeme ersetzt werden können, die möglicherweise benötigt werden.
# 2) Sanity Checks:
Einige Testanforderungen erfordern ein umfassendes Test-Setup oder Setup, das aufwändige Schritte umfasst, die extrem zeitaufwändig sind. Dies ist insbesondere während der End-to-End-Tests Dabei müssen zwei oder mehr Komponenten zusammenarbeiten. Daher muss dieselbe Testumgebung möglicherweise von mehreren Teams wiederverwendet werden.
In solchen Fällen ergibt ein gutes Verständnis der gesamten Umgebung als Ganzes und die Zusammenstellung der von verschiedenen Teams durchgeführten Tests ein vernünftiges Bild, um den jeweiligen Teams diese spezifischen Ressourcen zur Verfügung zu stellen.
Unter Berücksichtigung der oben genannten Faktoren können grundlegende Sanity-Tests durchgeführt werden, die dazu beitragen, die Tests für einzelne Teams zu beschleunigen oder sie sofort zu alarmieren, wenn die Umgebung aufgrund dieser Sanity-Prüfungen einige Änderungen oder Korrekturen vornehmen muss.
# 3) Verfolgen von Ausfällen:
Genau wie jedes Team, das eine Testumgebung besitzt, verfügt eine Organisation über alle möglichen Testumgebungen, die von einem globalen Support-Team verwaltet werden.
Ebenso wie Teams, die ihre Testumgebung besitzen, im Falle von Firmware- / Software-Upgrades ihre eigenen lokalen Ausfallzeiten haben, müssen die globalen Teams auch sicherstellen, dass alle Umgebungen den neuesten Standards entsprechen, die entweder Strom- oder Netzwerkausfälle beinhalten können.
Daher müssen diejenigen, die die Testumgebung warten, solche Ausfälle im Auge behalten und das Testteam im Voraus informieren, um ihre Arbeit entsprechend zu planen.
# 4) Virtualisieren wo immer möglich:
Dies ist wiederum sehr relevant, wenn Tests durchgeführt werden müssen, um die Umgebung gemeinsam zu nutzen, und die Ressourcen dringend optimiert werden müssen. In solchen Zeiten ist die Verwendung einer virtualisierten Umgebung wie einer Cloud zu Testzwecken die Antwort.
Wenn Sie eine solche Umgebung verwenden, müssen die Tester lediglich einen Sofort bereitstellen. Diese Instanz bildet nach der Bereitstellung eine unabhängige Testumgebung oder Testumgebung, die alle verschiedenen Ressourcen wie ein dediziertes Betriebssystem, eine Datenbank, Middleware und Automatisierungsframeworks enthält usw. für die Prüfung erforderlich.
Sobald die Tests abgeschlossen sind, können diese Instanzen zerstört werden, wodurch die Kosten für eine Organisation erheblich reduziert werden. Cloud-Umgebungen sind besonders nützlich für Funktionsüberprüfungstests und Automatisierungstestbereiche.
# 5) Regressionstests / Automatisierung:
wie man eine XML-Datei in Word öffnet
Wenn neue Funktionen und Merkmale entwickelt werden, Regressionstests müssen für diese Funktionen für jeden Freigabezyklus ausgeführt werden. Obwohl im hinteren Bereich die Testumgebungen für Regressionstests auf demselben Testaufbau mit denselben Daten ausgeführt zu werden scheinen, entwickeln sie in Wirklichkeit jede Version entsprechend den implementierten Funktionen ständig weiter.
Jeder Produktfreigabezyklus würde eine oder mehrere Runden von Regressionstests beinhalten. Das Einrichten von Regressionstestumgebungen für jeden Produktfreigabezyklus und deren Wiederverwendung innerhalb des Zyklus würde somit definitiv die Stabilität der Testumgebung darstellen.
Die Entwicklung von Automatisierungsframeworks und die Verwendung der Automatisierung für regressive Tests tragen auch zur Verbesserung der Effizienz einer Testumgebung bei, da bei der Automatisierung davon ausgegangen wird, dass die Umgebung stabil ist und die entstandenen Fehler rein funktions- / codeorientiert sind.
# 6) General Governance:
Wenn es Probleme mit der Hardware oder Software der Testumgebung gibt, müssen diese Probleme an die richtigen Personen gerichtet werden, um Korrekturen sicherzustellen, wenn diese von den Labormitarbeitern nicht intern behoben werden können.
Zum Beispiel, Wenn bei einem Test ein Fehler auftritt, der aus einer Einschränkung der Firmware oder der Software besteht, die in der aktuellen Umgebung verwendet wird, kann dies im Allgemeinen nicht allein von den für die Wartung der Umgebung Verantwortlichen behoben werden.
Daher muss der Verbraucher (der in diesem Fall der Tester ist) gebeten werden, entsprechende Serviceanfragen zu stellen. Diese müssen an den entsprechenden Anbieter oder das entsprechende Team gerichtet werden, und es muss regelmäßig eine Abstimmung mit ihnen durchgeführt werden, um sicherzustellen, dass die nächste Version das jeweilige Problem behoben hat.
Ein weiterer Aspekt der Governance wäre die Bereitstellung detaillierter Umweltberichte für das Management oder die Stakeholder von Zeit zu Zeit, die zur Transparenz beitragen und eine gute Grundlage für jede Analyse bilden.
Vorbereitung der Testdaten
Schauen wir uns nun den letzten Teil von a an Erstellung des Prüfstands - Hierbei werden die Testdaten eingerichtet . Wenn ein so großer Teil über die Testumgebung gesagt wird, kann das wahre Wesen der Testumgebung, ihre Robustheit und Effizienz mit den Testdaten gemessen werden. Per Definition sind die Testdaten jede Art von Eingabe für den zu testenden Software-Code.
Obwohl wir viel Zeit mit dem Entwerfen von Testfällen verbringen, ist der Grund, warum Testdaten wichtig sind, der, dass sie eine vollständige Testabdeckung für alle Arten von Szenarien gewährleisten und dadurch die Qualität verbessern. Es kann einige Testdaten geben, die für einen glücklichen oder positiven Pfadtest benötigt werden.
Einige andere Daten können für Fehler oder negative Tests ausgelegt sein. Dies ist sehr hilfreich, um festzustellen, wie sich die Anwendung in abnormalen Situationen verhält.
Testdaten werden im Allgemeinen vor Beginn der Textausführung erstellt, da jede Testumgebung ihre eigenen Komplexitäten aufweist oder die Vorbereitung der Daten selbst ein langwieriger Prozess sein kann. Im Allgemeinen können die Testdatenquellen das interne Entwicklungsteam oder die Endbenutzer sein, die den Code oder die Funktion verwenden.
Zum Beispiel,Funktionsprüfung
Nehmen wir ein Beispiel, in dem Sie Funktionstests oder Black-Box-Tests durchführen müssen. Hier besteht das Ziel darin, dass der Code funktional sein muss, um die angegebenen Anforderungen zu erfüllen.
In solchen Fällen sollte die Vorbereitung von Testfällen im Allgemeinen die folgenden Arten von Daten abdecken:
- Positive Pfaddaten: Mit dem Entwicklungsanwendungsfalldokument als Referenz sind dies die Daten, die im Allgemeinen mit der Durchführung der positiven Pfadszenarien synchronisiert sind.
- Negative Pfaddaten: Dies sind Daten, die im Allgemeinen als 'ungültig' in Bezug auf die korrekte Funktionsweise des Codes angesehen werden.
- Nulldaten: Geben Sie keine Daten an, wenn die Anwendung oder der Code diese Daten erwartet.
- Fehlerhafte Daten: Bestimmen der Leistung des Codes, wenn Daten in einem unzulässigen Format bereitgestellt werden.
- Randbedingungen Daten: Testen Sie Daten, die aus dem Index oder Array bereitgestellt werden, um die Leistung des Codes zu bestimmen.
Testdaten spielen eine Schlüsselrolle bei der Identifizierung, wo ein Produkt oder eine Funktion vollständig beschädigt werden kann. Haben Sie immer die Praxis, die Art der Daten, die in verschiedenen Testphasen an die Testumgebung gesendet werden, abzufragen und zu validieren.
Testdatenverwaltung
Wenn Testdaten eine so wichtige Rolle bei der Sicherung der Produktqualität spielen, kann man mit Recht sagen, dass deren Verwaltung und Optimierung auch eine ebenso wichtige Rolle bei der Qualitätssicherung von Produkten spielen, die an die Kunden abgegeben werden müssen.
Bedarf an Testdatenmanagement und Best Practices:
# 1) Eine große Anzahl von Organisationen haben sich schnell ändernde Geschäftsziele Um den Bedürfnissen des Endbenutzers gerecht zu werden, ist es unnötig zu erwähnen, dass die entsprechenden Testdaten maßgeblich zur Bestimmung der Testqualität beitragen. Dazu müssen Sie die genaue Art der Daten für die jeweiligen Testumgebungen einrichten und die Verhaltensmuster überwachen.
Wie bereits erwähnt, wird ein großer Teil der Zeit eines Testteams für die Planung von Testdaten und den damit verbundenen Aufgaben aufgewendet. Oftmals wird das Testen von Funktionen aufgrund der Nichtverfügbarkeit geeigneter Testdaten erheblich behindert, was eine kritische Herausforderung hinsichtlich der vollständigen Testabdeckung darstellt.
#zwei) Auch manchmal für bestimmte Testanforderungen Testdaten müssen ständig aktualisiert werden . Dies selbst führt zu einer großen Verzögerung des Zyklus aufgrund ständiger Nacharbeiten, was auch die Kosten für die Anwendung erhöht, die den Markt erreicht.
In bestimmten anderen Zeiten, in denen das zu versendende Produkt an verschiedenen Arbeitsgruppeneinheiten in einer großen Organisation beteiligt ist, erfordert die Erstellung und Aktualisierung von Testdaten eine komplizierte Koordination zwischen diesen Arbeitsgruppen.
#3) Obwohl die Testteams alle Arten von Daten erstellen müssen, die möglich sind, um angemessene Tests sicherzustellen, müssen Unternehmen auch berücksichtigen, dass dies bedeuten würde, dass alle verschiedenen Arten von Daten in einer Art Repository gespeichert werden müssen.
Obwohl es eine gute Praxis ist, ein Repository zu haben, ist das Speichern von übermäßigem und unerwünschte Daten Dies würde nicht nur den Speicherplatz zum Speichern dieser großen Datenmengen erheblich vergrößern, sondern es auch zunehmend schwieriger machen, die entsprechenden Daten für die betreffenden Tests abzurufen, wenn für dieses Repository keine Versionswartung und -archivierung erfolgt.
Die meisten Organisationen sind im Allgemeinen mit diesen allgemeinen Herausforderungen in Bezug auf Testdaten konfrontiert. Daher müssen einige Managementstrategien eingeführt werden, um das Ausmaß dieser Herausforderungen zu minimieren.
Im Folgenden finden Sie einige vorgeschlagene Methoden für die Verwaltung der Testdaten, die für die Testanforderungen relevant bleiben. Die folgenden Vorgehensweisen sind sehr einfach und allgemein gehalten und funktionieren in den meisten Organisationen häufig. Wie es angenommen wird, liegt im alleinigen Ermessen der jeweiligen Organisationen.
Testdatenmanagementstrategien
# 1) Analyse von Daten
Im Allgemeinen werden Testdaten basierend auf den auszuführenden Testfällen erstellt. Zum Beispiel in einem Systemtestteam, dem End-to-End-Testszenario muss identifiziert werden, auf deren Grundlage die Testdaten entworfen werden. Dies kann bedeuten, dass eine oder mehrere Anwendungen funktionieren.
Sagen wir in einem Produkt, das Workload-Management durchführt - es umfasst die Management-Controller-Anwendung, die Middleware-Anwendungen und die Datenbankanwendungen, die alle in einer Beziehung zueinander funktionieren. Die dafür erforderlichen Testdaten könnten verstreut sein. Um eine effektive Verwaltung zu gewährleisten, muss eine gründliche Analyse aller möglicherweise erforderlichen Daten durchgeführt werden.
# 2) Dateneinrichtung zur Spiegelung der Produktionsumgebung
Dies ist im Allgemeinen eine Erweiterung des vorherigen Schritts und ermöglicht es zu verstehen, wie das Endbenutzer- oder Produktionsszenario aussehen wird und welche Daten dafür erforderlich sind. Verwenden Sie diese Daten und vergleichen Sie diese Daten mit den Daten, die derzeit in der aktuellen Testumgebung vorhanden sind. Basierend darauf müssen möglicherweise neue Daten erstellt oder geändert werden.
#3) Bestimmung der Bereinigung der Testdaten
Basierend auf den Testanforderungen im aktuellen Release-Zyklus (wobei sich ein Release-Zyklus über einen langen Zeitraum erstrecken kann) müssen die Testdaten möglicherweise wie oben angegeben geändert oder erstellt werden. Diese Testdaten sind zwar nicht unmittelbar relevant, können jedoch zu einem späteren Zeitpunkt erforderlich sein. Daher sollte ein klarer Prozess formuliert werden, wann die Testdaten bereinigt werden können.
# 4) Identifizieren Sie sensible Daten und schützen Sie sie
Um Anwendungen ordnungsgemäß zu testen, ist möglicherweise eine große Menge sehr sensibler Daten erforderlich. Zum Beispiel, Eine Cloud-basierte Testumgebung ist eine beliebte Wahl, da sie On-Demand-Tests verschiedener Produkte ermöglicht.
Grundlegendes wie die Gewährleistung der Privatsphäre der Benutzer in einer Cloud gibt jedoch Anlass zur Sorge. Insbesondere in Fällen, in denen die Benutzerumgebung repliziert werden muss, muss der Mechanismus zum Schutz sensibler Daten identifiziert werden. Der Mechanismus wird weitgehend vom Volumen der verwendeten Testdaten bestimmt.
# 5) Automatisierung
So wie wir die Automatisierung für die Ausführung sich wiederholender Tests oder für die Ausführung derselben Tests mit verschiedenen Datentypen einsetzen, ist es auch möglich, die Erstellung von Testdaten zu automatisieren. Dies würde dazu beitragen, Fehler aufzudecken, die während des Tests in Bezug auf Daten auftreten können. Ein möglicher Weg, dies zu tun, besteht darin, die Ergebnisse zu vergleichen, die von einem Datensatz aus aufeinanderfolgenden Testläufen erzeugt werden. Automatisieren Sie als Nächstes diesen Vergleichsprozess.
# 6) Effektive Datenaktualisierung über ein zentrales Repository
Dies ist bei weitem die wichtigste Methode und bildet das Herzstück der Implementierung des Datenmanagements. Alle oben genannten Punkte, insbesondere diejenigen in Bezug auf die Dateneinrichtung und Datenbereinigung, stehen in direktem oder indirektem Zusammenhang damit.
Durch die Verwaltung eines zentralen Repositorys, das alle Arten von Daten enthält, die für verschiedene Arten von Tests erforderlich sein können, kann viel Aufwand beim Erstellen von Testdaten eingespart werden. Wie wird das gemacht? Überprüfen Sie in aufeinanderfolgenden Testzyklen entweder für einen neuen Testfall oder einen geänderten Testfall, ob die Daten im Repository vorhanden sind. Wenn nicht vorhanden, geben Sie diese Daten zuerst in die Testumgebung ein.
Als nächstes kann dies zur späteren Bezugnahme an dieses Repository weitergeleitet werden. Für aufeinanderfolgende Freigabezyklen kann das Testteam nun alle oder einen Teil dieser Daten verwenden. Ist der Vorteil nicht sehr offensichtlich? Abhängig von den häufig verwendeten Datensätzen können veraltete Daten leicht entfernt werden und somit sicherstellen, dass immer korrekte Daten vorhanden sind, wodurch die Kosten für die Speicherung dieser nicht benötigten Daten reduziert werden.
Zweitens können Sie auch einige Versionen dieses Repositorys speichern oder bei Bedarf überarbeiten. Das Vorhandensein verschiedener Versionen des Repositorys kann beim Regressionstest sehr hilfreich sein, um festzustellen, welche Datenänderung dazu führen kann, dass der Code beschädigt wird.
Fazit
Die Testumgebung sollte in jedem Testteam von größter Bedeutung sein. Jeder Release-Zyklus bringt eine ganze Reihe neuer Herausforderungen mit sich, um mit einer unzuverlässigen und ungeplanten Testumgebung zu kämpfen.
Als revolutionäre Maßnahme setzen viele Unternehmen Strategien wie die Bildung dedizierter Teams zur Wartung der Testumgebung ein, die bestimmte Rahmenbedingungen für eine effektive Wartung der Testumgebungen festlegen, um reibungslosere Freigabezyklen zu gewährleisten.
Verbessertes Testen ist nur ein offensichtlicher Effekt der Optimierung des Testdatenmanagements. Ein wesentlicher Bestandteil davon ist, dass Unternehmen eine kostengünstige Lösung erhalten, ohne Kompromisse bei der Zuverlässigkeit des Produkts eingehen zu müssen.
Lassen Sie uns wissen, wie Sie Ihre Testumgebung verwalten und wie Sie Testdaten vorbereiten. Möchten Sie Tipps hinzufügen?
Literatur-Empfehlungen
- Top 14 der besten Tools zur Verwaltung von Testdaten im Jahr 2021
- 10 besten Datenanalyse-Tools für ein perfektes Datenmanagement (2021 LIST)
- Test Management Tutorial: Eine ultimative Anleitung zum Test Management
- Was sind Testdaten? Testdatenvorbereitungstechniken mit Beispiel
- Datenpoolfunktion in IBM Rational Quality Manager für Testdatenverwaltung
- Selenium Framework Erstellung und Zugriff auf Testdaten aus Excel - Selenium Tutorial # 21
- Testen Sie die Datengenerierung mit dem GEDIS Studio Online Tool (Teil 2).