In meinem ersten Beitrag zum Thema Testing habe ich erläutert, welche Möglichkeiten der Tosca Testsuite wir zurzeit nutzen, um BI-Reports automatisch auf Regressionsfehler zu testen. An dieser Stelle möchte ich nun einen ersten Einblick geben, welche Problemstellungen und Lösungsansätze sich bezüglich Testing im DWH Backend präsentieren.
Unser Partner Tricentis hat kürzlich eine Kundenumfrage durchgeführt:
Darauf basierend bietet die Tosca Testsuite verschiedene Module und Assistenten an, welche diese Bedürfnisse adressieren. Ein Assistent heisst Tosca VitalChecks und adressiert Datenqualitäts-Checks beim Anziehen von Daten ins DWH. Ein weiteres Modul heisst Tosca IQ und adressiert Regressionstest für die Datenströme im DWH bzw. die ETL-Prozesse. In einem kürzlich erfolgten Workshop bei IT-Logix konnten wir uns Tosca VitalChecks und IQ hands-on näher betrachten.
VitalChecks ermöglichen die automatische Generierung von Datenqualitäts-Tests für drei Hauptkategorien: Datenstrukturen, Datenintegrität und Datenvollständigkeit bzw. -korrektheit. Dabei spielt es keine Rolle, ob man auf das Quellsystem direkt zugreift oder über eine Flat-File-Schnittstelle geht.
Mit diesen Tests soll sichergestellt werden, dass die ins DWH angelieferten Daten den definierten Anforderungen entsprechen und vollständig geladen werden. Die erste Reaktion unserer ETL-Spezialisten diesbezüglich war, dass wir solche Checks ja standardmässig in den ETL-Datenfluss einbauen. Das stimmt – und wenn man dies von Beginn an und sauber umsetzt, ist der Mehrwert der VitalChecks in der Tat fraglich. Es gilt jedoch zu beachten, dass viele Organisationen ein DWH irgendwann irgendwo klein begonnen haben und dabei möglicherweise nicht als erstes Datenqualitätsprüfungen eingebaut haben. Und ob man nachträglich an und für sich (zumindest im Regelfall) gut funktionierende Ladejobs anpassen will? Da tönt es in meinem Kopf gleich nach „Never touch the running system!“. In einer solchen Situation hat es vor allem mit Risikomanagement zu tun, nachträgliche Datenqualitätchecks wie sie Tosca VitalChecks anbietet, eben durch eine vom ETL-Fluss losgelöste Komponente zu implementieren.
Mit den Tosca VitalChecks können wir also schon mal relativ einfach die angelieferten Daten auf ihre Qualität überprüfen. Wie aber lassen sich Regressionstests für die anschliessende ETL- oder ELT-Verarbeitung umsetzen? Weil man spätestens im produktiven Betrieb immer neue Daten in das DWH lädt, greifen statische Testfalldefinitionen zu kurz. Und genau hier setzt Tosca IQ an. Tosca IQ erstellt eine virtuelle „Landkarte“ bestimmter Regionen im DWH, ganz genau so wie wir in der Schweiz auch unsere Berge vermessen:
Bezogen auf ein DWH-Modell könnte das dann so aussehen:
In diesem Beispiel wird die Landschaft für die Umsatzkennzahl anhand von exemplarischen zwei Dimensionen vermessen (selbstverständlich wird in der Realität mit mehr Dimensionen gearbeitet). Das Ziel ist nun, unerwartete Änderungen im Landschaftsbild zwischen zwei Zeitpunkten zu finden:
Im Rahmen der Testfalldefinitionen wird dabei mit Toleranzgrenzen gearbeitet, um erwartete Abweichungen (z.B. reguläre Umsatzsteigerung) zu unterscheiden von Abweichungen, welche durch eine fehlerhafte Verarbeitung auftreten.
Während man auf ETL-Ebene auch hier einige Checks einbauen kann, so fehlt doch häufig das „Big Picture“, ob die Datenstände in einem DWH plausibel sind. Da sehe ich ein grosses Potential für Lösungen wie Tosca IQ, denn das Vertrauen der Endbenutzer in die Korrektheit der Zahlen des DWHs ist ein hohes Gut und sollte nicht leichtfertig preisgegeben werden.