34
SQLSaturday 323 Paris 2014 Automatiser les tests des développements BI grâce à NBi Cédric L. Charlier

Automatiser les tests des développements BI grâce à NBi

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Automatiser les tests des

développements BI grâce à NBi

Cédric L. Charlier

Page 2: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Sponsors Gold

Page 3: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Sponsors Silver et Bronze

Page 4: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 5: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 6: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 7: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Pourquoi faut-il automatiser les tests?

1.0 1.1 1.2 1.3 1.4 1.5

Tem

ps n

écessaire

Release

Temps nécessaire pour l’exécution d’une test-suite

Manuelle

Automatisée

Croissance

exponentielle

Augmentation:

- d’objets à tester

- de regressions

Page 8: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Pourquoi n’automatisons-nous pas les

tests?

1.0 1.1 1.2 1.3 1.4 1.5

Tem

ps n

écessaire

Release

Temps nécessaire pour l’écriture d’une test-suite

Manuelle

Automatisée

Mur initial

Page 9: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Comment limiter le mur initial?

Définir l’effort de tests à automatiser

Utiliser des frameworks existants

C’est là qu’entre en jeu NBi!

Page 10: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Fils conducteurs de NBi

Pas de programmation/compilateur

Syntaxe Xml

Analyse détaillée lorsqu’un test échoue

Aide à la comparaison des résultats

Page 11: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 12: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 13: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Structure des tests

Fichier Xml

System-under-test

L’objet que l’on veut tester

Assert

Le test qu’on veut lui faire subir

Page 14: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Comparaison de résultats de queries

System-under-test Assert

Previous

release

Deux releases d’un

même data warehouse

(non-regression)

Cube et data

warehouseMDX

Solution Tabular vis-à-vis d’un

fichier de résultats connusDAX

…Ou toute autre combinaison …

Page 15: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 16: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Autres tests SQL/SSAS

Performance d’une requête

Exécuté en moins de x seconds

Gestion du cache

Syntaxe d’une requête

Page 17: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 18: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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 (,)

Page 19: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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.

Page 20: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 21: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 22: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 23: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 24: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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.

Page 25: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 26: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 27: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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

Page 28: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Concepts de Genbi

Fichier

chargé

dans GenbiVariables à remplacer

par le contenu d’un

test-case

Page 29: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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)

Page 30: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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!

Page 31: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Exemple de macro genbiL

Sujet Action paramètres

Page 32: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Démo de genbiL

Ligne de commande

Via l’interface graphique

Page 33: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

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)

Page 34: Automatiser les tests des développements BI grâce à NBi

SQLSaturday 323 – Paris 2014

Plus d’infos

Site web: http://nbi.codeplex.com

Téléchargement

Documentation

Bugs/Wishes list

Support

Blog: http://seddryck.wordpress.com

Twitter: @Seddryck