-
Notifications
You must be signed in to change notification settings - Fork 2
5. Stratégie de test KraftwerK
src/test/resources/unit_tests
/data |
Fichiers de données générés pour tester unitairement les parsers. |
/data/lunatic_json |
Format Lunatic en .json. |
/data/lunatic_xml |
Format Lunatic en .xml. |
/data/paper |
Format papier (.csv). |
/data/xforms |
Format xforms (.xml). |
/dii |
DDI de tests pour Kraftwerk (vide pour l'instant, on utilise les DDI des tests fonctionnels). |
/out |
Poubelle pour les tests unitaires qui ont besoin d'écrire des fichiers. |
/paradata |
Paradonnées pour les tests unitaires. |
/reporting_data |
Données de suivi pour les tests unitaires. |
/user_inputs |
Fichiers de config utilisateur. Plusieurs cas de fichiers valides / invalides. |
/utils |
Fichiers pour tester les classes utilisaire. |
/utils/xslt |
Scripts pour tester l'exécution du XSL depuis Kraftwerk. |
/variables_xml |
Fichiers issus du passage du XSLT dédié sur des DDI. |
/vtl_scripts |
Divers scripts VTL. |
src/test/resources/features
Description en Gherkin des scénarios à tester via Cucumber.
src/test/resources/functional_tests
/in |
Équivalent du dossier /in de l'application en main. |
/out |
Équivalent du dossier /out de l'application en main. |
Rappel : mode d'exécution de kraftwerk : une campagne =
- Un dossier dans le in/ dont le nom sera interprété comme étant le nom de la campagne en question. Ce dossier contient les données (d'enquête, de suivi, paradonnées) et métadonnées + les fichier de configuration de l'utilisateur.
- Un dossier dans le out/, généré par Kraftwerk si inexistant, avec le nom de la campagne
Cucumber est un framework de tests pour le "Behavior Driven Development" qui permet de générer des tests fonctionnels simulant des scénarios d'utilisation d'une application.
Cucumber permet de transformer les scénarios d'une histoire en tests java automatisés, s'appuyant sur une suite de tests unitaires Junit qu'il orchestre.
Chaque étape d'un scénario est implémentée comme une méthode Java, appelée step. Le lien entre la description textuelle de l'étape et le code Java de la step est réalisé via des annotations.
Chaque "brique" de l'application peut donc être testée grâce à un scénario d'utilisation, via Cucumber.
Les tests fonctionnels de Kraftwerk utilisant des données anonymisés sont stockées dans le module kraftwerk-functional-tests
On teste la bonne application des spécifications VTL sur un dataset présent dans les bindings grâce à deux tests :
- le premier test permet de vérifier d'une simple instruction sera bien appliquée au dataset.
- le second test permet de vérifier qu'on peut appliquer plusieurs instructions et qu'un script complet sera bien appliqué au dataset.
On teste l'export et l'import des datasets grâce à ce test. L'export et l'import sont testés en même temps, puisque le but ici est de confirmer qu'on convertit bien un dataset JSON en un dataset VTL. Le test fonctionnel Kraftwerk permet de vérifier qu'un dataset est bien récupéré et enregistré sans erreurs dans les bindings (ce qui garantit la structure des données) ainsi qu'une partie de leur contenu.
On teste l'agrégation des datasets grâce à ce test. L'agrégation se basant sur un script généré automatiquement en VTL, on teste le résultat final (nombre de variables du DDI, nombre d'observations, tests sur une variable particulière, ...).
Actuellement, on ne teste pas la bonne application d'un script VTL pendant l'agrégation.
D'autres tests sont décrits en interne (voir projet Gitlab)
Jeux de données pour les tests fonctionnels
Nom de la campagne | Description |
---|---|
LOG-2021-t01 | Enquête logement, premier test de juillet 2021. Données web, paradonnées + un échantillon de données de suivi. |
LOG-2021-x01 | Test '0' pour la séquence 1 web. Données web + paradonnées. |
LOG-2021-x12 | Test '1' pour la séquence 2 web. Données web. |
LOG-2021-x21 | Test '2' pour la séquence 1 web. Données web. |
LOG-2021-x22 | Test '2' pour la séquence 2 web. Données web. |
SIMPSONS-v1 | Enquête de test Simpsons, première mouture. Données xforms et papier. |
SIMPSONS-v2 | Enquête de test Simpsons, seconde mouture. TODO : générer des fichiers de données. |
TIC-2021-a00 | Enquête TIC 2021. Pas de données car pas anonymisées. |
TIC-2021-a00 | Enquête VQS 2021. Données réelles d'enquête anonymisées. Formats Xforms (enquête web) et papier. |