La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

BI Agile : Le TDD avec DbFIT

Présentations similaires


Présentation au sujet: "BI Agile : Le TDD avec DbFIT"— Transcription de la présentation:

1

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

3 WAISSO CRM et Marketing : Base de données :
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 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 Waisso est une société de conseil et d’expertise, qui propose 5 domaines d’intervention : Le marketing et le CRM, pour lesquels nous proposons des missions de MOA et d’AMOA, ce conseil et d’accompagnement des métiers, et de mise en œuvre de solutions basées sur Microsoft Dynamics CRM pour les équipes commerciales, et sur Adobe Campaign – Neolane pour la gestion de campagnes marketing Le décisionnel et le collaboratif, offres sur lesquelles nous intervenons en expertise, en conseil et en intégration, sur toutes les phases d’un projet, du cahier des charges à la mise en production, en passant par le développement et l’intégration Les bases de données, et plus particulièrement SQL Server. Nous intervenons en missions longues aussi bien qu’en missions d’audit et d’expertise. Nous accompagnons les développeurs dans les phases de développement et d’optimisation, nous réalisons des missions de migration et de mise en place d’architecture, ainsi qu’en conseil. Waisso est composée d’une équipe de 35 personnes. Les consultants BI et SQL Server sont dans la majorité certifiés MCSA et MCSE sur SQL Server Depuis 2012, WAISSO est LA société de référence sur SQL Server chez Microsoft, en étant désigné comme V-TSP sur le domaine de compétences Data Platform. Enfin, Waisso a été sélectionnée pour participer aux premières formations « Train The Trainer » sur SQL Server 2014, à Redmond.

4 Agenda BI Agile DbFIT ALM : IC avec Team Fondation Service TDD
IC : Intégration continue ALM : Application Life Management

5 BI Agile La méthodologie Agile dans le secteur de l’IT
Les chiffres sur les projets 48% des projets de développement et de test sont externalisés mais environ ¼ échouent... (08/2013-cabinet Vanson Bourne) Méthodologie Agile de plus en plus répendue A la fois méthode de gestion de projet et d’équipe Et pratique de développement de code de qualité et facile à livrer

6 BI Agile Ce qu’il y a à tester ? ODS ETL (ODS vers SAS) MàJ, Fusion
ETL (SAS vers Cible) L’entrepôt de données Traitements OLAP Rendu, Présentation Ken Collier Agile analytics 1)Operational databases. Generally the operational systems are running in production by the time data warehouse development begins. However, these systems should also undergo test-driven development during their development cycles. For systems already in production I encourage the use of test-driven development for new revisions and bug fixes. 2)Data update code. The ETL scripts that extract data from operational systems into the staging database must be validated. These scripts typically run on a nightly basis and include slowly changing dimension type 1 and type 2 updates. 3)Data preparation code. The code used for data merge/purge, cleansing, preparation, and processing in the staging database. 4)Data transformation code. The ETL scripts used to extract data from the staging database and transform it into the multidimensional database schema of the presentation database (e.g., star schema). 5)Data derivation code. The code or scripts used within the multidimensional presentation database for further data transformations and derivations (e.g., data mining scoring). 6)Data access layer code. Any customized server-side applications that are responsible for providing user access to the data in the warehouse. This includes OLAP cube specification code, deployed analytical models, and others. 7)BI application code. The customized client-side applications that present data to end users and enable end users to query the data warehouse. Administrative application code. There may additionally be a warehouse administrator interface application (not in the diagram) that must be tested as well.

7 BI Agile Quatre environnements ( Développeur, Intégration, Preview-Pre-Production et Production), Quatre typologies de tests

8 BI Agile Tests Q1 : environnement Développeur vue précédement
Q2 : environnement d’Intégration Q3 : Preview – Pre-Production Q4 : Production

9 TDD TEST DRIVEN DEVELOPMENT Question Twitter !

10 TDD Le Test Astuce : Given, When, Then
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 C’est un formalisme pour etablir des scenarii de test GIVEN : Pour les paramètres ou dans un contexte donnée WHEN : Quand je projette, fait quelque chose THEN : Voici le résultat que j’attend

11 TDD 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

12 TDD Ecrire le test qui échoue Modifier le code
Vérifier que tous les tests réussissent Loi 1 : les premiers Test vérifient la connexion au catalogue, la structure de données, la présence du programme Loi 2 : Un seul test, une seule fonctionnalité à la fois Loi 3 : Ecrire seulement le code nécessaire au succès du test en cours et des précédents. Le TDD n’est pas magique, ce n’est pas une religion, il ne vous garanti pas un code zéro défaut, vous ne serai pas à l’abri d’écrire un mauvais test, ou d’un mauvais code. Le but du TDD est d’écrire du code propre, ses bénéfices : Meilleur design du code, seulement le nécessaire Meilleure détection des défauts (plutôt durant la phase de développement) Moins de défaut livré en production Meilleure disciple, et développement orienté sur la qualité

13 TDD TDD RED Le mantra GREEN REFACTOR Red : Ecrire un test qui échoue
Green : Faire que le code marche et passe le test Refactor : Eliminer la redondance de code, simplifier, normaliser

14 TDD ATDD Acceptance-test-driven development Test-driven development
Echouer au test d’approbation Code ATDD Implémenter le(s) test(s) Test Ré-usinage Définir les conditions de satisfaction Nouvelle Itération Acceptance-test-driven development Test Choisir une user story Test-driven development Ré-usinage Code Approbation Client Test Acceptante test-driven development à ne pas confondre Ré-usiner le test Réussir les tests d’approbation Ré-usinage Code

15 DbFIT DbFit mais au-delà FIT et Fitnesse sont la contribution Open Source des signataires du manifeste agile.

16 DbFIT FIT : Framework for Integrated Test
Développé par Ward Cunningham (fit.c2.com) FIT testing framework,. FIT est environnement de test d’approbation ou acceptance testing framework Developpé par Ward Cunningam, Sa force c’est ça simplicité à formaliser des cas de test Qui est orienté Client et n’a rien à voir avec les tests unitaires de base de données. Mais les test FIT sont décris comme des tableaux, ce qui le rapproche plus du monde relationnel que des langage objet.

17 DbFIT 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 FIT est accompagné d’un sympatique Site Wiki nommé FitNesse, Qui permet aux développeur BI d’écrire des tests sans l’aide de méthode .Net en VB ou Csharp . Qui permet aux personnes extérieures au code de comprendre les test (pas de code XML à lire) Et DbFit utilises la puissance de ces deux outils pour rendre le test des bases des données, et autre, encore plus facile

18 DbFIT 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

19 DbFIT Fixtures Les commandes de bases Query Insert Update
Execute Procedure Execute Inspect Store Query Compare Stored Queries Transaction Control Jeux de commande qui s’executent directement sur la base de donnée, sans ingérence

20 DbFIT 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

21 DbFIT 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 Reflexe de développement BI : Factoriser les projections au moyen de Fonction Table ou de Vue Pensez grand, commencer petit

22 Commencer petit

23 DbFIT Fixture nécessaire Template de test
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 Template : capitaliser sur l’expérience et les modèles de plan de test déjà utilisé par le passé. Il faut s’appuyer les méta-données, (Table INFORMATION_SCHEMA) pour contrôler la description des objets (Tables, Vue, Fonction), signature(paramètres), etc …

24 DbFIT Démarrage de FitNesse
Téléchargement sur Pré requis : SQL Server Data Tools BI et JVM RE Lancer le fichier bat ou une ligne de commande à la racine du dossier dbFit. java -jar lib\fitnesse-standalone.jar -p e 0 –o FitNesse (v ) Started... port: 8085 root page: fitnesse.wiki.FileSystemPage at ./FitNesseRoot logger: none authenticator: fitnesse.authentication.PromiscuousAuthenticator Page factory: fitnesse.responders.PageFactory Page theme: fitnesse_straight page version expiration set to 0 days. À l’itération zéro, l’environnement de développement du développeur est configuré : Intégration plugin du gestionnaire de source Utilitaires de développement, raccourcis clavier Dans Visual Studio on ajoute dans le menu Outil la commande pour lancer le .Bat de dbFit On ajoute également l’url par défaut de fitnesse pour ouvrir automatiquement FitNesse depuis une fenêtre « Navigateur Web » de VS.

25 DbFIT Se connecter au wiki http://localhost:8085
Depuis VisualStudio pour les développeurs Depuis un Navigateur (IE, Chrome) pour le Scrum Master et/ou Product Owner. Le wiki est un outil de communication, qui facilite les échanges et le suivi de l’avancement des développeurs.

26 DbFIT

27 DbFIT JumpStart Création de Page
En PascalCase dans la barre d’addresse tapper LesJournéesSqlServer

28 DbFIT L’editeur

29 DbFIT La configuration du Dossier Racine
!***< default configuration !define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer %p} !define TEST_RUNNER {fitsharp\Runner.exe} !define PATH_SEPARATOR {;} !path fitsharp\*.dll *! !img files\images\JSS2013.jpg À ajouter dans la première page, faire correspondre ensuite l’arborescence Wiki avec l’arborescence Solution VisualStudio Projet base de données : Solution(Racine)>Schemas>TypeDObjet>Objet Etc …

30 DbFIT L’ajout de media

31 DbFIT La page de SetUp (Attention à la casse) |import |
|dbfit.fixture | !|dbfit.SQLServerTest| !|Connect|Data Source=localhost;Initial Catalog=JSS2013;Integrated Security=True;| !define pipe {!-|-!}

32 DbFIT Hello World

33 DbFIT !|Query|SELECT ’world' as Hello| |Hello| |world|

34 DbFIT RED

35 DbFIT GREEN Prochaine étape je REFACTOR : identation, renommage de variable, COMMENTAIRE !, Niveau d’Isolation, RowCount, Index, etc …

36 DbFIT Le script Hello Word
C:\Users\dmaresma\Source\Repos\JSS2013\dbfit\FitNesseRoot\LesJourneesSqlServer\HelloWorld

37 DbFIT 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

38 DbFIT Schémas Schéma Table UDF
Suivi et non régression du schéma, signatures

39 DbFIT Programmes USP Conformité et comportement attendu
Copier Coller entre Excel et FitNesse Tester de manière ensembliste, projeter un champ pour une plage de données de test, itération suivante on ajoute un champ pour une nouvelle plage de valeur.

40 DbFIT SSIS Fixture InspectSsis SSISDtsConfig ExecuteSsisWithConfig

41 DbFIT SSRS Fixture ReportService Report

42 ALM (TFS) Liéer un test xUnit à l’appel du WebService FitNesse :
MyDbSuite 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é "); } Content <xml> <> </xml> MyDbTest Testing À chaque Build la solution va jouer le projet de test unitaire Xunit qui va solliciter FitNesse à la manière d’un webservice et jouer l’ensemble des tests unitaires et d’acceptance content.txt properties.xml

43 Leçons 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 !

44 Merci de votre attention

45 Q & R

46 Références BI Agile TDD Etudes 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 Red : Ecrire un test qui échou Green : Faire que le code marche et passe le test Refactor : Eliminer la redondance de code, simplifier, normaliser

47 Merci à nos sponsors

48


Télécharger ppt "BI Agile : Le TDD avec DbFIT"

Présentations similaires


Annonces Google