Comment valider les données, les analyses et les visualisations de données

Le test des applications est une discipline en pleine maturation avec des outils qui aident les équipes d'assurance qualité à développer et automatiser des tests fonctionnels, à exécuter des tests de charge et de performance, à effectuer une analyse de code statique, à encapsuler les API avec des tests unitaires et à valider les applications par rapport aux problèmes de sécurité connus. Les équipes pratiquant les devops peuvent implémenter des tests continus en incluant tout ou un sous-ensemble de leurs tests automatisés dans leurs pipelines CI / CD et utiliser les résultats pour déterminer si une build doit être livrée à l'environnement cible.

Mais toutes ces capacités de test peuvent facilement ignorer un ensemble crucial de tests qui est essentiel pour tout traitement d'application ou présentation de données, d'analyses ou de visualisations de données.

Les données sont-elles exactes et les analyses sont-elles valides? Les visualisations de données montrent-elles des résultats qui ont du sens pour les experts en la matière? De plus, lorsqu'une équipe améliore les pipelines de données et les bases de données, comment doivent-elles s'assurer que les modifications ne nuisent pas à une application ou à un tableau de bord en aval?

D'après mon expérience dans le développement d'applications riches en données et en analyses, ce type de test et de validation est souvent une seconde pensée par rapport aux tests unitaires, fonctionnels, de performance et de sécurité. C'est aussi un ensemble de critères de test plus difficile à faire pour plusieurs raisons:

  • La validation des données et des analyses est difficile pour les développeurs, les testeurs et les scientifiques des données qui ne sont généralement pas des experts en la matière, en particulier sur la façon dont les tableaux de bord et les applications sont utilisés pour développer des informations ou guider la prise de décision.
  • Les données en elles-mêmes sont imparfaites, avec des problèmes de qualité des données connus et souvent inconnus.
  • Essayer de capturer des règles de validation n'est pas trivial car il existe souvent des règles communes qui s'appliquent à la plupart des données, suivies de règles pour différents types de valeurs aberrantes. Essayer de capturer et de coder ces règles peut être une proposition difficile et complexe pour les applications et les visualisations de données qui traitent de grands volumes d'ensembles de données complexes.
  • Les organisations actives axées sur les données chargent de nouveaux ensembles de données et font évoluer les pipelines de données pour améliorer l'analyse et la prise de décision.
  • Les systèmes de traitement des données sont souvent complexes, avec différents outils d'intégration, de gestion, de traitement, de modélisation et de livraison de résultats.

La première fois que les équipes présentent des données incorrectes ou des analyses non valides aux parties prenantes est généralement le premier signal d'alarme indiquant que leurs pratiques et outils peuvent être nécessaires pour tester, diagnostiquer et résoudre ces problèmes de données de manière proactive.

Comprendre le lignage et la qualité des données

Les problèmes de données sont mieux traités à leur source et à travers les différentes transformations de données effectuées lors du chargement et du traitement des données. Si les données source présentent de nouveaux problèmes de qualité des données ou si des défauts sont introduits dans le pipeline de données, il est beaucoup plus efficace de les identifier et de les résoudre au début du pipeline de traitement des données.

Deux pratiques et outils associés aident à résoudre ces problèmes. Les deux permettent aux équipes de développement et de données d'identifier les problèmes de données avant qu'ils n'atteignent les visualisations de données et les applications en aval.

La première pratique implique des outils de qualité des données qui sont souvent des capacités complémentaires pour extraire, transformer et charger (ETL), ainsi que certains outils de préparation de données. Les outils de qualité des données ont plusieurs objectifs, mais ils peuvent notamment identifier et corriger les problèmes de données connus. Certaines corrections peuvent être automatisées, tandis que d'autres peuvent être signalées comme exceptions et envoyées aux gestionnaires de données pour les corriger manuellement ou pour mettre à jour les règles de nettoyage.

Informatica, Talend, IBM, Oracle, Microsoft et bien d'autres proposent des outils de qualité des données qui se connectent à leurs plates-formes ETL, tandis que les outils de préparation de données de Tableau, Alteryx, Paxata, Trifacta et autres ont des capacités de qualité des données.

La deuxième pratique est le lignage des données. Alors que la qualité des données aide à identifier les problèmes de données, le lignage des données est un ensemble de pratiques et d'outils qui suivent les modifications des données et les implémentations sous-jacentes. Ils aident les utilisateurs à comprendre où dans le cycle de vie des données une transformation, un calcul ou une autre manipulation de données est implémenté. Les outils de lignage de données, les rapports et la documentation peuvent ensuite être utilisés pour remonter dans un pipeline de données et aider à identifier où dans un flux de données un défaut ou un autre problème a été introduit.

Utilisation d'ensembles de données dorés pour valider les visualisations de données

Les analyses, les tableaux de bord et les visualisations de données ne fonctionnent pas sur des sources de données statiques. Les données changent à une certaine vitesse, et en même temps, les développeurs et les scientifiques des données peuvent modifier les flux de données, les algorithmes et les visualisations sous-jacents. Lorsque vous regardez un tableau de bord, il est difficile de distinguer si un problème de données imprévu est dû à un changement programmatique ou s'il est lié à des données ou à des changements de qualité des données.

Une façon d'isoler les modifications consiste à séparer un ensemble de données d' or connu pour aider à valider les modifications du flux de données, des applications et de la visualisation des données. À l'aide d'un ensemble de données de référence, une équipe de test peut définir des tests unitaires, fonctionnels et de performance pour valider et comparer les résultats. Les testeurs peuvent exécuter des tests A / B, où A est la sortie avant l'introduction des modifications d'implémentation et B est la sortie après que les modifications ont été apportées. Le test ne doit montrer les différences de sortie que dans les zones attendues où les flux de données, les modèles, les analyses, la logique métier ou les visualisations ont été modifiés.

Bien que ce soit un concept relativement simple, ce n'est pas facile à mettre en œuvre.

Tout d'abord, les équipes doivent créer les ensembles de données de référence et décider du volume et de la variété de données constituant un ensemble d'échantillons complet à tester. Il peut également nécessiter plusieurs ensembles de données pour aider à valider différents segments de données, conditions aux limites ou modèles analytiques. Un outil qui peut aider les équipes à gérer les données de test est Delphix pour la gestion des données de test; d'autres fournisseurs offrent également cette capacité.

Deuxièmement, une fois que les ensembles de données de référence sont créés, les équipes de test peuvent avoir besoin d'environnements ou d'outils supplémentaires pour changer les sources de données sous-jacentes dans leurs environnements. Par exemple, les testeurs peuvent souhaiter effectuer des tests sur les ensembles de données de référence, puis exécuter une deuxième fois sur des données qui sont une réplique des données de production. Les équipes opérant dans des environnements cloud et utilisant des outils d'infrastructure en tant que code tels que Puppet, Chef et Ansible peuvent créer et démolir plusieurs environnements de test à ces différentes fins.

Enfin, les équipes de test ont besoin d'outils pour mettre en œuvre les tests A / B des données et des résultats. De nombreuses équipes que je connais le font manuellement en écrivant des requêtes SQL, puis en comparant les résultats. Si les ensembles de données et les tests sont simples, cette approche peut être suffisante. Mais si plusieurs points du flux de données doivent être testés, vous avez probablement besoin d'outils dédiés pour centraliser les requêtes de test, les automatiser et utiliser des rapports pour valider les modifications. Un outil, QuerySurge, est spécialement conçu pour mettre en œuvre des tests A / B sur des flux de données, des bases de données et certains outils de veille stratégique.

Travailler efficacement avec des experts en la matière

À un moment donné, vous devez impliquer des experts en la matière pour utiliser des visualisations de données nouvelles et mises à jour et fournir des commentaires. Ils doivent aider à répondre aux questions sur la validité et l'utilité de l'analyse pour développer des idées ou aider à la prise de décision basée sur les données.

Le problème auquel de nombreuses équipes sont confrontées est d'obtenir suffisamment de temps des experts en la matière pour participer à ces tests. Cela peut être un défi important lorsque vous essayez de tester et de déployer fréquemment des modifications.

Pour utiliser efficacement leur temps, je recommande trois activités distinctes:

  • Mettez en œuvre autant de qualité des données, de lignage de données et de tests A / B que possible sur des ensembles de données de référence. Avant d'impliquer des experts en la matière, faites des efforts raisonnables pour valider que les données brutes et calculées sont correctes. Cela doit être fait en toute confiance afin que vous puissiez expliquer et idéalement illustrer aux experts en la matière que les données sous-jacentes, les transformations et les calculs sont précis. Vous pouvez donc être sûr qu'ils n'ont pas besoin d'investir beaucoup de temps pour les tester manuellement.
  • Concevez des visualisations de données pour aider les experts en la matière à examiner et valider les données et les analyses. Certaines visualisations peuvent être des sorties des tests A / B, tandis que d'autres doivent être des visualisations qui exposent des données de bas niveau. Lors de la mise en œuvre de modifications de données, d'algorithmes, de modèles ou de visualisation à plus grande échelle, il est souvent utile de mettre en place ces visualisations de données de contrôle qualité pour aider les experts en la matière à effectuer des validations rapides.
  • Vous voulez que des experts en la matière effectuent des tests d'acceptation utilisateur (UAT) sur les applications finalisées et les visualisations de données. Au moment où ils atteignent cette étape, ils doivent être pleinement convaincus que les données et les analyses sont valides.

Cette dernière étape est nécessaire pour déterminer si les visualisations sont efficaces pour explorer les données et répondre aux questions: La visualisation est-elle facile à utiliser? Les dimensions correctes sont-elles disponibles pour explorer les données? La visualisation aide-t-elle à répondre aux questions auxquelles elle a été conçue?

À ce stade du processus, vous testez l'expérience utilisateur et vous assurez que les tableaux de bord et les applications sont optimisés. Cette étape critique peut être effectuée beaucoup plus efficacement lorsqu'il y a compréhension et confiance dans les données et analyses sous-jacentes.