Qualité des données : définition, tests et outils pour la contrôler
Tester la qualité des données, c'est vérifier que les données sont complètes, exactes, cohérentes, uniques, valides et à jour avant que quiconque ne s'appuie dessus. Concrètement, on écrit des assertions automatisées sur les jeux de données, comme « cette colonne n'est jamais vide », « cet identifiant est unique » ou « le chargement d'hier est bien arrivé », et on les exécute à chaque étape du pipeline avec des outils comme Great Expectations, les tests dbt ou Soda. Ce guide présente les dimensions de la qualité des données, les contrôles à poser à chaque étape et la comparaison des principaux outils.
- Six dimensions couvrent l'essentiel des besoins : complétude, exactitude, cohérence, unicité, validité et fraîcheur
- Les données changent même quand le code ne change pas : les contrôles de données doivent tourner à chaque chargement, pas seulement à chaque commit
- Great Expectations (Python), les tests de données dbt (SQL, dans le projet de transformation) et Soda (contrôles en YAML sur les entrepôts) sont les options open source les plus courantes
- Commencez petit : clés non nulles et uniques, volumétrie, fraîcheur et valeurs autorisées sur vos tables les plus critiques
Qu'est-ce que la qualité des données ?
La qualité des données désigne l'aptitude d'un jeu de données à servir l'usage auquel il est destiné : alimenter un tableau de bord, une facture, un reporting réglementaire ou un modèle d'apprentissage automatique. Une donnée n'est pas « bonne » dans l'absolu ; elle est bonne si elle respecte des attentes explicites sur son contenu, sa structure et sa date de mise à jour.
Qu'est-ce qu'un test de qualité des données ?
Un test de qualité des données est la vérification automatisée qu'un jeu de données respecte ces attentes. Chaque attente est une règle qui passe ou échoue, par exemple « commande_id est unique » ou « montant est strictement positif ». Un échec arrête le pipeline ou alerte le responsable de la donnée avant que l'erreur n'atteigne un tableau de bord, un rapport ou un modèle d'IA.
Quelles sont les dimensions de la qualité des données ?
Les dimensions les plus utilisées sont la complétude, l'exactitude, la cohérence, l'unicité, la validité et la fraîcheur. Chacune se traduit en contrôles concrets et automatisables.
| Dimension | Question posée | Exemple de contrôle |
|---|---|---|
| Complétude | Manque-t-il quelque chose ? | Aucune valeur nulle dans les colonnes obligatoires ; nombre de lignes attendu |
| Exactitude | La valeur correspond-elle à la réalité ? | Les totaux se rapprochent de ceux du système source |
| Cohérence | Les systèmes sont-ils d'accord ? | Même statut client dans le CRM et dans l'entrepôt de données |
| Unicité | Y a-t-il des doublons ? | Les clés primaires sont uniques |
| Validité | La valeur respecte-t-elle les règles ? | Format, plage et valeurs autorisées (par exemple un code pays valide) |
| Fraîcheur | La donnée est-elle à jour ? | Dernier enregistrement chargé dans le délai convenu |
En quoi le test de données diffère-t-il du test logiciel ?
Les tests logiciels vérifient du code avec des entrées fixes ; les tests de qualité des données vérifient des données qui changent chaque jour, même quand aucune ligne de code n'a bougé. Une transformation peut être parfaitement correcte et produire pourtant des résultats faux parce qu'un système amont a envoyé un fichier vide ou une nouvelle catégorie. Il faut donc les deux : des tests unitaires sur la logique de transformation, exécutés en CI à chaque commit, et des contrôles de données exécutés en production à chaque chargement. Notre guide sur l'intégration des tests dans un pipeline CI/CD couvre la première partie, et notre page Automatisation des tests : définition, outils, étapes replace ces deux familles dans une stratégie de test complète.
Quels contrôles poser à chaque étape d'un pipeline de données ?
Validez tôt et à chaque passage de relais, pour attraper un problème là où il entre plutôt que dans le rapport final.
- Ingestion : vérifier le schéma et les types à l'arrivée des données, avec des contrats de données exprimés en JSON Schema, Avro ou modèles Pydantic ; rejeter ou mettre en quarantaine les enregistrements invalides.
- Transformation : tester les sorties des traitements dbt ou Spark sur les clés, les relations entre tables et les règles métier.
- Chargement : rapprocher les volumes et les totaux entre la source et la cible, et vérifier l'absence de doublons introduits par une relance.
- Consommation : surveiller la fraîcheur et les indicateurs clés utilisés par les tableaux de bord, et alerter quand ils sortent des bornes attendues.
Qu'est-ce que Great Expectations ?
Great Expectations est un framework Python open source de validation de données. On y déclare des « Expectations » comme expect_column_values_to_not_be_null ou expect_column_values_to_be_between, on les regroupe en suites, puis on valide des lots de données issus de fichiers, de dataframes ou de bases SQL. Les résultats de validation peuvent être rendus sous forme de « Data Docs » lisibles par des humains. Il convient aux pipelines écrits en Python et aux équipes qui veulent des contrôles de données écrits en code.
Comment fonctionnent les tests dbt ?
Dans dbt, un test de données est une requête qui renvoie les lignes qui violent une règle : si la requête ne renvoie aucune ligne, le test passe. Quatre tests génériques sont intégrés, unique, not_null, accepted_values et relationships, et se déclarent en YAML à côté du modèle :
models:
- name: commandes
columns:
- name: commande_id
data_tests:
- unique
- not_null
Les tests singuliers sont des fichiers SQL personnalisés pour les règles métier :
-- tests/montant_positif.sql : échoue si la requête renvoie des lignes
select *
from {{ ref('commandes') }}
where montant <= 0
dbt test exécute les tests, et dbt build exécute modèles et tests dans l'ordre des dépendances : un test en échec empêche la construction des modèles situés en aval.
Qu'est-ce que Soda ?
Soda est un outil de qualité des données dont le moteur open source, Soda Core, exécute des contrôles écrits en SodaCL, un langage basé sur YAML, sur des sources comme PostgreSQL, Snowflake ou BigQuery :
checks for commandes:
- row_count > 0
- missing_count(email) = 0
- duplicate_count(commande_id) = 0
Ces contrôles, comme les seuils de fraîcheur, sont lisibles par les analystes autant que par les ingénieurs, ce qui fait de Soda un bon choix quand les équipes métier participent à la définition des règles.
Great Expectations, tests dbt ou Soda : lequel choisir ?
Si vos transformations vivent déjà dans dbt, commencez par les tests de données dbt ; ajoutez Great Expectations pour les pipelines Python et les contrôles statistiques plus riches, ou Soda pour des contrôles lisibles sur des entrepôts partagés avec les équipes métier.
| Outil | Contrôles écrits en | S'exécute sur | Idéal pour |
|---|---|---|---|
| Great Expectations | Python | Fichiers, dataframes, bases SQL | Pipelines Python, rapports de validation détaillés |
| Tests de données dbt | YAML et SQL | L'entrepôt utilisé par le projet dbt | Équipes qui transforment déjà leurs données avec dbt |
| Soda Core | SodaCL (YAML) | Entrepôts et bases de données | Contrôles lisibles partagés avec les équipes métier |
Quels indicateurs de qualité des données surveiller ?
Surveillez quelques indicateurs sur les tables qui comptent le plus pour le métier, plutôt que tout, partout :
- Taux de nullité des champs obligatoires ;
- Taux de doublons sur les clés ;
- Volumétrie comparée au volume attendu ;
- Délai depuis le dernier chargement réussi ;
- Distribution des principales valeurs numériques.
Un décalage soudain de distribution révèle souvent une source amont cassée avant même qu'une règle n'échoue ; les méthodes statistiques et d'apprentissage automatique qui détectent ces anomalies sont présentées dans notre article IA et Machine Learning pour les tests.
Comment démarrer les tests de qualité des données ?
Choisissez vos tables les plus critiques et ajoutez-leur cinq contrôles : clés non nulles, clés uniques, volumétrie au-dessus d'un minimum, fraîcheur dans le délai convenu et valeurs autorisées sur les principales colonnes de statut. Exécutez-les après chaque chargement, envoyez les échecs au responsable de la table, et ajoutez un contrôle chaque fois qu'un incident révèle un trou. Les techniques de données de test issues du test logiciel aident aussi : voir notre guide du Data-Driven Testing.
Questions fréquentes
Quelles sont les six dimensions de la qualité des données ?
Complétude, exactitude, cohérence, unicité, validité et fraîcheur. Chacune se traduit en contrôles automatisés, comme l'absence de valeur nulle dans les colonnes obligatoires ou l'unicité des clés primaires.
Quelle différence entre validation de données et test de données ?
Les deux termes se recouvrent. La validation de données désigne en général le contrôle des données entrantes avant leur utilisation, tandis que le test de données couvre aussi le contrôle des sorties de transformation. Les deux reposent sur des assertions automatisées sur les données.
Great Expectations est-il meilleur que les tests dbt ?
Aucun n'est meilleur dans l'absolu. Les tests dbt sont le choix le plus simple quand les transformations sont déjà dans dbt ; Great Expectations convient aux pipelines Python et propose une bibliothèque d'expectations intégrées plus large. Beaucoup d'équipes utilisent les deux.
À quelle fréquence exécuter les contrôles de qualité des données ?
À chaque chargement ou exécution du pipeline, car les données peuvent changer sans aucune modification du code. Les tests du code de transformation lui-même doivent aussi tourner en CI à chaque commit.
Les testeurs QA ont-ils besoin de compétences en qualité des données ?
De plus en plus, oui. Les applications, l'analytique et les fonctionnalités d'IA dépendent toutes des données : un testeur capable d'écrire des contrôles SQL et de valider un pipeline couvre des risques que les tests d'interface et d'API ne voient pas.
Apprendre à tester les données avec Python
Chez Automation DataCamp (ADC), la formation Data-Driven Testing avec Python (50 h, en ligne) couvre la gestion de données CSV, Excel et JSON et l'intégration de bases de données dans les tests automatisés, les fondations pour valider les données d'un pipeline.
Voir la formation Data-Driven Testing Voir toutes les formationsPlaywright, tests API, CI et IA appliquée au test, sans prérequis. Examens ISTQB CTFL et CT-GenAI inclus. 1 500 € en 1 à 4 fois ou financement entreprise.
Voir le programme de la formation testeur QA automatisation & IAComparatif des outils sur 12 critères, dix projets de portfolio dont un audit d'accessibilité et un test de charge, certifications. PDF gratuit de 25 pages.
Télécharger le Guide QA Automation 2026Articles similaires

Data-Driven Testing : Guide Complet
CSV, JSON, Excel pour des tests paramétrés efficaces.
Lire la suite : Data-Driven Testing
IA et Machine Learning pour les Tests
Comment l'IA transforme l'automatisation des tests.
Lire la suite : IA et Machine Learning pour les Tests