🎯 Objectif
Mettre en place une stratégie de tests ciblés, efficaces et synchronisés avec les rythmes de mise à jour des données.
🔧 Problème courant
Tu as plusieurs sources de données dans ton entrepôt :
| Source | Fréquence de mise à jour |
|---|---|
| ERP (finance) | chaque nuit à 3h |
| CRM (clients) | toutes les heures |
| Web analytics | toutes les 10 minutes |
👉 Si tu lances tous tes tests après chaque run, tu perds du temps et des ressources, surtout pour les sources qui ne changent pas souvent.
✅ Solution : Layered Testing + planning par source
🔁 Layered testing (tests par couches) signifie :
| Couche de test | Description |
|---|---|
| 🔹 Source-level | Vérifie que les données brutes sont correctes (freshness, not_null, accepted_values sur les sources) |
| 🔸 Staging-level | Vérifie les transformations simples (formatage, mapping, etc.) |
| 🔺 Business-level | Vérifie les KPIs, ratios, calculs métiers dans les modèles finaux (fct_, mart_, etc.) |
⏱️ Planning par source (source-specific schedules)
Tu peux configurer ton pipeline CI/CD ou orchestrateur (Airflow, dbt Cloud, Dagster…) pour :
- exécuter les tests CRM toutes les heures
- exécuter les tests ERP seulement après 3h du matin
- exécuter les tests Web toutes les 15 minutes
📁 Exemple d’organisation dans dbt Cloud ou Airflow
| Schedule | Sélecteur dbt | Contenu du test |
|---|---|---|
| Toutes les 15 min | source:ga4 + tag:web | Tests freshness et not_null sur stg_web_events |
| Toutes les heures | source:crm + tag:clients | Tests stg_clients, dim_clients |
| Chaque nuit (3h30) | source:erp + tag:finance | Tests stg_factures, fct_resultats |
🔍 Avantages de cette stratégie
| Bénéfice | Détail |
|---|---|
| 🎯 Tests ciblés | Tu testes uniquement ce qui a été mis à jour |
| ⚡ Meilleure performance | Tu évites de lancer des centaines de tests inutilement |
| 🧩 Meilleure traçabilité | En cas d’erreur, tu sais quelle couche ou quelle source est en cause |
| 🔒 Couverture complète | Tu gardes un haut niveau de qualité sans sacrifier les performances |
✅ Résumé
En combinant des tests organisés par couches (layered) avec des plannings adaptés à chaque source, tu obtiens une stratégie de validation robuste, performante et maintenable dans dbt.
Tu testes au bon moment, au bon endroit, avec une logique claire d’impact et de responsabilité.