bi agile :le tdd avec dbfit et ic avec tfs damien maresma arnaud voisin

35
#JSS2013 es journées SQL Server 2013 n événement organisé par GUSS

Upload: vail

Post on 24-Mar-2016

36 views

Category:

Documents


4 download

DESCRIPTION

BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN. WAISSO. CRM et Marketing : Etude de cadrage Cahier des charges Développement d’ add-on Intégration MS Dynamics Intégration Neolane Gestion de la qualité des données . Base de données : Audit et expertise - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

Les journéesSQL Server 2013

Un événement organisé par GUSS

Page 2: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

Les journéesSQL Server 2013

Un événement organisé par GUSS

BI Agile :Le TDD avec DbFIT et IC avec TFS

Damien MARESMAArnaud VOISIN

Page 3: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

WAISSOBase de données : • Audit et expertise • Optimisation du code• Tuning de serveur• Mise en haute-disponibilité• Projet technique• Projet d’infrastructure• Migration• Délégation de DBA

Décisionnel et Collaboratif : • Audit et expertise technique• Etude de cadrage• Création de datamart client• Intégration MS BI (SSIS, SSAS,

SSRS…)• Intégration SharePoint• TMA

CRM et Marketing : • Etude de cadrage• Cahier des charges• Développement

d’add-on• Intégration MS

Dynamics• Intégration Neolane• Gestion de la qualité

des données

Page 4: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• BI Agile– TDD

• DbFIT• ALM : IC avec Team Fondation Service

Agenda

Page 5: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• La méthodologie Agile dans le secteur de l’IT

• Les chiffres sur les projets48% des projets de développement et de test sont externalisés mais environ ¼ échouent...(08/2013-cabinet Vanson Bourne)

BI Agile

Page 6: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Ce qu’il y a à tester ?1. ODS2. ETL (ODS vers SAS)3. MàJ, Fusion4. ETL (SAS vers Cible)5. L’entrepôt de données6. Traitements OLAP7. Rendu, Présentation

BI Agile

Page 7: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

BI AgileOù

Page 8: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• TestsBI Agile

Page 9: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• TEST• DRIVEN• DEVELOPMENT

TDD

Page 10: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Le Test– Il vérifie une nouvelle fonctionnalité ou qui a été

changé.– Il est indépendant des autres tests.– Il vérifie un seul aspect ou comportement et

documente le comportement attendu– Il ne doit pas vérifier trop de fonctionnalité

• Astuce : Given, When, Then

TDD

Page 11: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Les 3 lois du TDD– 1. Vous ne devez pas commencer à écrire de

code tant que vous n’avez pas écrit un test unitaire qui échoue

– 2. Vous devez écrire le test suffisant pour échouer.

– 3. Vous ne devez pas écrire plus de code que nécessaire pour la réussite du test qui est en cours

TDD

Page 12: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

TDD Ecrire le

test qui

échoue Vérifier

que tous les

tests réussiss

ent

Modifier le code

Page 13: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Le mantraTDD RE

D

REFACTOR

GREEN

TDD

Page 14: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• ATDDTDD

Test

Code

Ré-usina

ge

Ré-usina

ge

Test

Code

Ré-usina

ge

Test

Code

Test-driven development

Approbation

Client

Choisir une user

story

Définir les conditions

de satisfaction

Implémenter le(s)

test(s)

Echouer au test

d’approbation

Acceptance-test-driven development

Nouvelle

Itération

Ré-usiner le test

Réussir les tests

d’approbation

Page 15: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

DbFIT

Page 16: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• FIT : Framework for Integrated Test – Développé par Ward Cunningham (fit.c2.com)

DbFIT

Page 17: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• FitNesse = (FIT + Wiki) fitnesse.org– Développé par Robert (Uncle Bob) Martin– Un site wiki autonome, facilement distribuable– Sans base de données– Une hiérarchie de dossiers et de fichiers– La communauté est très importante

DbFIT

Page 18: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• DbFIT– Un aménagement ou fixtures de FIT dans

FitNesse pour les bases de données– Développé par Gojko Adzic, et maintenant

supporté par Jake Benilov– En version 2 depuis Octobre 2013– FitSharp est l’implémentation en .Net

DbFIT

Page 19: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Fixtures– Les commandes de bases

• Query• Insert• Update• Execute Procedure• Execute• Inspect• Store Query• Compare Stored Queries• Transaction Control

DbFIT

Page 20: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Projet « AdventureWorksCredit »– Sprint n°5• User Story

– Simulation de plan d’amortissement• Test d’approbation :

– Appel d’une procédure stockée– Résultats conforme au classeur Excel

DbFIT

Page 21: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Le Développeur Agile– L’architecture de son programme (nombres

d’objet)• Une procédure stockée avec paramètres

– Va projeter le résultat pour chaque paramètres– Depuis une in-line function de calcul

• Une in-line function de calcul d’amortissement fixe avec paramètres

DbFIT

Page 22: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

demo

Page 23: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Fixture nécessaire– Query

• Template de test– Est-ce que l’objet(programme) existe déjà ?– Est-ce que les paramètres sont définis ?– Est-ce la projection attendu comporte 8 champs– Quel est la description des données projetées

• Estimation 10 itérations en TDD

DbFIT

Page 24: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• DbFit en Action• Tester quoi, par où commencer ?

– Schémas• Suivi et non régression du schéma, signatures

– Programmes• Conformité et comportement attendu

– SSIS• La source de données• Le résultat de l’alimentation (les Transformations et Chargement)

– SSRS• Projection d’extraction de données• Calcul à l’intérieurs des rapports

– SSAS : avec OPENROWSET

DbFIT

Page 25: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Schémas– Schéma– Table– UDF

– Suivi et non régression du schéma, signatures

DbFIT

Page 26: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Programmes– USP

– Conformité et comportement attendu

DbFIT

Page 27: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• SSIS Fixture– InspectSsis– SSISDtsConfig– ExecuteSsisWithConfig

DbFIT

Page 28: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• SSRS Fixture– ReportService– Report

DbFIT

Page 29: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

ALM (TFS)

Content

<xml>

<></

xml>

Testingcontent.txt

properties.xml

MyDbSuite

MyDbTest

Liéer un test xUnit à l’appel du WebService FitNesse : [TestClass] public class dbFitCITest { [TestMethod] public void ProjetBaseDeDonnee() {

var xml = XElement.Load("http://localhost:8085/LesJourneesSqlServer.ProjetBaseDeDonnees?suite&format=xml"); var results = ( from c in xml.Elements("finalCounts") select new { right =c.Element("right").Value, wrong = c.Element("wrong").Value, ignores = c.Element("ignores").Value, exceptions = c.Element("exceptions").Value}).First(); Assert.AreEqual(true,results.wrong.Equals("0"),string.Format("Il y a {0} test en échec, {1} en exception, {2} ignoré(s) et {3} passé(s)",results.wrong,results.exceptions,results.ignores, results.right )); Assert.AreEqual(false,xml.IsEmpty, "Aucun test ne semble avoir été joué ");

} }

Page 30: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Rendre les requêtes plus facile à maintenir– A Encapsuler dans des VIEW et des UDF

• Limité le périmètre de chaque page– Des données de test simples et pertinente– Facile à comprendre et à maintenir

• Constamment revoir le périmètre du test– S’assurer de l’adéquation des tests avec la réalité du

métier• Ça Marche !

Leçons

Page 31: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• Merci de votre attention

Page 32: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

Q & R

Page 33: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

• BI Agile – Agile Analytics (Ken Collier)– Refactoring Databases : EDD (Scott Ambler )

• TDD– TDD : By Example (Kent Beck )– The Clean Coder (Robert [Uncle Bob] Martin)

• Etudes– Nagappan 2008

http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf

Références

Page 34: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013

Merci à nos sponsors

Page 35: BI Agile :Le TDD avec DbFIT  et IC avec TFS Damien MARESMA Arnaud VOISIN

#JSS2013#JSS2013