BI Agile : Le TDD avec DbFIT

Slides:



Advertisements
Présentations similaires
Présentation des technologies SharePoint 2007
Advertisements

Les technologies décisionnelles et le portail
Service Software Factory François MERAND Responsable groupe architectes DPE – Division Plateformes & Ecosystème Microsoft France
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Microsoft Office System Une opportunité pour les éditeurs de logiciels
Les Excel Services de Office 2007
Test et Développement Visual Studio Team System Eric Mittelette – Benjamin Gauthey – Yann Faure DevDays 2006 Equipé aujourdhui, prêt pour demain !
Expert Lotus DOMINO & Microsoft .NET
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Introduction aux fonctions de gestion de contenu Web dans Microsoft Office SharePoint Server 2007.
Excel 2007 et les services Excel. Pourquoi Excel ? Outil privilégié danalyse des données issues des bases multidimensionnelles Ergonomie connue des outils.
L’intégration continue
MySQL I / Présentation. II / Administration et Outils.
Design Pattern MVC En PHP5.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Présentation des frameworks pour Java EE
Copyright © 2004, SAS Institute Inc. All rights reserved. Processus Stockés SAS une perspective analytique Sylvain Tremblay SAS Canada 25 avril 2006.
Industrialisation des Dev. Avec SQL SERVER & VS/TFS Présent et futur
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Installation OpenBravo
Les outils d’intégration continue
10 ans de DBA Sham UNMAR Philippe PIMENTA. 10 ans de DBA Sham UNMAR Philippe PIMENTA.
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
Eric Vernié - Microsoft Yann Faure - Bewise Etude de cas FMStocks 2000.
Développement Rapide dApplications Web avec.NET « Mon premier site »
Tests unitaires et fonctionnels
3 Booster votre productivité avec VS 2010 Arnaud FontaineEric Le Loch Spécialistes Solutions de développement.
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
.Net Remoting.
TDD : avec ou sans Mocks ? Par Anthony Dahanne, Yannick Ameur,
Framework Play 2.0 Démonstration du proof of concept
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Module 8 : Maintenance des logiciels à l'aide des services SUS
•Présentation de Team Edition for Database Professionals •La méthodologie •Etude de cas.
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
Test logiciel Xavier Baril.
PHP & My SQL.
CSC All Reserved, Usinor Leading to Succes with CSC in the Business Intelligence Projects BW Petit Bateau 28 février 2002.
APPLETS. Applets : généralités Applet : application s'exécutant dans une page HTML Le ByteCode (fichiers.class) est téléchargé depuis un serveur. L'exécution.
Linq & les expressions lambda. L Language In Integrated Q Query.
Céline STAUDER 27 Octobre 2010
Introduction au développement Office 2007
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Tirer le meilleur parti d’Office /10/ Vincent Bippus IT/OIS 07 octobre 2014.
Créer des packages.
Combien envisagent d’utiliser SSMA pour migrer : OracleSybaseAccess.
Quand l’agilité n’est pas une option
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
La sécurité dans SQL Server 2005
Tech.days 2015#mstechdays Azure Machine Learning #mstechdays #mstechdays techdays.microsoft.fr.
Master 1 - SIGLIS SID Pentaho Stéphane Tallard Notes.
SciTools Understand A Source Code Analysis and Metrics Tool
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
Améliorer la performance des organisations en apportant à toutes les équipes la meilleure compréhension de leur activité pour des décisions plus rapides.
2 TFS Basic, en route vers L’ALM 08/02/2011 Alain MartyBenoit Laut ConsultantMVP ALM BewiseBewise.
Entity/Facet/Pattern Une application qui en a…
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
22 Lag110 : Le développement SharePoint 2010 avec Visual Studio 2010 Mardi 9 février 2010 Frédéric Wickert Partner Technical Specialist Microsoft.
Initiation au web dynamique Licence Professionnelle.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
Réunion de cadrage 3 10/02/10. Chef de projet Damien Responsabl e Qualité Laetitia Responsabl e Business Plan Fouad Responsable Développement Web Thibault.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
SQLSaturday Paris 2015 SSDT-DB pour les sceptiques! Cédric L. Charlier.
Transcription de la présentation:

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

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 2012. 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.

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

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

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.

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

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

TDD TEST DRIVEN DEVELOPMENT Question Twitter !

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

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

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é

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

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

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

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.

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

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

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

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

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

Commencer petit

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 …

DbFIT Démarrage de FitNesse Téléchargement sur http://benilovj.github.io/dbfit/ Pré requis : SQL Server Data Tools 2012 + 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 8085 -e 0 –o FitNesse (v20121220) 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.

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.

DbFIT

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

DbFIT L’editeur

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 …

DbFIT L’ajout de media http://localhost:8085/files/

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 {!-|-!}

DbFIT Hello World

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

DbFIT RED

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

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

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

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

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.

DbFIT SSIS Fixture InspectSsis SSISDtsConfig ExecuteSsisWithConfig

DbFIT SSRS Fixture ReportService Report

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

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 !

Merci de votre attention

Q & R

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 http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf Red : Ecrire un test qui échou Green : Faire que le code marche et passe le test Refactor : Eliminer la redondance de code, simplifier, normaliser

Merci à nos sponsors