DWH-Testing
Daten, welche in einem Data Warehouse (DWH) bereitgestellt werden, durchlaufen oft einen komplexen Ladeprozess, in dem vieles schief gehen kann.
Mit gezielten Tests können Fehler und Missverständnisse aufgedeckt und beseitigt werden. Oft werden solche Tests basierend auf Auswertungen rein fachlich oder mit rein technischen Ansätzen gemacht. Beide Methoden haben jedoch Schwächen:
- Rein fachliche Tests können nur gezielt einzelne Werte verifizieren und stellen teilweise nur grössere Abweichungen fest.
- Technische Tests verifizieren die umgesetzten Ladestrecken ohne fachlichen Hintergrund.
Erst wenn beide Ansätze kombiniert werden, können die aufbereiteten Daten effizient und in der nötigen Bandbreite verifiziert werden. Solche Tests decken Missverständnisse, Ladestreckenfehler und Datenqualitätsprobleme auf. Sie ermöglichen eine umfassende Analyse der Qualität der bereitgestellten Daten, bevor Reportentwickler oder –anwender auf allfällige Missstände stossen.
Mit gezielten Tests können Fehler und Missverständnisse aufgedeckt und beseitigt werden. Oft werden solche Tests basierend auf Auswertungen rein fachlich oder mit rein technischen Ansätzen gemacht. Beide Methoden haben jedoch Schwächen:
- Rein fachliche Tests können nur gezielt einzelne Werte verifizieren und stellen teilweise nur grössere Abweichungen fest.
- Technische Tests verifizieren die umgesetzten Ladestrecken ohne fachlichen Hintergrund.
Erst wenn beide Ansätze kombiniert werden, können die aufbereiteten Daten effizient und in der nötigen Bandbreite verifiziert werden. Solche Tests decken Missverständnisse, Ladestreckenfehler und Datenqualitätsprobleme auf. Sie ermöglichen eine umfassende Analyse der Qualität der bereitgestellten Daten, bevor Reportentwickler oder –anwender auf allfällige Missstände stossen.
Technische Tests mit fachlichem Hintergrund
Technische Tests sollen Fehler und Unstimmigkeiten aufdecken, welche in Reports nur schwierig zu erkennen sind. Solche Fehler sind beispielsweise:
- Ungültige Referenzen (referenzierte Datensätze sind nicht vorhanden)
- Dubletten oder überschneidende Zeitachsen
- Fehlende Records
- Ungültige Code-Werte
Testpattern mit Parameterlisten anwenden
Damit Tests flächendeckend auf dem ganzen Datenbestand eingesetzt werden können, müssen immer wieder ähnliche Scripts ausgeführt werden. Dies kann am effizientesten erreicht werden, wenn Testpattern entwickelt werden, welche mithilfe von Parameterlisten auf möglichst viele Tabellen angewendet werden können.
Einmal entwickelt, können diese Tests durch Parameter-Anpassungen laufend auf weitere Tabellen oder geänderte Ladestrecken angewendet werden. So können die Tests nicht nur im laufenden Betrieb oder zur Release-Freigabe, sondern auch innerhalb des Entwicklungs-Prozesses eingesetzt werden
Einmal entwickelt, können diese Tests durch Parameter-Anpassungen laufend auf weitere Tabellen oder geänderte Ladestrecken angewendet werden. So können die Tests nicht nur im laufenden Betrieb oder zur Release-Freigabe, sondern auch innerhalb des Entwicklungs-Prozesses eingesetzt werden
Detaillierte Protokollierung
Wenn das Testresultat aussagt, dass von mehreren Millionen „Record 15“ fehlt, dann wird die Fehlersuche sehr schwierig. (Alternative für diesen Satz: Machen wir ein Beispiel: Wir testen mehrere Millionen Daten. Resultat: „Record 15“ fehlt. In einer solchen Datenmenge, den Fehler zu finden, ist sehr schwierig und zeitaufwendig. Kommentar: überhaupt möglich?)
Soweit irgendwie möglich sollten die Tests so aufgebaut sein, dass die fehlenden oder falschen Datensätze direkt identifiziert werden können. Dies ermöglicht eine effiziente Fehlersuche. Falls grosse Abweichungen bestehen, genügen meist einige wenige Fehlerbeispiele, um die Ursache zu identifizieren.
Werden die Tests von Anfang an so konzipiert, dass konkrete Fehlermeldungen resultieren, so kann mit geringem Initialaufwand viel Zeit bei der Fehlersuche gespart werden
Soweit irgendwie möglich sollten die Tests so aufgebaut sein, dass die fehlenden oder falschen Datensätze direkt identifiziert werden können. Dies ermöglicht eine effiziente Fehlersuche. Falls grosse Abweichungen bestehen, genügen meist einige wenige Fehlerbeispiele, um die Ursache zu identifizieren.
Werden die Tests von Anfang an so konzipiert, dass konkrete Fehlermeldungen resultieren, so kann mit geringem Initialaufwand viel Zeit bei der Fehlersuche gespart werden