Qualité des développements avec Test Driven Development
Optimiser son développement logiciel par les tests
Description
Pratique de base des équipes agiles, le développement dirigé par les tests (TDD : Test Driven Development) est une technique de programmation simple, élégante et efficace, qui repose sur un cycle de feedback court : écrire un test – le faire passer – refactorer le code. Cette approche allie l’avantage d’une conception modulaire et lisible, à la sécurité que procure la couverture du code par les tests automatisés.
À l’issue de cette formation, vous serez ainsi en mesure d’écrire des applications entières, étayées par du code en état de marche, particulièrement maintenables et évolutives.
Objectifs pédagogiques
- Identifier les avantages de TDD sur les autres techniques de programmation (code puis tests unitaires)
- Développer une application simple avec TDD
- Expliquer et illustrer les principes à l’œuvre dans cette démarche
- Utiliser TDD sur un projet nouveau
- Utiliser des techniques spécifiques de TDD sur un projet existant
Public cible
- Chef de projet en développement
- Développeur
- Testeur ayant une fibre développement
- Architecte
- Technical Leader
Pré-requis
- Connaissances de la programmation objet.
- Expérience de base du développement de logiciel.
Méthode pédagogique
Formation pratique, visant à l’acquisition d’un savoir-faire, basée sur des exercices pratiques ainsi que des échanges et retours d’expérience pratique du formateur.
PROFILS DES INTERVENANTS
Toutes nos formations sont animées par des consultants-formateurs expérimentés et reconnus par leurs pairs.
MODALITÉS D'ÉVALUATION ET FORMALISATION À L'ISSUE DE LA FORMATION
L'évaluation des acquis se fait tout au long de la session au travers des ateliers et des mises en pratique. Une évaluation à chaud sur la satisfaction des stagiaires est réalisée systématiquement en fin de session et une attestation de formation est délivrée aux participants mentionnant les objectifs de la formation, la nature, le programme et la durée de l'action de formation ainsi que la formalisation des acquis.
Programme :
Jour 1
- Perception du TDD
- 1Mythes du TDD
- Réalité du TDD
- Définir un test
- En génie logiciel
- En TDD
- Définir le Test Driven Development
- Mettre en évidence l’intention
- Réfléchir avant chaque ligne de code
- Bénéfice de la couverture de tests
- Feedback et Agilité
- Notions de base
- Exercice pratique : “Identifier tous les feedbacks que peut utiliser un développeur”
- Brève histoire du feedback entre le développeur et son code
- Importance du feedback
- Le coût croissant de correction des défauts
- Information vs feedback
- TDD et génie logiciel
- Renversement du modèle industriel classique
- Comparaison des modèles industriel et artisanal
- Pratiques autour de la sphère TDD
- Points d’attention
- Obstacles à l’adoption de TDD
- Bases de TDD : développement d’une application simple
- Présentation générale
- Pattern TDD : test list
- Le cycle de TDD
- Des règles simples
- Pattern : Assert First
- Trois patterns caractéristiques de TDD
- Pattern TDD : “Fake it ‘til you make it”
- Pattern TDD : « Triangulate »
- Pattern TDD : « Obvious Implementation »
- Pattern TDD : « Données de test »
- Pattern TDD : « Tests isolés »
- Mises en pratique
- Clôture du jour 1
Jour 2
- Principes de survie TDD
- Pattern TDD : « Don’t Repeat Yourself »
- Pattern TDD : “You Ain’t Gonna Need It””
- Mise en pratique
- Clôture du jour 2
Jour 3
- Problème des dépendances extérieures
- Pattern TDD : « Stub »
- Pattern TDD : « Mock »
- Mise en pratique
- Antipatterns TDD
- « Succès inattendu d’un test »
- « Ecrire des tests trop grands »
- « Diagnostic trop long »
- « Test sur une méthode privée »
- « Echec intermittent »
- Synthèse et rappel des points clés de la formation
Pour aller plus loin :
- Article "L'importance de la qualité logicielle à l'ère numérique"
- Formation "Test Driven Development sur du code legacy" (TDD02)
- Formation "Clean Code" (TDD03)
- Formation "Revue de code : améliorer son code grâce au Code Review" (REVCO)
- Formation "Donner et recevoir des feedbacks efficaces" (FFEED)
- Ouvrage "Test-Driven Development : A Practical Guide" – Astels
- Ouvrage "Junit Recipes" – Rainsberger
- Ouvrage "Working Effectively with Legacy Code" – Feathers
Partager
Sessions inter-entreprises :
Devis sur demande