BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN
description
Transcript of BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN
![Page 1: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/1.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/2.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/3.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/4.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/5.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/6.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/7.jpg)
#JSS2013
BI AgileOù
![Page 8: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/8.jpg)
#JSS2013
• TestsBI Agile
![Page 9: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/9.jpg)
#JSS2013
• TEST• DRIVEN• DEVELOPMENT
TDD
![Page 10: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/10.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/11.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/12.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/13.jpg)
#JSS2013
• Le mantraTDD RE
D
REFACTOR
GREEN
TDD
![Page 14: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/14.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/15.jpg)
#JSS2013
DbFIT
![Page 16: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/16.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/17.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/18.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/19.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/20.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/21.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/22.jpg)
#JSS2013
demo
![Page 23: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/23.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/24.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/25.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/26.jpg)
#JSS2013
• Programmes– USP
– Conformité et comportement attendu
DbFIT
![Page 27: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/27.jpg)
#JSS2013
• SSIS Fixture– InspectSsis– SSISDtsConfig– ExecuteSsisWithConfig
DbFIT
![Page 28: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/28.jpg)
#JSS2013
• SSRS Fixture– ReportService– Report
DbFIT
![Page 29: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/29.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/30.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/31.jpg)
#JSS2013
• Merci de votre attention
![Page 32: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/32.jpg)
#JSS2013
Q & R
![Page 33: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/33.jpg)
#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](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/34.jpg)
#JSS2013
Merci à nos sponsors
![Page 35: BI Agile :Le TDD avec DbFIT et IC avec TFS Damien MARESMA Arnaud VOISIN](https://reader033.fdocument.pub/reader033/viewer/2022051403/56816977550346895de165ba/html5/thumbnails/35.jpg)
#JSS2013#JSS2013