So validieren Sie Daten, Analysen und Datenvisualisierungen

Das Testen von Anwendungen ist eine ausgereifte Disziplin mit Tools, mit denen Qualitätssicherungsteams Funktionstests entwickeln und automatisieren, Last- und Leistungstests durchführen, statische Code-Analysen durchführen, APIs mit Komponententests umschließen und Anwendungen anhand bekannter Sicherheitsprobleme validieren können. Teams, die Entwickler üben, können kontinuierliche Tests implementieren, indem sie alle oder einen Teil ihrer automatisierten Tests in ihre CI / CD-Pipelines aufnehmen und anhand der Ergebnisse bestimmen, ob ein Build an die Zielumgebung geliefert werden soll.

Alle diese Testfunktionen können jedoch einen wichtigen Satz von Tests leicht ignorieren, der für die Verarbeitung oder Präsentation von Daten, Analysen oder Datenvisualisierungen durch Anwendungen von entscheidender Bedeutung ist.

Sind die Daten korrekt und sind die Analysen gültig? Zeigen die Datenvisualisierungen Ergebnisse, die für Fachexperten sinnvoll sind? Wie sollte ein Team bei Verbesserungen an Datenpipelines und Datenbanken sicherstellen, dass Änderungen einer nachgeschalteten Anwendung oder einem nachgelagerten Dashboard keinen Schaden zufügen?

Nach meiner Erfahrung bei der Entwicklung daten- und analytikreicher Anwendungen ist diese Art des Testens und Validierens im Vergleich zu Einheiten-, Funktions-, Leistungs- und Sicherheitstests oft ein zweiter Gedanke. Es ist aus mehreren Gründen auch schwieriger, Testkriterien zu erstellen:

  • Die Validierung von Daten und Analysen ist für Entwickler, Tester und Datenwissenschaftler, die normalerweise keine Fachexperten sind, schwierig, insbesondere, wie Dashboards und Anwendungen verwendet werden, um Erkenntnisse zu gewinnen oder Entscheidungen zu treffen.
  • Daten an sich sind unvollständig, mit bekannten und oft unbekannten Problemen mit der Datenqualität.
  • Der Versuch, Validierungsregeln zu erfassen, ist nicht trivial, da häufig allgemeine Regeln für die meisten Daten gelten, gefolgt von Regeln für verschiedene Arten von Ausreißern. Der Versuch, diese Regeln zu erfassen und zu codieren, kann für Anwendungen und Datenvisualisierungen, die große Mengen komplexer Datensätze verarbeiten, eine schwierige und komplexe Aufgabe sein.
  • Aktive datengesteuerte Organisationen laden neue Datensätze und entwickeln Datenpipelines weiter, um die Analyse und Entscheidungsfindung zu verbessern.
  • Datenverarbeitungssysteme sind häufig komplex und verfügen über verschiedene Tools zum Integrieren, Verwalten, Verarbeiten, Modellieren und Bereitstellen von Ergebnissen.

Die erstmaligen Teams, die Stakeholdern schlechte Daten oder ungültige Analysen präsentieren, sind normalerweise der erste Weckruf, bei dem ihre Praktiken und Tools erforderlich sein können, um diese Datenprobleme proaktiv zu testen, zu diagnostizieren und zu lösen.

Datenherkunft und Datenqualität verstehen

Datenprobleme werden am besten an ihren Quellen und durch die verschiedenen Datentransformationen behoben, die beim Laden und Verarbeiten der Daten durchgeführt werden. Wenn die Quelldaten neue Probleme mit der Datenqualität aufweisen oder Fehler in der Datenpipeline auftreten, ist es weitaus effizienter, diese frühzeitig in der Datenverarbeitungspipeline zu identifizieren und zu beheben.

Zwei Vorgehensweisen und verwandte Tools helfen bei diesen Problemen. Beide ermöglichen es Entwicklungs- und Datenteams, Datenprobleme zu identifizieren, bevor sie nachgelagerte Datenvisualisierungen und -anwendungen erreichen.

Die erste Übung umfasst Tools für die Datenqualität, bei denen es sich häufig um Zusatzfunktionen zum Extrahieren, Transformieren und Laden (ETL) handelt, sowie einige Tools zur Datenvorbereitung. Tools für die Datenqualität dienen mehreren Zwecken. Sie können jedoch bekannte Datenprobleme identifizieren und beheben. Einige Korrekturen können automatisiert werden, während andere als Ausnahmen gekennzeichnet und an Datenverwalter gesendet werden können, um sie manuell zu korrigieren oder die Bereinigungsregeln zu aktualisieren.

Informatica, Talend, IBM, Oracle, Microsoft und viele andere bieten Tools für die Datenqualität an, die in ihre ETL-Plattformen integriert werden können, während Tools für die Datenvorbereitung von Tableau, Alteryx, Paxata, Trifacta und anderen über Funktionen für die Datenqualität verfügen.

Die zweite Übung ist die Datenherkunft. Während die Datenqualität zur Identifizierung von Datenproblemen beiträgt, handelt es sich bei der Datenherkunft um eine Reihe von Methoden und Tools, mit denen Änderungen an Daten und zugrunde liegenden Implementierungen verfolgt werden. Sie helfen Benutzern zu verstehen, wo im Datenlebenszyklus eine Transformation, Berechnung oder andere Datenmanipulation implementiert ist. Mithilfe von Tools, Berichten und Dokumentationen zur Datenherkunft können Sie dann eine Datenpipeline zurückverfolgen und feststellen, wo in einem Datenfluss ein Fehler oder ein anderes Problem aufgetreten ist.

Verwenden goldener Datensätze zur Validierung von Datenvisualisierungen

Analysen, Dashboards und Datenvisualisierungen arbeiten nicht mit statischen Datenquellen. Die Daten ändern sich mit einer gewissen Geschwindigkeit, und gleichzeitig können Entwickler und Datenwissenschaftler die zugrunde liegenden Datenflüsse, Algorithmen und Visualisierungen ändern. Wenn Sie sich ein Dashboard ansehen, ist es schwierig zu unterscheiden, ob ein unerwartetes Datenproblem auf eine programmatische Änderung zurückzuführen ist oder ob es sich um Daten- oder Datenqualitätsänderungen handelt.

Eine Möglichkeit, Änderungen zu isolieren, besteht darin, einen bekannten goldenen Datensatz zu trennen, um Änderungen des Datenflusses, der Anwendung und der Datenvisualisierung zu validieren. Mithilfe eines goldenen Datensatzes kann ein Testteam Einheiten-, Funktions- und Leistungstests definieren, um die Ergebnisse zu validieren und zu vergleichen. Tester können A / B-Tests ausführen, wobei A die Ausgabe ist, bevor Implementierungsänderungen eingeführt wurden, und B die Ausgabe ist, nachdem die Änderungen vorgenommen wurden. Der Test sollte nur Unterschiede in der Ausgabe in erwarteten Bereichen anzeigen, in denen die Datenflüsse, Modelle, Analysen, Geschäftslogik oder Visualisierungen geändert wurden.

Obwohl dies ein relativ einfaches Konzept ist, ist es nicht trivial zu implementieren.

Zunächst müssen die Teams die goldenen Datensätze erstellen und entscheiden, welches Datenvolumen und welche Datenvielfalt einen umfassenden zu testenden Stichprobensatz darstellen. Möglicherweise sind auch mehrere Datensätze erforderlich, um verschiedene Datensegmente, Randbedingungen oder Analysemodelle zu validieren. Ein Tool, mit dem Teams Testdaten verwalten können, ist Delphix für die Verwaltung von Testdaten. Andere Anbieter bieten diese Funktion ebenfalls an.

Zweitens benötigen Testteams nach der Erstellung goldener Datensätze möglicherweise zusätzliche Umgebungen oder Tools, um die zugrunde liegenden Datenquellen in ihren Umgebungen zu wechseln. Beispielsweise möchten Tester möglicherweise anhand der goldenen Datensätze testen und dann ein zweites Mal anhand von Daten ausführen, die eine Nachbildung von Produktionsdaten sind. Teams, die in Cloud-Umgebungen arbeiten und Infrastruktur-als-Code-Tools wie Puppet, Chef und Ansible verwenden, können mehrere Testumgebungen für diese verschiedenen Zwecke erstellen und herunterfahren.

Schließlich benötigen Testteams Tools, um A / B-Tests von Daten und Ergebnissen durchzuführen. Viele Teams, die ich kenne, tun dies manuell, indem sie SQL-Abfragen schreiben und dann die Ergebnisse vergleichen. Wenn die Datensätze und Tests einfach sind, kann dieser Ansatz ausreichend sein. Wenn jedoch mehrere Punkte im Datenfluss getestet werden müssen, benötigen Sie wahrscheinlich spezielle Tools, um Testabfragen zu zentralisieren, zu automatisieren und Berichte zur Validierung von Änderungen zu verwenden. Ein Tool, QuerySurge, wurde speziell für die Implementierung von A / B-Tests für Datenflüsse, Datenbanken und einige Business Intelligence-Tools entwickelt.

Effizientes Arbeiten mit Fachexperten

Irgendwann müssen Sie Fachexperten einbeziehen, um neue und aktualisierte Datenvisualisierungen zu verwenden und Feedback zu geben. Sie müssen bei der Beantwortung von Fragen helfen, ob die Analyse gültig und nützlich ist, um Erkenntnisse zu gewinnen oder datengesteuerte Entscheidungen zu treffen.

Das Problem, mit dem viele Teams konfrontiert sind, besteht darin, dass Fachexperten genügend Zeit haben, um an diesen Tests teilzunehmen. Dies kann eine erhebliche Herausforderung sein, wenn Sie versuchen, Änderungen häufig zu testen und bereitzustellen.

Um ihre Zeit effizient zu nutzen, empfehle ich drei separate Aktivitäten:

  • Implementieren Sie so viele Datenqualitäts-, Datenherkunfts- und A / B-Tests wie möglich für goldene Datensätze. Bevor Sie Fachexperten einbeziehen, sollten Sie angemessene Anstrengungen unternehmen, um zu überprüfen, ob die rohen und berechneten Daten korrekt sind. Dies muss mit Zuversicht erfolgen, damit Sie Fachexperten erklären und im Idealfall veranschaulichen können, dass die zugrunde liegenden Daten, Transformationen und Berechnungen korrekt sind. Sie können also sicher sein, dass sie keine erhebliche Zeit investieren müssen, um sie manuell zu testen.
  • Entwerfen Sie Datenvisualisierungen, um Fachexperten dabei zu helfen, die Daten und Analysen zu überprüfen und zu validieren. Einige Visualisierungen können aus den A / B-Tests ausgegeben werden, während andere Visualisierungen sein sollten, die Daten auf niedriger Ebene verfügbar machen. Bei der Implementierung größerer Daten-, Algorithmus-, Modell- oder Visualisierungsänderungen ist es häufig hilfreich, diese Datenvisualisierungen zur Qualitätskontrolle zu verwenden, damit Fachexperten schnelle Validierungen durchführen können.
  • Sie möchten, dass Fachexperten Benutzerakzeptanztests (User Acceptance Testing, UAT) für die endgültigen Anwendungen und Datenvisualisierungen durchführen. Wenn sie diesen Schritt erreichen, sollten sie volles Vertrauen in die Gültigkeit der Daten und Analysen haben.

Dieser letzte Schritt ist erforderlich, um festzustellen, ob die Visualisierungen die Daten effektiv untersuchen und Fragen beantworten: Ist die Visualisierung einfach zu verwenden? Sind die richtigen Abmessungen verfügbar, um die Daten zu analysieren? Hilft die Visualisierung erfolgreich bei der Beantwortung der Fragen, für die sie entwickelt wurde?

Zu diesem Zeitpunkt testen Sie die Benutzererfahrung und stellen sicher, dass die Dashboards und Anwendungen optimiert sind. Dieser wichtige Schritt kann weitaus effizienter ausgeführt werden, wenn Verständnis und Vertrauen in die zugrunde liegenden Daten und Analysen bestehen.