Die Erzeugung und Verwendung von Testdaten spielen im Software- Test eine sehr wichtige Rolle. Sie werden sowohl für manuelle, als auch für automatisierte Tests benötigt. Jedoch erlangen sie nur selten zum Projektstart die Bedeutung, welche sie verdienen. In diesem Artikel stellen wir anhand von einem Praxisbeispiel Möglichkeiten vor, wie man Testdaten erzeugen und beherrschen kann.
In zwei weiteren Artikeln zeigen wir weitere Beispiele auf und gehen auf die Theorie der Testdaten ein.
Praxisbeispiel Testorakel bei einem Detailhändler
Viele Softwareprojekte können auf ein Altsystem oder ein bestehendes Produktionssystem, das als Testorakel für die (manuellen oder automatischen) Tests dienen kann, zurückgreifen. Dies kann man sich auch für die Testautomation zu Nutze machen, wie das folgende Praxisbeispiel zeigt.
In dem Projekt für einen grossen Detailhändler wurde eine einheitliche, moderne API auf ein bestehendes SAP System entwickelt, mit dem Ziel ausgewählte Produkte für verschiedene Frontends (Web, Android, iOS) zur Verfügung zu stellen. Die Grafik zeigt dies schematisch.
Ziel des Tests war es, diese API auf Vollständigkeit und Korrektheit zu testen. Da es bereits einen existierenden Export des SAP-Warenkatalogs gab, wurde beschlossen, diese CSV-Datei als Basis, und somit als Testorakel, für den Vergleichstest zu verwenden. Vereinfacht gesagt wurde
- Die CSV Datei zeilenweise durchlaufen (jede Zeile = ein Produkt)
- Für jeden Eintrag (wahlweise für zufällige Einträge) wurde geprüft, ob das Produkt über die API kam und ob die vorhandenen Werte/Eigenschaften (z.B. Preis) korrekt waren
- Gefundene Abweichungen wurden wiederum in einer CSV-Datei mit den entsprechenden IDs, erwartetem Wert und vorgefundenem Wert gespeichert. Somit war die Fehleranalyse relativ einfach
- Einmalig pro Durchlauf wurde die Anzahl abgefragt und mit der erwarteten Anzahl verglichen (Vollständigkeit)
Finanzieller Nutzen von Testautomation
Dieses Projekt ist ein Musterbeispiel für den Mehrwert, welchen Testautomation liefern kann. Bei rund 300.000 Produkten ist unmittelbar klar, dass ein wiederholter, vollständiger manueller Test nicht möglich ist. Folglich hätte man mittels risikobsiertem Ansatz eine Analyse machen und eine Stichprobe auswählen müssen - mit Restrisiko.
Die Automation war an dieser Stelle einfach (=kostengünstig), da man sich komplett auf Schnittstellenebene bewegt hat. Die Tests haben rein lesend stattgefunden. Da die Testdaten, in Form des CSV-Exports, nächtlich frisch generiert wurden, waren sie auch immer aktuell. Dies ist keineswegs selbstverständlich. Testautomatisierer sind häufig auf alte oder unregelmässig wechselnde Testdaten angewiesen, ein Umstand der die Automatisierung deutlich verteuern kann.
Fazit
Es lohnt sich immer, zu Beginn von IT Projekten über die benötigten Testdaten nachzudenken. Mit ein wenig Kreativität und Erfahrung kann man in den meisten Fällen intelligente Lösungen finden, welche die Qualität der Tests massiv erhöhen - bzw. manche Tests überhaupt erst möglich machen.