SlideShare une entreprise Scribd logo
Extreme Programming  Tests unitaires Travail collaboratif Pierre de La Morinerie Junior ISEP 2007
Programme de la formation
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
L'Extreme Programming
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
L'Extreme programming - origine XP est une méthode  agile
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
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
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
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
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é
L'Extreme programming - valeurs Résumé des valeurs fondamentales d'XP : Communication Retour d'expérience Simplicité Courage
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
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
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
L'Extreme programming – retour d'expérience 1 Résumé : Sûreté fournie par les tests Avancement motivant Entente entre les développeurs primordiale
L'Extreme programming – liens Quelques liens pour se documenter plus : Wikipedia- Extreme Programming www.extremeprogramming.org www.xp-france.net www.design-up.com
Tests unitaires
Tests unitaires - concepts Définition : Un test unitaire permet de s'assurer automatiquement du fonctionnement d'une portion de code ou de programme
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
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
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 !
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
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
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++
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
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
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)
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
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é
Travail collaboratif
Travail collaboratif - problématique Nécessité d'outils spécifiques pour travailler en groupe : Communication Gestion des changements
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
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
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
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)
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)
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
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

Contenu connexe

Tendances

Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Emmanuel Hugonnet
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
Scrum xp
Scrum xpScrum xp
Test unitaires
Test unitairesTest unitaires
Test unitaires
Mohamed Akrouh
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
CloudNetCare
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
Nathaniel Richand
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
TelecomValley
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
Sylvain Leroy
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
Christophe Rochefolle
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
ElsassJUG
 
Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxStrategie de test à agile tour bordeaux
Strategie de test à agile tour bordeaux
Nicolas Fédou
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
Klee Group
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
Geeks Anonymes
 
Rapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPRapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XP
Sarah
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
halleck45
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
Cyrille Grandval
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
Agile Toulouse
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
Elapse Technologies
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
Jean-Paul CARMONA
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
Stéphane Salmons
 

Tendances (20)

Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Scrum xp
Scrum xpScrum xp
Scrum xp
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxStrategie de test à agile tour bordeaux
Strategie de test à agile tour bordeaux
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Rapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPRapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XP
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 

En vedette

Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
Nicolas Perriault
 
Scrum/XP : Témoignage de 2 développeurs
Scrum/XP : Témoignage de 2 développeursScrum/XP : Témoignage de 2 développeurs
Scrum/XP : Témoignage de 2 développeurs
chapurlatn
 
Modele Avec Des Images Fortes (Our Copil Projet Id Zone)
Modele Avec Des Images Fortes (Our Copil Projet Id Zone)Modele Avec Des Images Fortes (Our Copil Projet Id Zone)
Modele Avec Des Images Fortes (Our Copil Projet Id Zone)
shudyka
 
Up1
Up1Up1
Management de projet agile vs classique pmi atlantic 20120322
Management de projet agile vs classique pmi atlantic 20120322Management de projet agile vs classique pmi atlantic 20120322
Management de projet agile vs classique pmi atlantic 20120322
Jean-Luc MAZE
 
Agp coaching
Agp coachingAgp coaching
Agp coaching
AGP Coaching
 
Comunicación Oral
Comunicación  OralComunicación  Oral
Comunicación Oral
guest2aab53
 
Portfolio pierre duhamel novembre 2015
Portfolio pierre duhamel novembre 2015Portfolio pierre duhamel novembre 2015
Portfolio pierre duhamel novembre 2015
Pierre Duhamel
 
Narrative Modules
Narrative ModulesNarrative Modules
Narrative Modules
Eric Neuman
 
Ventajas De Los 50
Ventajas De Los 50Ventajas De Los 50
Ventajas De Los 50
jorge garcia
 
13commandements
13commandements13commandements
13commandements
racanelli
 
Tequila y sal
Tequila y salTequila y sal
Tequila y sal
HJTandil66
 
Inteligencia emocional y su relación con la felicidad
Inteligencia emocional y su relación con la felicidadInteligencia emocional y su relación con la felicidad
Inteligencia emocional y su relación con la felicidad
Euler
 
Terminada Presentacion Kkkkk
Terminada Presentacion KkkkkTerminada Presentacion Kkkkk
Terminada Presentacion Kkkkk
mirima
 
Tic, Power Point, Vacas
Tic, Power Point, VacasTic, Power Point, Vacas
Tic, Power Point, Vacas
ari
 
Red/Mallea-Schmal
Red/Mallea-SchmalRed/Mallea-Schmal
Red/Mallea-Schmal
Universidad de Talca
 
Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...
Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...
Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...
Juan Carlos Olivares Rojas
 

En vedette (20)

Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
 
Scrum/XP : Témoignage de 2 développeurs
Scrum/XP : Témoignage de 2 développeursScrum/XP : Témoignage de 2 développeurs
Scrum/XP : Témoignage de 2 développeurs
 
Modele Avec Des Images Fortes (Our Copil Projet Id Zone)
Modele Avec Des Images Fortes (Our Copil Projet Id Zone)Modele Avec Des Images Fortes (Our Copil Projet Id Zone)
Modele Avec Des Images Fortes (Our Copil Projet Id Zone)
 
Up1
Up1Up1
Up1
 
Methodes agile
Methodes agileMethodes agile
Methodes agile
 
Management de projet agile vs classique pmi atlantic 20120322
Management de projet agile vs classique pmi atlantic 20120322Management de projet agile vs classique pmi atlantic 20120322
Management de projet agile vs classique pmi atlantic 20120322
 
Fantasmes
FantasmesFantasmes
Fantasmes
 
Agp coaching
Agp coachingAgp coaching
Agp coaching
 
Comunicación Oral
Comunicación  OralComunicación  Oral
Comunicación Oral
 
Portfolio pierre duhamel novembre 2015
Portfolio pierre duhamel novembre 2015Portfolio pierre duhamel novembre 2015
Portfolio pierre duhamel novembre 2015
 
Narrative Modules
Narrative ModulesNarrative Modules
Narrative Modules
 
Ventajas De Los 50
Ventajas De Los 50Ventajas De Los 50
Ventajas De Los 50
 
13commandements
13commandements13commandements
13commandements
 
Tequila y sal
Tequila y salTequila y sal
Tequila y sal
 
Inteligencia emocional y su relación con la felicidad
Inteligencia emocional y su relación con la felicidadInteligencia emocional y su relación con la felicidad
Inteligencia emocional y su relación con la felicidad
 
Cemafor Jcp
Cemafor JcpCemafor Jcp
Cemafor Jcp
 
Terminada Presentacion Kkkkk
Terminada Presentacion KkkkkTerminada Presentacion Kkkkk
Terminada Presentacion Kkkkk
 
Tic, Power Point, Vacas
Tic, Power Point, VacasTic, Power Point, Vacas
Tic, Power Point, Vacas
 
Red/Mallea-Schmal
Red/Mallea-SchmalRed/Mallea-Schmal
Red/Mallea-Schmal
 
Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...
Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...
Sistema Generador de PAtrones de Visitas a Paginas Web en Dispsoitivos Inalám...
 

Similaire à Formation Extreme Programming, Tests unitaires, travail collaboratif

TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
neuros
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
ALTER WAY
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Jean-Pierre Lambert
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
Christophe HERAL
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
LeClubQualiteLogicielle
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
Denis Voituron
 
Conformiq
ConformiqConformiq
Conformiq
Soukaina Boujadi
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
Frédéric Delorme
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
ALTER WAY
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Jonathan Bonzy
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Marc Nazarian
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
Christophe Villeneuve
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Denis Voituron
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
TelecomValley
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
Marc Hage Chahine
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
Agile Tour 2009 Québec
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
Frederic Dewinne
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
Microsoft
 

Similaire à Formation Extreme Programming, Tests unitaires, travail collaboratif (20)

TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Conformiq
ConformiqConformiq
Conformiq
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 

Plus de kemenaran

Introduction à Silverlight
Introduction à SilverlightIntroduction à Silverlight
Introduction à Silverlight
kemenaran
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4
kemenaran
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
kemenaran
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
kemenaran
 
Formation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptsFormation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, concepts
kemenaran
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
kemenaran
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
kemenaran
 

Plus de kemenaran (7)

Introduction à Silverlight
Introduction à SilverlightIntroduction à Silverlight
Introduction à Silverlight
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
 
Formation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptsFormation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, concepts
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 

Formation Extreme Programming, Tests unitaires, travail collaboratif

  • 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
  • 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
  • 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é
  • 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