Formation Extreme Programming, Tests unitaires, travail collaboratif

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    5 Favorites

    Formation Extreme Programming, Tests unitaires, travail collaboratif - Presentation Transcript

    1. Extreme Programming Tests unitaires Travail collaboratif Pierre de La Morinerie Junior ISEP 2007
    2. Programme de la formation
    3. Programme de la formation
      • L'Extreme Programming
        • Origine
        • Concepts et méthodes
        • Retours d'expérience
      • Les tests unitaires
        • Concepts
        • Mise en oeuvre
        • Les tests avec CakePHP ou SeleniumIDE
      • Le travail collaboratif
        • Problématiques
        • Outils : SVN, Make, Trac, etc
    4. L'Extreme Programming
    5. L'Extreme programming - introductio
      • Création
        • Inventé par Kent Beck et Ward Cunningham (wiki)
        • Octobre 1999 : publication de « Extreme Programming Explained » de Kent Beck
      • Définition
        • Méthode de gestion de projet informatique
        • Adapté aux équipes réduites et aux besoins changeants
        • Pousser à l'extrême des principes de bon sens
    6. L'Extreme programming - origine
      • XP est une méthode agile
    7. L'Extreme programming - concepts
      • Pousser à l'extrême des principes de bon sens
        • Mises en production fréquentes
        • Forte implication du client
        • Travail en équipe, programmation en binôme
        • Pilotage par tests unitaires
    8. L'Extreme programming - concepts
      • Mise en production fréquente
      • Cycles de deux semaines :
        • 1er jour : décision et planification
        • 2ème – 13ème jour : réalisation
        • 14ème jour : mise en production
      • Avantages :
        • Ne pas concentrer toute la décision en début de projet
        • Avancement visible
        • Souplesse et adaptation au budget
    9. L'Extreme programming - concepts
      • Forte implication du client
        • Fonctionnement :
          • Définit des « sénarios » de fonctionnement
          • Retour d'expérience fréquent
          • Eventuelle adaptation des priorités
        • Avantages :
          • Répondre au besoin plus qu'au contrat
          • Faire évoluer les demandes
          • S'adapter au changement
    10. L'Extreme programming - concepts
      • Travail en équipe
        • Méthodes :
          • Code en binôme
          • Responsabilité collective du code
          • Bonne communication, réunions fréquentes
          • Intégration continue
          • Conventions de codage
          • Rythme durable
    11. L'Extreme programming - concepts
      • Pilotage du projet par des tests
        • Fonctionnement :
          • Mise en place intensive de tests unitaires
          • Remaniement du code
          • Conception simple
        • Avantages :
          • Pas de régressions
          • Adaptabilité
    12. L'Extreme programming - valeurs
      • Résumé des valeurs fondamentales d'XP :
        • Communication
        • Retour d'expérience
        • Simplicité
        • Courage
    13. L'Extreme programming – retour d'expérience 1
      • 1/ Transition vers XP :
        • Société Design-up (développement logiciel)
        • Réécriture d'application de reporting télécom
        • Conditions peu favorables, délais serrés
        • Mise en place :
          • Problème de développeurs moins expérimentés
          • Temps de compilation rapides
          • Nécessité d'entente entre les développeurs
    14. L'Extreme programming – retour d'expérience 1
      • Mise en place :
        • Problème de développeurs moins expérimentés
        • Temps de compilation rapides
        • Nécessité d'entente entre les développeurs
      • Tests
        • Ecriture d'un environnement de tests fonctionnels
        • Tests parfois trop rigides
      • « Client sur site »
        • Client peu présent
        • Mais spécifications standards et détaillées
    15. L'Extreme programming – retour d'expérience 1
      • Première intégration
        • Détachement d'un développeur
        • Réalisations de tests pour l'application centrale du client
      • Intégration finale
        • Très peu de défauts
        • Intégration réussie
    16. L'Extreme programming – retour d'expérience 1
      • Résumé :
        • Sûreté fournie par les tests
        • Avancement motivant
        • Entente entre les développeurs primordiale
    17. L'Extreme programming – liens
      • Quelques liens pour se documenter plus :
        • Wikipedia- Extreme Programming
        • www.extremeprogramming.org
        • www.xp-france.net
        • www.design-up.com
    18. Tests unitaires
    19. Tests unitaires - concepts
      • Définition :
        • Un test unitaire permet de s'assurer automatiquement du fonctionnement d'une portion de code ou de programme
    20. Tests unitaires - concepts
      • Distinctions :
        • Tests unitaires :
          • Tester des méthodes particulières d'une classe
          • Éventuellement un enchaînement de méthodes
        • Tests fonctionnels :
          • Testent les fonctionnalités finales du produit
          • Vérifient le fonctionnement depuis l'extérieur, en simulant l'action de l'utilisateur
    21. Tests unitaires - concepts
      • Test Driven Development
        • Écriture des tests avant la réalisation du code
        • Approche utilisée par l'XP
        • Déroulement :
          • Écriture du test
          • Vérification de l'échec du test (puisque le code n'existe pas encore)
          • Écriture du code minimal
          • Vérification du passage du test
          • Refactoring du code
    22. Tests unitaires - concepts
      • Test Driven Development
        • Écriture des tests avant la réalisation du code
        • Approche utilisée par l'XP
        • Déroulement :
          • Écriture du test
          • Vérification de l'échec du test (puisque le code n'existe pas encore)
          • Écriture du code minimal
          • Vérification du passage du test
          • Refactoring du code
      • Dans tous les cas...
        • Écrire les tests en même temps que le code !
    23. Tests unitaires - concepts
      • Avantages des tests unitaires :
        • Éviter les régressions
        • Meilleure conception (placée du point de vue de l'utilisateur)
        • Confiance dans le code, refactoring aisé
      • Inconvénients :
        • Coûteux en temps
        • Parfois complexes à concevoir
        • Peut sembler peu utile : nécessité d'imaginer tous les cas de figure
    24. Tests unitaires – mise en oeuvre
      • Structure des fichiers :
        • Les tests peuvent être :
          • Des classes indépendantes
          • Directement intégrés dans la classe à tester
      • Structure des méthodes :
        • La plupart des tests contiennent :
          • Une méthode init(), exécutée au début de chaque test
          • Une méthode tearDown(), exécutée à la fin de chaque test
    25. Tests unitaires – mise en oeuvre
      • Frameworks :
        • Utiles pour automatiser les tests
        • Facilitent l'implémentation (méthodes d'assertion, etc)
      • Exemple de frameworks de tests :
        • JUnit pour Java
        • PHPUnit pour PHP
        • NUnit pour .NET
        • NUnitASP pour ASP.NET
        • CppUnit pour C++
    26. Tests unitaires – les tests avec CakePHP
      • Cake possède deux suites de tests :
        • CakePHP Testsuite (officiel)
        • CakeTaster (plus récent)
      • Bake.php peut générer des codes de tests
    27. Tests unitaires – les tests avec CakePHP
      • Cake 1.1 possède plusieurs suites de tests :
        • CakePHP Testsuite (officiel)
        • CakeTaster (plus récent)
        • Selenium IDE Helper
      • Bake.php peut générer des codes de tests
    28. Tests unitaires – les tests avec CakePHP
      • Les tests sont bien plus pratique avec Cake 1.2 (alpha)
        • Selenium IDE testsuite (cakebaker)
        • SimpleTest for CakePHP (cakebaker)
    29. Tests unitaires – les tests avec CakePHP
      • Constat :
        • Installation peu pratique
        • Pas (encore) de documentation
        • Quelques bogues
      • Mais :
        • Prometteur
        • Présence de fixtures simples à mettre en oeuvre
    30. Tests unitaires – seleniumIDE
      • Basé sur l'environnement de test Selenium
      • Selenium IDE :
        • Extension Firefox
        • Enregistre des tests fonctionnels
      • Précautions :
        • Travailler sur une BDD de test !
        • Solutions :
          • Alias Apache, et basculement de la configuration de la BDD
          • Ou environnement de test séparé
    31. Travail collaboratif
    32. Travail collaboratif - problématique
      • Nécessité d'outils spécifiques pour travailler en groupe :
        • Communication
        • Gestion des changements
    33. Travail collaboratif - outils
      • Outils possibles :
        • Messagerie
        • Contrôle des sources
        • Contrôle du processus de build
        • Contrôle d'avancement de projet
        • Gestion des retours utilisateurs
    34. Travail collaboratif - outils
      • Messageries :
        • Le courriel n'est pas forcément efficace !
        • Rien ne vaut la communication directe
        • Un forum peut être une bonne idée
      • Applications de partage de document :
        • Google Apps
        • Alternative à la diffusion régulière de documents Office
    35. Travail collaboratif -problématique
      • Contrôle des sources
        • Historiquement, Concurrent Versions System (CVS)
          • Origines en 1985-1989
          • Stocke les modifications sous formes de diff
          • Historique entier accessible
          • Très utilisé, mais vieillissant
        • Aujourd'hui, Subversion (SVN)
          • Gestion des opérations sur les dossiers
          • Prise en charge des fichiers binaires et des types MIME
          • Utilisé par Apache, KDE, Gnome, GCC, Mono ; requis par Trac
    36. Travail collaboratif -problématique
      • Contrôle des sources
        • Accès SVN :
          • Interface client-serveur
          • Accès direct / Http / Protocole SVN
          • Intégré dans de nombreux IDE (VS2005, Eclise)
          • Intégration au Shell (TortoiseSVN)
    37. Travail collaboratif -problématique
      • Contrôle des sources
        • Un projet se compose d'un dépôt ( repository ) contenant :
          • Trunk : corps du code
          • Branches : version particulière (2.1)
          • Tags : release particulière (2.1.01012007)
    38. Travail collaboratif -problématique
      • Contrôle des builds
        • Automatisation du processus de release
        • Utilisation de Makefiles
      • Problème :
        • Les Makefiles peuvent devenir très complexes
        • Utilisation de surcouches qui génèrent des Makefiles
          • Autotools
          • Cmake
          • Qmake
    39. Travail collaboratif -problématique
      • Gestion des retours utilisateurs
        • Bugzilla :
          • Gestion des bogues et des suggestions
          • Remontée des informations
        • Trac :
          • Inspiré de CVSTrac, mais pour SVN
          • Gestion des tickets, des révisions, wiki, client SVN

    + kemenarankemenaran, 3 years ago

    custom

    5032 views, 5 favs, 1 embeds more stats

    Cette formation développe les méthodes de l'Extre more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 5032
      • 5030 on SlideShare
      • 2 from embeds
    • Comments 0
    • Favorites 5
    • Downloads 136
    Most viewed embeds
    • 2 views on http://www.nonozone.com

    more

    All embeds
    • 2 views on http://www.nonozone.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories