Test Driven Development sur du code legacy Mixte : présentiel / à distance
Dernière mise à jour : 20/08/2025
M'inscrire à la formation
Type : Stage pratique
Description
Le code legacy est une métaphore pour parler de ce code existant dans nos applications, difficile à maintenir, souvent de mauvaise qualité et non testé automatiquement.
Ce module forme les développeurs aux pratiques permettant de maintenir et de faire évoluer du code legacy sans risque, et ainsi trouver les trajectoires de retour à une haute qualité. Ce sera l'occasion d'apprendre à mettre en place des tests automatisés quelles que soient les possibilités initiales du code.
Objectifs de la formation
- Savoir appréhender des problèmes de qualité du code et appliquer les techniques de refactoring de code
- Identifier les points d'entrée pour faire évoluer du code legacy en minimisant les risques
- Appliquer les techniques pour mettre en place des tests automatisés autour de code legacy
- Evaluer les risques pour choisir une stratégie adaptée de réduction de la dette technique
Public visé
- Chef de projet en développement
- Développeur
- Testeur ayant une fibre développement
- Architecte
- Technical Leader
Prérequis
- Compétences en programmation et génie logiciel.
- Une expérience dans le développement piloté par les tests (TDD) et la programmation orientée objet est un plus.
- Avoir suivi la formation « Qualité des développements avec Test Driven Development : optimiser son développement logiciel par les tests » (TDD01).
Modalités pédagogiques
Formation principalement composée d'exercices pratiques qui fourniront aux participants des outils qu'ils pourront mettre en pratique immédiatement dans leurs projets actuels.
Echanges sur les contextes des participants et retours d'expérience du formateur, complétés d'apports théoriques.
Profil du / des Formateur(s)
Cette formation est dispensée par un·e ou plusieurs consultant·es d'OCTO Technology ou de son réseau de partenaires, expert·es reconnus des sujets traités.
Le processus de sélection de nos formateurs et formatrices est exigeant et repose sur une évaluation rigoureuse leurs capacités techniques, de leur expérience professionnelle et de leurs compétences pédagogiques.
Modalités d'évaluation et de suivi
L'évaluation des acquis se fait tout au long de la session au travers des ateliers et des mises en pratique.
Afin de valider les compétences acquises lors de la formation, un formulaire d'auto-positionnement est envoyé en amont et en aval de celle-ci.
En l'absence de réponse d'un ou plusieurs participants, un temps sera consacré en ouverture de session pour prendre connaissance du positionnement de chaque stagiaire sur les objectifs pédagogiques évalués.
Une évaluation à chaud est également effectuée en fin de session pour mesurer la satisfaction des stagiaires et un certificat de réalisation leur est adressé individuellement.
Programme
Jour 1
ANTI PATTERN : LEGACY CODE
- Du code que nous avons reçu en héritage, qui a une valeur pour l'entreprise, et qu'il faut modifier
- Les 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 TDD sur du code legacy
- Le dilemme du code legacy
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
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
MISE EN PRATIQUE
CLÔTURE DU JOUR 1
Jour 2
PATTERN : DIAGRAMME D'EFFET
- Problème : on souhaite étudier l'impact que pourrait avoir un changement sur le code
- Solution : tracer les effets de chaque variable sur les méthodes impactées
MISE EN PRATIQUE
CLÔTURE DU JOUR 2
Jour 3
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
MISE EN PRATIQUE
BILAN ET CLÔTURE DE LA FORMATION
Pour aller plus loin
- 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 "The Clean Coder" – R. Martin
- Ouvrage "The Pragmatic Programmer" – A. Hunt & D. Thomas
- Ouvrage "Working Effectively with Legacy Code" – M. Feathers