Formation Optimiser la qualité du développement avec Test Driven Development


  • AMÉLIORER SA PRATIQUE DE DÉVELOPPEMENT LOGICIEL PAR LES TESTS
REFERENCE
 
 
TDQD
DUREE
 
 
3 jours
TARIFS
 
 
1950 € HT
Niveau : Débutant
Cours à distance: Non
OBJECTIFS :
 

Le Test Driven Development (TDD), développement dirigé par les tests est une technique de programmation simple, élégante et efficace. Cette pratique des équipes agiles consiste en un cycle de feedback court : écrire un test – le faire passer – refactorer le code.
Cette méthode combine la sécurité du code couvert par les tests automatisés à l’avantage d’une conception modulaire et lisible. A l’issue de cette formation, vous serez ainsi capable d’écrire des applications entières, étayées par du code opérationnel, facilement maintenables et évolutives.

Plus concrètement à l'issue de cette formation vous saurez:

  • Connaîter les avantages du Test Driven Development sur les autres techniques de programmation (code puis T.U)
  • Développer une application simple avec TDD
  • Expliquer et illustrer les principes de cette démarche
  • Utiliser TDD sur un nouveau projet
  • Appliquer des techniques spécifiques de TDD sur un projet existant.
PRÉ-REQUIS :
 

Pour suivre ce cours dans de bonnes conditions, il vous faut avoir certaines connaissances de la programmation objet, ainsi qu'une expérience de base du développement de logiciel.

PUBLIC :
 

Ce stage s'adresse aux Chefs de projets en développement, Développeurs, Testeurs ayant une fibre développement, Architectes, Technical Leaders.

PROGRAMME :
 

Introduction

Brainstorming : les pratiques de développement utilisées en entreprise
Les pièges à éviter lorsque l’on programme

Perception du Test Driven Development (TDD)

Mythes du TDD
Réalité du TDD

Exercices pratiques

Tester unitairement produit
Concevoir un produit via les tests unitaires

Gestion des exceptions - Refactoring

Définir un test

En génie logiciel
En TDD

Exercice pratique

Compréhension d’un code de tests

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

Exercice pratique

Echanges sur des situations analogues où le soin porté à l’outil favorise la vitesse de production

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

Exercice pratique

Conception par carte responsabilités / collaboration

Pattern TDD : test list

Exercice pratique

Lister les tests d’une des classes du projet

Le cycle de TDD
Des règles simples
Pattern : Assert First

Exercice pratique

Mettre en route son environnement et écrire un premier test

Trois patterns caractéristiques de TDD

Pattern TDD : “Fake it ‘til you make it”
Pattern TDD : « Triangulate »
Pattern TDD : « Obvious Implementation »

Exercice pratique

Manipuler ces 3 patterns sur une fonction simple

Pattern TDD : « Données de test »
Pattern TDD : « Tests isolés »

Exercices pratiques

Développement d’une classe simple (conteneur)
Développement d’une classe dotée de logique (règles métier)
Développement d’une collaboration entre 2 classes (application)

Bilan du jour 1

Connexion

Partager avec le groupe sa session de programmation / débogage la plus difficile

Principes de survie TDD

Pattern TDD : « Don’t Repeat Yourself »
Pattern TDD : “You Ain’t Gonna Need It”
Problème des dépendances extérieures
Pattern TDD : « Stub »

Exercice pratique

Créer un Stub pour résoudre un problème de données de tests

Pattern TDD : « Mock »

Exercice pratique

Créer un Mock pour simuler un appel de méthode

Développement d’une application (suite)

Exercices pratiques

Développement d’une collaboration entre plusieurs classes (cycle de vie de l’application)
Développement d’une classe dépendante aux effets de bords (ex. : horloge système)
Développement d’une collaboration entre plusieurs classes (sessions multiples)
Développement d’une application connectée (serveur)
Développement d’une application connectée (client)

Bilan du jour 2

Connexion

Partage d’expériences sur le code existant

Antipatterns TDD

Antipattern TDD : « Succès inattendu d’un test »

Exercice pratique

Analyse critique d’un test qui passe du premier coup

Antipattern TDD : « Ecrire des tests trop grands »

Exercice pratique

Analyse critique d’un test trop grand

Antipattern TDD : « Diagnostic trop long »

Exercice pratique

Analyse critique d’un test donnant lieu à un diagnostic long

Antipattern TDD : « Test sur une méthode privée »

Exercice pratique

Analyse critique d’un test d’une méthode privée

Antipattern TDD : « Echec intermittent »

Exercice pratique

Analyse critique d’un test qui passe de façon intermittente

Concept et présentation du code legacy

Le problème du code Legacy

Modifier et préserver le code
Le paradoxe : refactorer du code sans tests pour y ajouter des tests

Amener du code sous tests

Identifier un point de changement
Trouver les points de test
Casser les dépendances
Créer un raccord (seam)
Modifier le code et refactorer

Exercices pratiques

Ecrire des tests sur un code existant en vue de documenter le code
Ecrire des tests permettant de refactorer le code

Synthèse et rappel des points clés de la formation

TRAVAUX PRATIQUES :
 

Ce cours comporte des exercices pratiques, des échanges et retours d’expérience du formateur afin de favoriser l’acquisition de savoir-faire.

S'INSCRIRE À CETTE
FORMATION TEST DRIVEN DEVELOPMENT
Cliquez sur une date pour vous inscrire
Information pratiques sur
LA FORMATION
Lieu de la formation Paris - LA DEFENSE
Nous contacter 01 43 34 90 94
CETTE FORMATION SUR-MESURE Ce cours est réalisable en intra-entreprise, dans vos locaux ou nos salles de cours CONTACTER NOTRE SERVICE INTRA
D'autres formations
SUR LE MÊME THÈME

3 j

 
Le code legacy désigne du code présent dans nos applications, difficile à maintenir, souvent de mauvaise qualité et n'ayant pas été testé...

3 j

 

Développement

Maîtriser Clean Code
Le terme « Clean Code » désigne les pratiques, principes et standards qui définissent un code de qualité. Les équipes suivent cette méthode pour...

1 j

 

Développement

Revue de code
La Revue de code est à présent reconnue comme l'une des meilleures pratiques pour améliorer la qualité du développement. Elle apporte de nombreuses...
Plus de formations sur le même thème

Des questions ?

ON VOUS RAPPELLE

 

0

Formations
Informatique
et Management
en ligne à ce jour

+ 0

Stagiaires dans nos
salles de cours sur
l'année

0%

De participants
satisfaits ou très
satisfaits de nos
formations

0

Formateurs experts
validés PLB