Formation Améliorer le code legacy avec le Test Driven Development Passer du code legacy au code propre

Durée 3 jours
Niveau Fondamental
Classe à distance
Possible

Vous pouvez suivre cette formation en direct depuis votre domicile ou votre lieu de travail. Plus d'informations sur notre solution de classe à distance...

Référence TDDC

Le code legacy désigne du code présent dans nos applications, difficile à maintenir, souvent de mauvaise qualité et n'ayant pas été testé automatiquement. Cette formation enseigne aux développeurs les bonnes pratiques qui leur permettront de maintenir et de faire évoluer du code legacy sans risque, afin d'instaurer une haute qualité tant dans leur code que dans leur méthode.

Concrètement, à l'issue de ce cours vous aurez acquis les connaissances et compétences nécessaires pour :

  • Comprendre les problèmes de qualité du code et appliquer les techniques de refactoring de code
  • Trouver les points d’entrée pour améliorer du code legacy en limitant les risques
  • Mettre en place des tests automatisés autour de code legacy
  • Évaluer les risques et définir une stratégie de réduction de la dette technique adaptée.

Public :

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

Prérequis :

Pour aborder cette formation dans de bonnes conditions, il vous faut avoir certaines connaissances et compétences en programmation et génie logiciel, ainsi qu'une expérience en développement piloté par les tests (TDD) et la programmation orientée.
Il est également demandé d'avoir suivi la Formation « Optimiser la qualité du développement avec Test Driven Development » (TDQD).

Anti pattern : legacy code

Définir le code legacy : du code reçu en héritage, qui a une valeur pour l’entreprise mais qu’il faut modifier
Quatre raisons de modifier un code legacy
Couvrir les tests avec un harnais de tests unitaires
Améliorer le délai de feedback du code sur le développeur
Difficultés du Test Driven Development (TDD) sur du code legacy
Le dilemme du code legacy

Exercice pratique

« Racontez une session de travail durant laquelle vous avez renoncé à écrire un test sur du code existant. »

Stratégie de modification d’un code legacy

Identifier un point de changement
Trouver les points de test
Casser les dépendances
Ecrire des tests
Effectuer le changement et refactorer
Types de raccords : préprocesseur, faux collaborateurs

Bilan du jour 1

Pattern : test de caractérisation

Problème : le code est non testé, la documentation est absente ou obsolète
Solution : écrire des tests qui caractérisent le système tel qu’il est
Démarche :
- Appeler un morceau de code depuis un harnais de test
- Ecrire une assertion dont vous savez qu’elle échouera
- En échouant le test indique quel est le comportement du code
- Modifier le test de façon à ce qu’il attende le comportement que produit le code
- Répéter
Heuristique générale
Test de caractérisation sur un bug

Exercice pratique

« Installer la base de code TriviaGame – examiner les classes – écrire des tests de caractérisation. »
Débrief toutes les 25 minutes

Pattern : diagramme d’effet

Problème : étudier l’impact d'un changement sur le code

Solution : tracer les effets de chaque variable sur les méthodes impactées

Exercice pratique

« Sur le code de Trivia Game, rechercher les effets d’un changement en traçant un diagramme d’effet. »

Bilan du jour 2

Pattern : Extract Interface

Problème : une classe collabore avec une classe posant une dépendance extérieure
Solution : extraire une interface de la classe posant la dépendance
Autres patterns de rupture de dépendances extérieures

Exercice pratique

« Sur un code sélectionné dans vos projets, effectuer des tests de caractérisations, puis du refactoring, en utilisant la stratégie vue précédemment. »
Débrief toutes les 25 minutes

Bilan et clôture de la session

Ce stage repose sur de nombreux exercices pratiques. Les participants apprendront à utiliser des outils immédiatement exploitables dans leurs projets en cours.
Ils échangeront sur leurs contextes respectifs et bénéficieront de retours d’expérience du formateur, complétés d’apports théoriques.


Formations Informatique
et Management
en ligne à ce jour

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

%
De participants satisfaits
ou très satisfaits de nos
formations


Formateurs experts
validés par
PLB