L'apprentissage du TDD en coding-dojo

Documents pareils
INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Agilitéet qualité logicielle: une mutation enmarche

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Les Bonnes PRATIQUES DU TEST LOGICIEL

Scrum Une méthode agile pour vos projets

répondre aux défis de l ingénierie logicielle déploiement et mise en œuvre opérationnelle : l'industrialisation au service de la compétitivité

Agile 360 Product Owner Scrum Master

AGILE IPHONE DEVELOPMENT

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Gestion Projet. Cours 3. Le cycle de vie

Le rôle du coach Agile et son apport pour le projet

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

Retour d expérience implémentation Scrum / XP

Personas. Le programme ne vous parle pas?

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone?

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Les cinq premiers pas pour devenir vraiment agile à XP Day Suisse 2009 par Pascal Van Cauwenberghe et Portia Tung: La Rétrospective

Formation Certifiante Scrum Master

XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros

Méthode Agile de 3 ème génération J-P Vickoff

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

REX Scrum Master du terrain

Rapport d activité et retours d évaluations du service de coaching en ligne COACHLINE

Refonte front-office / back-office - Architecture & Conception -

Testeur Agile Niveau Fondation Bertrand Cornanguer, Vice-chair Agile tester WG

ISTQB Agile Tester en quelques mots ISTQB Marketing Working Group

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

FORMATION MÉTHODES & PRATIQUES AGILES RÔLES AGILES & CERTIFICATIONS MODÉLISATION & CONCEPTION JAVA & FRAMEWORKS MICROSOFT.NET DÉVELOPPEMENT IHM WEB

Offre Education Sage. Gilles Soaleh - Responsable Education. Thierry Ruggieri - Consultant Formateur. Académie de Montpellier 08 décembre 2011

Certification Scrum Master

Feature Team Primer. par Craig Larman et Bas Vodde. Version 1.2

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Liste des Formations

25/12/2012

Vision Produit. Un sacré attracteur pour une équipe auto-organisée. Thierry Cros

{ mathieu boisvert / michel céré ; }

Comment optimiser les tests avec une démarche d automatisation simplifiée

backlog du produit Product Owner

Ne renvoyez pas vos architectes! Utilisez-les avec agilité

DES SYSTÈMES D INFORMATION

GESTION DE PROJET : LA METHODE AGILE

Les méthodes itératives. Hugues MEUNIER

Agile Maroc 24 Novembre Méthodes agiles. Thierry Cros. Agile Maroc 24 novembre 2010

Retour d expérience RATP. Intégrer le test de performance au cœur du processus de développement agile. Challenges, techniques, résultats.

Programmation Agile Mise en oeuvre via Scrum et l'extreme Programming (XP)

Formation pour Product Owner

L Intégration Continue & Agilité

Gildas Le Nadan. Thomas Clavier

Plan de la Formation. GESTION de PROJET

Mon mémento Page 3. 1/ Pourquoi ce mémento? Page 4. 2/ Pourquoi s évaluer? Page 4. 3/ Comment utiliser ce mémento? Page 5

1/15. Jean Bernard CRAMPES Daniel VIELLE

HISTOIRE D UNE DIGITAL FACTORY

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Catalogue de FORMATIONS 2015

Architecture pragmatique pour la gestion du cycle de vie des applications (ALM)

Portail. Site Internet

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Pas à pas BOB 50 Campagne de rappels de paiement

Tuesday, October 20, Nantes

tech days AMBIENT INTELLIGENCE

Jean-Pierre Vickoff

Le génie logiciel. maintenance de logiciels.

Concilier Agilité, Exigences et Continuous Delivery : Retour d expérience PagesJaunes

LES tests d'acceptation

EXIN Agile Scrum Master

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

Maîtrise d ouvrage agile

Jean-Pierre Vickoff J-P Vickoff

Les méthodes agiles UM Les méthodes agiles S. Mathon

1 / Quels avantages apporte la Certification Voltaire?

LES JOURNÉES SQL SERVER

Olivier Deheurles Ingénieur conception et développement.net

Méthodologies SCRUM Présentation et mise en oeuvre

Comité Français des Tests Logiciels. Testeur Certifié. Version 2012

Cours Ephec Niv. 2 : Technique et gestion de projet. Par Monsieur Bertieaux Année Académique Quelles sont les 4 valeurs Agiles?

Gestion de projets et de portefeuilles pour l entreprise innovante

Scrum et itk : adaptation de la méthode au développement d OAD. D après Henrik Kniberg Scrum et XP depuis les tranchées

Ingénierie des méthodes Agiles : Que cache l opposition entre déploiement et livraison en continu? Faut-il adopter DevOps 1?

Les BRMS Business Rules Management System. Groupe GENITECH

S cribe N G pour l'en seignant

l E R P s a n s l i m i t e

LEARNING EVERYWHERE 1

Séance du jeudi 22 novembre 2012 (13h30 16h30)

LA MÉTHODE AGILE VS LE CYCLE EN V UNE RÉVOLUTION DANS LA GESTION DE PROJET. Franck BEULÉ

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

La formation de vos collaborateurs est la meilleure garantie sur la pérennité de votre Entreprise. Les former c est Stimuler leur productivité!

Fidéliser les collaborateurs tout en améliorant leurs compétences

LIVRET DE FORMATION JEUNE JUGE JEUNE ARBITRE.

Estimer et mesurer la performance des projets agiles avec les points de fonction

Qualité et Test des Logiciels. Le génie logiciel. Moez Krichen.

Plateforme AnaXagora. Guide d utilisation

Transcription:

L'apprentissage du TDD en coding-dojo Xavier Nopre www.twitter.com/xnopre xnopre.blogspot.fr xnopre@gmail.com

Merci à nos sponsors Platinum Gold Silver Institutionnel

Puis-je avoir ce diaporama? Un mail à xnopre@gmail.com : Votre avis sur cette session Vos questions

Artisan-programmeur Xavier Nopre Indépendant Qui suis-je? Agiliste Développement d'applications "sur-mesure" pour des clients finaux Intervention en entreprises : formation, accompagnement, développement freelance @xnopre xnopre.blogspot.com

Programme (2h) 14h-16h : Préambules : 10' Théorie et rappels : 30' Tests unitaires, TDD, coding-dojo Pratiquons ensemble : 60' Démo mock : 10' Questions / réponses : 10'

Préambule

Qui êtes-vous? Vous êtes : Développeur? ScrumMaster ou Product Owner? Manager? Formateur / coach? Autre?

Votre connaissance en agilité? Je découvre, je n'y connais rien Je connais les bases, je ne pratique pas encore Je pratique un peu Je pratique régulièrement (ex: un des rôles de Scrum) Je maitrise, j'explique, je forme et accompagne

Votre pratique des TU et du TDD? Je découvre, je n'y connais rien Je sais ce que c'est mais sans pratiquer J'ai essayé les tests unitaires le TDD Je fais des tests unitaires après le code de prod Je pratique le TDD régulièrement Tout ça ne sert à rien!

Tests unitaires

De quoi parlons-nous? Tests unitaires = Du code qui teste du code

Coût des tests unitaires? Quel surcoût pour les tests unitaires? Quel surcoût pour le TDD?

Pourquoi des tests unitaires et du TDD TDD? Agilité Qualité - Développement Incrémental - Accepter le changement Répondre au besoin - Architecture Évolutive - Refactoring sans régressions Tests autres Tests unitaires Code testable - Intégration continue - Automatisation

Tests unitaires = la base des tests Tests manuels Tests GUI Tests intégration / acceptance Test unitaires Les tests unitaires sont la "base" de tous les tests L'investissement et le volume sont plus importants pour les TU Tous les types de tests sont complémentaires Pyramide des tests Mike Cohn

Tests unitaires = limiter les coûts des anomalies

Rappels sur les tests unitaires Simples ("unitaires") Lisibles Rapides à écrire Rapides à exécuter Indépendants (des autres) Autonome (/ environnement) Répétables Automatisables Parallèlisables Pas forcément partout (pensez ROI) Structurés Préparations Test (1 action) Vérifications Tests de "classe" sur l'api publique de la classe Bon outillage

TDD = "Test Driven Development"

TDD pourquoi? Vérifier la compréhension du besoin fonctionnel et être sûr d'y répondre Traduction des specs en tests Détecter au plus tôt des problèmes dans les specs : oublis, impressions, contradictions, Générer du code testable Systématiser la présence de tests unitaires, améliorer la couverture du code par les tests Les tests sont plus "faciles" à écrire avant le code de production que après

Oui, mais Les débuts sont difficiles L'apprentissage est long C'est un investissement, qui doit être collectif (équipe) Mais ROI important!

Le cycle du TDD Remaniement et mise au propre du code, de l'architecture, de la présentation, factorisation, commentaires, Refactoring Ecriture du test Ecriture d'un test et un seul et s assurer qu il ne passe pas pour de bonnes raisons Ecriture du code de production Ecriture du code minimum pour faire passer ce test

Coding-dojo

Coding-dojo : introduction Apprentissage d'un sport de combat vs Apprentissage en développement logiciel (langage, techno, conception, )

Coding-dojo : Quoi? Pour qui? C est quoi? : Un lieu d entrainement, d échanges, d amélioration Un espace «sécurisé» Un travail collectif, de collaboration, pas de compétition Un moment convivial, où tout le monde doit participer C est pour qui? : Pour les développeurs volontaires et motivés Pour tous les niveaux

Coding-dojo : Kata et Randori Kata : "Démonstration" 1 personne présente 1 solution Objectif : montrer (technique, techno) Tout le monde doit suivre, on peut interrompre Randori : "Travail de dév en groupe" Résolution (partielle) collective d'un défi Objectif : apprendre, échanger, s'entrainer, tester, se tromper, Pas besoin d'aller au bout A consommer sans modération!

Coding-dojo : Randori : Organisation 1 poste de travail, vidéo-projeté 2 personnes en pair-programming : "pilote" & "copilote" On tourne d 1 personne toutes les 5 à 7 (copilote pilote) 1 animateur : vérifie le respect des règles, tranche les décisions, met l accent sur les pratiques (bonnes ou mauvaises) Interventions des participants : Les participants doivent comprendre et peuvent questionner Sinon, les participants n interviennent que lorsque c est «vert» Rétrospective!

Coding-dojo : Randori : Conseil Etre courageux : Etre capable de programmer devant les autres = hésiter, tâtonner, se tromper, réussir! Accepter la critique, être prêt(e) à se remettre en question Accepter de voir son travail repris, modifié, supprimé Etre généreux : Expliquer sa démarche, sa solution, ses choix Montrer ses «trucs et astuces» Etre tolérant

TDD : pas seulement du "test first" Plus qu'une pratique une discipline Pas d'ajout de code sans test rouge Plus qu'une méthode de tests une activité de conception Etat d'esprit Une approche addictive Partie intégrante de la pratique de développement logiciel!

A nous de jouer! Sujet : "Tennis (scoring) Kata" Générateur de score de tennis

Précisions : architecture (P-n-OO) et stateless Game : - - xxx - - xxx Score (Texte) Tennis Score Builder Légende : Bean de données (POJO) Traitement

"Users Stories" 2-1 "30-15"

C'est parti!

Mocks

Les Mocks Collaborateur Collaborateur Classe à tester Collaborateur 1 rôle! Collaborateur

Les mocks : sujet de démo Jeu de tennis : GUI & Controller!

Les mocks : architecture pour la démo click Controller Gui displayscore(string) playerxhasscored() Game composescore(game) ScoreBuilder Légende : Bean de données (POJO) Traitement pur Traitement pur"aiguillage"

Les mocks : démo!

Merci! Questions?

Agile Tour Montpellier 2014 Scaling Agile www.agiletour-montpellier.fr www.bit.ly/19gwdwl www.twitter.com/atmtp contact@agiletour-montpellier.fr