Slideshare.net (beta)

 
Post to TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 4 (more)

Formation Extreme Programming, Tests unitaires, travail collaboratif

From kemenaran, 2 years ago

Cette formation développe les méthodes de l'Extreme Programming, more

3386 views  |  0 comments  |  4 favorites  |  81 downloads
 

Categories

Add Category
 
 

Tags

unitaires tests xp programming etreme kemenaran isep junior formation tdd

more

 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 3386
on Slideshare: 3386
from embeds: 0

Slideshow transcript

Slide 1: Extreme Programming Tests unitaires Travail collaboratif Pierre de La Morinerie Junior ISEP 2007

Slide 2: Programme de la formation

Slide 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

Slide 4: L'Extreme Programming

Slide 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

Slide 6: L'Extreme programming - origine XP est une méthode agile  

Slide 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

Slide 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

Slide 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 

Slide 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 

Slide 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é 

Slide 12: L'Extreme programming - valeurs Résumé des valeurs fondamentales d'XP :   Communication  Retour d'expérience  Simplicité  Courage

Slide 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 

Slide 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

Slide 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

Slide 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

Slide 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

Slide 18: Tests unitaires

Slide 19: Tests unitaires - concepts Définition :   Un test unitaire permet de s'assurer automatiquement du fonctionnement d'une portion de code ou de programme

Slide 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

Slide 21: Tests unitaires - concepts Test Driven Development   Écriture des tests avant la réalisation du code  Approche utilisée par l'XP  Déroulement : a) Écriture du test b) Vérification de l'échec du test (puisque le code n'existe pas encore) c) Écriture du code minimal d) Vérification du passage du test e) Refactoring du code

Slide 22: Tests unitaires - concepts Test Driven Development   Écriture des tests avant la réalisation du code  Approche utilisée par l'XP  Déroulement : a) Écriture du test b) Vérification de l'échec du test (puisque le code n'existe pas encore) c) Écriture du code minimal d) Vérification du passage du test e) Refactoring du code Dans tous les cas...   Écrire les tests en même temps que le code !

Slide 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

Slide 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 

Slide 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++

Slide 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 

Slide 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 

Slide 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)

Slide 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

Slide 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é 

Slide 31: Travail collaboratif

Slide 32: Travail collaboratif - problématique Nécessité d'outils spécifiques pour travailler en groupe :   Communication  Gestion des changements

Slide 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

Slide 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

Slide 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 

Slide 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) 

Slide 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) 

Slide 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 

Slide 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 