Pourquoi et comment automatiser les tests d'une solution BI? Ce slide deck met en avant les possibilités diverses et variées du framework NBi et explique comment réussir son automatisation des tests.
4. Agenda
Pourquoi automatiser les tests?
Tests de requêtes Sql/Mdx/Dax
Tests pour packages SSIS
Tests spécifiques à SSAS
Automatisation de la création de test-suites
SQLSaturday 323 – Paris 2014
5. Etat des pratiques
Réalise des développements BI
Intègre une activité de testing (hors power-users
ou utilisateurs finals)
Teste davantage que les points-clés lors de
chaque release
Possède une test-suite formelle à haute
couverture
Possède une test-suite automatisée à haute
couverture
SQLSaturday 323 – Paris 2014
6. Activités de tests
Ecriture d’une test-suite
Activité intellectuelle
Une itération
Exécution d’une test-suite
Activité manuelle
Multiples itérations
SQLSaturday 323 – Paris 2014
7. Pourquoi faut-il automatiser les tests?
Temps nécessaire pour l’exécution d’une test-suite
Manuelle
Automatisée
1.0 1.1 1.2 1.3 1.4 1.5
Temps nécessaire
Release
SQLSaturday 323 – Paris 2014
Croissance
exponentielle
Augmentation:
- d’objets à tester
- de regressions
8. Pourquoi n’automatisons-nous pas les
tests?
Temps nécessaire pour l’écriture d’une test-suite
1.0 1.1 1.2 1.3 1.4 1.5
Temps nécessaire
Release
SQLSaturday 323 – Paris 2014
Manuelle
Automatisée
Mur initial
9. Comment limiter le mur initial?
Définir l’effort de tests à automatiser
Utiliser des frameworks existants
C’est là qu’entre en jeu NBi!
SQLSaturday 323 – Paris 2014
10. Fils conducteurs de NBi
Pas de programmation/compilateur
Syntaxe Xml
Analyse détaillée lorsqu’un test échoue
Aide à la comparaison des résultats
SQLSaturday 323 – Paris 2014
11. Framework NBi
Open-Source
Pas de licences à payer
Accès au code-source
Maturité de 2,5 ans
Activement maintenu
Une release par trimestre
Support via forum
Télécharger sur http://nbi.codeplex.com
SQLSaturday 323 – Paris 2014
12. Agenda
Pourquoi automatiser les tests?
Tests de requêtes Sql/Mdx/Dax
Tests pour packages SSIS
Tests spécifiques à SSAS
Automatisation de la création de test-suites
SQLSaturday 323 – Paris 2014
13. Structure des tests
Fichier Xml
System-under-test
L’objet que l’on veut tester
Assert
Le test qu’on veut lui faire subir
SQLSaturday 323 – Paris 2014
14. Comparaison de résultats de queries
System-under-test Assert
Cube et data
MDX warehouse
…Ou toute autre combinaison …
SQLSaturday 323 – Paris 2014
Previous
release
Deux releases d’un
même data warehouse
(non-regression)
Solution Tabular vis-à-vis d’un
fichier de résultats connus
DAX
15. Démo: comparaison de requêtes
Comparaison cube/base de données
opérationnelle
Bases
Comparaison cube/fichier plat
Connexions par défaut
Tolérance
Intervalles
SQLSaturday 323 – Paris 2014
16. Autres tests SQL/SSAS
Performance d’une requête
Exécuté en moins de x seconds
Gestion du cache
Syntaxe d’une requête
SQLSaturday 323 – Paris 2014
17. Démo: Intégrer avec SSRS
Récupérer la requête depuis
le fichier rdl
La base de données ReportServer
Définir les paramètres de la requête
SQLSaturday 323 – Paris 2014
18. Toujours plus de tests SQL/SSAS
Format de cellules dans un résultat
Expl: toutes les cellules ont bien maximum 3
chiffres après le séparateur de décimal (,)
SQLSaturday 323 – Paris 2014
19. Autres tests SQL/SSAS
Vérifier la logique par ligne d’un résultat
Expl: Calcul du prix total à partir du prix unitaire,
de la quantité et d’un pourcentage de réduction.
La logique est appliqué à chaque ligne
Si une ligne échoue le test est en échec.
SQLSaturday 323 – Paris 2014
20. Agenda
Pourquoi automatiser les tests?
Tests de requêtes Sql/Mdx/Dax
Tests pour packages SSIS
Tests spécifiques à SSAS
Automatisation de la création de test-suites
SQLSaturday 323 – Paris 2014
21. Démo SSIS (Setup/Cleanup)
Tester le statut de l’exécution d’un ETL
Tester les effets de l’exécution d’un ETL
(résultat)
Setup
Charger la table source
Vider la table de destination
Lancer l’ETL
SQLSaturday 323 – Paris 2014
22. Agenda
Pourquoi automatiser les tests?
Tests de requêtes Sql/Mdx/Dax
Tests pour packages SSIS
Tests spécifiques à SSAS
Automatisation de la création de test-suites
SQLSaturday 323 – Paris 2014
23. Tests spécifiques à SSAS (Membres)
Tests de membres d’une dimension
“GUSS” apparait bien comme membre de la
dimension “SQL User Group”
La dimension “SQL User Group” comprend plus
de 150 membres.
Tous les membres de cette dimension ont bien un
label compris entre 4 et 8 lettres …
Les membres de la hiérarchie “date” sont
ordonnés chronologiquement
…
SQLSaturday 323 – Paris 2014
24. Tests spécifiques à SSAS (Structure)
Tests de structure
Vérifier que cette dimension, hiérarchie, mesure,
… est visible pour l’utilisateur final dans une
perspective donnée.
Vérifier qu’il existe une relation entre tel groupe
de mesure et telle dimension.
SQLSaturday 323 – Paris 2014
25. Agenda
Pourquoi automatiser les tests?
Tests de requêtes Sql/Mdx/Dax
Tests pour packages SSIS
Tests spécifiques à SSAS
Automatisation de la création de test-suites
SQLSaturday 323 – Paris 2014
26. Automatiser la création de test-suite
Certains tests (structure – membres) sont
très répétitifs
Il est possible d’automatiser la génération de
ces tests!
Genbi est distribué avec NBi
SQLSaturday 323 – Paris 2014
27. Principes de base de Genbi
Une liste de test-cases
Depuis un fichier CSV ou une requête SQL
Un template
Structure du test (balises xml)
Des emplacements où insérer les éléments du
test-case
SQLSaturday 323 – Paris 2014
28. Concepts de Genbi
Fichier
chargé
Variables à remplacer dans Genbi
par le contenu d’un
test-case
SQLSaturday 323 – Paris 2014
29. Démo de Genbi
Chargement de test-cases
Depuis un fichier CSV
Depuis une requête SQL
Choix du template
Génération du fichier de tests (.nbits)
SQLSaturday 323 – Paris 2014
30. Automatiser encore plus?
Utiliser des macros pour remplacer les
actions manuelles dans Genbi!
C’est possible avec le langage genbiL
Un fichier genbiL qui contient la liste des actions
Lancer Genbi avec comme paramètre le fichier
genbiL
On obtient notre test-suite!
SQLSaturday 323 – Paris 2014
31. Exemple de macro genbiL
Sujet Action paramètres
SQLSaturday 323 – Paris 2014
32. Démo de genbiL
Ligne de commande
Via l’interface graphique
SQLSaturday 323 – Paris 2014
33. Conclusions
Gain en automatisant les tests
De temps (Time-on-market)
De qualité
NBi
Supporte un très large panel de tests
Pas besoin de compilateur Syntaxe Xml
Bonne analyse des tests en échec
Open-Source
Possibilité d’automatiser la génération de tests
(Genbi / genbiL)
SQLSaturday 323 – Paris 2014
34. Plus d’infos
Site web: http://nbi.codeplex.com
Téléchargement
Documentation
Bugs/Wishes list
Support
Blog: http://seddryck.wordpress.com
Twitter: @Seddryck
SQLSaturday 323 – Paris 2014