LU12a - Grundlagen zu Testdaten
Was sind Testdaten?
Testdaten sind speziell erstellte oder ausgewählte Daten, die in Softwaretests verwendet werden, um die Funktionalität, Zuverlässigkeit und Sicherheit von Anwendungen zu überprüfen. Diese Daten repräsentieren verschiedene Szenarien, die während der Nutzung der Software auftreten können. Mit ihnen muss das Daily-Business simuliert werden, im guten wie im schlechten.
Warum sind Testdaten wichtig?
Testdaten sind essenziell für die Qualitätssicherung, da sie…
sicherstellen, dass die Software wie erwartet funktioniert
helfen, Fehler und Schwachstellen zu identifizieren
garantieren, dass die Software mit realistischen und auch ungewöhnlichen Eingaben umgehen kann
Herausforderungen bei Testdaten
Gute Testdaten stellen auch einige Herausforderungen an die Erstellung und Verwaltung dieser:
Volumen: Sicherstellen, dass die Testumgebung grosse Datenmengen verarbeiten kann
Validität: Vermeidung von ungültigen oder falschen Daten, die Tests verfälschen
Datenschutz: Vermeidung von Verstoss gegen Datenschutzbestimmungen durch Anonymisierung
Wartbarkeit: Sicherstellen, dass Testdaten leicht aktualisiert werden können
Arten von Testdaten
Je nach Zweck respektive Testziel unterscheiden wir verschiedene Arten von Testdaten:
Gültige Testdaten (positiv tests): Daten, die innerhalb der erwarteten Wertebereiche liegen und die normale Funktion der Anwendung testen
Ungültige Testdaten (negativ tests): Daten, die ausserhalb der erwarteten Wertebereiche liegen und testen, wie die Anwendung auf Fehler reagiert
Randwerte: Daten, die an den Grenzen der zulässigen Wertebereiche liegen, um das Verhalten der Software an Extremwerten zu überprüfen
Leere Testdaten: Daten, die gar keine Werte enthalten, um zu prüfen, ob die Anwendung mit leeren Eingaben umgehen kann
Daten für Last- und Stresstests: Sehr grosse oder komplexe Datenmengen, die das Verhalten der Software unter hoher Belastung überprüfen
Anforderungen an Testdaten
Gute und brauchbare Testdaten müssen einige Kriterien erfüllen:
Realistisch: Den tatsächlichen Nutzungsfällen möglichst nahekommen
Reproduzierbar: Es muss möglich sein, die Tests mit denselben Daten zu wiederholen
Vollständig: Alle wichtigen Anwendungsfälle und Szenarien abdecken
Sicher: Keine sensiblen oder personenbezogenen Daten enthalten, insbesondere in Testumgebungen
Erstellen von Testdaten
Es gibt verschiedene Möglichkeiten, Testdaten zu erstellen. Je nach Szenario, Menge und Komplexität muss hier ein unterschiedlicher Ansatz gewählt werden:
Manuelle Erstellung: Tester erstellen Daten gezielt für bestimmte Szenarien
Automatische Generierung: Tools generieren Testdaten anhand vorgegebener Kriterien (z.B. Faker-Bibliotheken in Python)
Kopie aus realen Daten: Verwendung anonymisierter realen Daten aus dem produktiven Sysmten
Datenbanken: Verwendung von Datenbankskripten oder Tools, um reproduzierbar die Datenstruktur inkl. Daten zu erstellen
Häufige Fehler bei Testdaten
Die folgenden Fehler treten häufig im Umgang mit Testdaten auf:
Fehlende Abdeckung: Testdaten decken nicht alle relevanten Anwendungsfälle oder Szenarien ab
Unrealistische Daten: Verwendung von Daten, die in der realen Nutzung nicht vorkommen und dadurch unzuverlässige Ergebnisse liefern
Wiederverwendung von Produktionsdaten: Nutzung echter Kundendaten ohne ordnungsgemässe Anonymisierung, was ein Verstoss gegen den Datenschutz bedeuten kann
Unzureichende Vielfalt: Es werden nur gültige oder nur ungültige Daten getestet, was potenzielle Fehler der anderen Kategorie unentdeckt lässt
Nicht reproduzierbare Daten: Testdaten werden nicht dokumentiert oder sind vor jedem Testlauf zufällig generiert, wodurch Fehler schwer nachvollziehbar sind
Fehlerhafte Randwertanalyse: Randwerte werden entweder ignoriert oder nicht korrekt identifiziert
Mangelnde Wartung: Testdaten werden nicht aktualisiert, wenn sich die Anforderungen ändern, und führen dadurch zu ungültigen oder unvollständigen Tests
Fazit
Die Verwendung von gut durchdachten Testdaten ist eine Grundvoraussetzung für erfolgreiche Softwaretests. Sie hilft, qualitativ hochwertige Anwendungen zu entwickeln, und reduziert das Risiko von Fehlern nach der Auslieferung. In der Praxis ist eine Kombination aus allen Arten von Testdaten am effektivsten, um mögliche Schwachstellen aufzudecken. Viel Spass dabei.