tests de caractérisation : à l’assaut de votre code ... · code « legacy » patrimonial pascal...
TRANSCRIPT
![Page 1: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/1.jpg)
&FÉLIX-ANTOINE BOURBONNAIS
B.ING., M.SC, PSM
Version: Mai 2017 (DEV)
Tests de caractérisation : à l’assaut de votre
code « Legacy » patrimonial
PASCAL ROYING., CSM, PSM, PMP
![Page 2: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/2.jpg)
Imaginez du code patrimonial (Legacy)…
Imaginez un outil qui permettrait à la fois d’explorer ce que le code fait réellement et de réusiner ce
vieux code…
![Page 3: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/3.jpg)
![Page 4: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/4.jpg)
4
Qui sommes-nous ?
Pascal RoyIng., PSM, CSM, PMP
Félix-Antoine BourbonnaisB.ing., PSM, M.Sc.
![Page 5: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/5.jpg)
Formations Mentorat Diagnostics Conférences
![Page 6: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/6.jpg)
Conférenciers
Formateurs
Mentors
Tech.
Équipe &Affaires
GestionTDD
Architecture évolutive
Essais automatisés
DDD
…
Scrum
QA Agile
Gestion de projets
Agilité
BDD
> Nous sommes
Conseils stratégiques
> Spécialités
![Page 7: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/7.jpg)
![Page 8: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/8.jpg)
Suis-je seul à avoir du Legacy Code ?
![Page 9: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/9.jpg)
C’est du code difficile à faire évoluer.
Peu importe son âge ou la raison.
Qu’est-ce que du Legacy Code ?
![Page 10: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/10.jpg)
• Du code écrit par d’autres
• Du code que plus personne ne veut toucher
• Du code qui n’est plus supporté par ceux qui l’ont écrit
• Du code qui pourrait être réécrit en utilisant de meilleures pratiques de code, d’outils ou de langages
• ...
Quelques autres définitions possibles…
![Page 11: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/11.jpg)
Du code sans tests
Michael Feathers, Working Effectively with Legacy Code
![Page 12: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/12.jpg)
![Page 13: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/13.jpg)
Deux grandes approches…
Que faire avec mon code Legacy ?
![Page 14: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/14.jpg)
La peur : le pire ennemi du développement logiciel
14
![Page 15: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/15.jpg)
Tanné de stresser pour une livraison, de déboguer, d’avoir
peur de briser?
15
![Page 16: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/16.jpg)
S.v.p. donnez-moi un nouveau projet !@/$%!/%
![Page 17: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/17.jpg)
La descente aux enfers
Legacy Code Pas de test
Pas de réusinage
Patches
![Page 18: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/18.jpg)
![Page 19: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/19.jpg)
Pourquoi ne pas
revitaliservotre code?
![Page 20: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/20.jpg)
Bien outillé, vous pouvez rénover !
![Page 21: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/21.jpg)
Graduellement, tout en produisant
de la valeur
![Page 22: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/22.jpg)
Sélectionnez votre prochaine « Story » et commencez vos
paiements de dette!
![Page 23: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/23.jpg)
![Page 24: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/24.jpg)
Test de caractérisation
![Page 25: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/25.jpg)
![Page 26: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/26.jpg)
Un test de caractérisation est une description du comportement actuel d’un bout de code.
- Michael Feathers
![Page 27: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/27.jpg)
C’est un briseur de PEUR !
Pour…
Comprendre et documenter ce que fait le code
Empêcher la régression lors du réusinage
+
![Page 28: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/28.jpg)
![Page 29: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/29.jpg)
1. Identifier et isoler un bout de code à modifier ou à analyser
2. Écrire un test qui passe par le bout de code avec une assertion qui échouera
3. Exécuter le test et le laisser vous dire quel est le comportement actuel
4. Changer votre assertion et le nom du test pour tenir compte du comportement actuel
5. Répéter…
La mécanique d’écriture d’un test de caractérisation
![Page 30: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/30.jpg)
public class SalesUtil {
double BQ = 1000.0;
double BCR = 0.20;
double OQM1 = 1.5;
double OQM2 = OQM1 * 2;
public double calculate(double tSales) {
if (tSales <= BQ) {
return tSales * BCR;
} else if (tSales <= BQ * 2) {
return (BQ) * BCR + (tSales - BQ) * BCR * OQM1;
} else { return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1 +
(tSales - BQ * 2) * BCR * OQM2;
}
}
}
http://s3.amazonaws.com/giles/demons_010609/wtfm.jpg
Un exemple simple de code patrimonial?
WTF?
WTF?
WTF?
![Page 31: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/31.jpg)
public class SalesUtil {
double BQ = 1000.0;
double BCR = 0.20;
double OQM1 = 1.5;
double OQM2 = OQM1 * 2;
public double calculate(double tSales){
if (tSales <= BQ) {
return tSales * BCR;
} else if (tSales <= BQ * 2) {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1; } else {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1 +
(tSales - BQ * 2) * BCR * OQM2;
}
} }
@Test
public void test… {
assert(...)
}
Étape 1: identifier un bout de code
1
?
2
? ?
1
2
![Page 32: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/32.jpg)
public class SalesUtil {
double BQ = 1000.0;
double BCR = 0.20;
double OQM1 = 1.5;
double OQM2 = OQM1 * 2;
double calculate(double tSales) {
if (tSales <= BQ) {
return tSales * BCR;
} else if (tSales <= BQ * 2) {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1; } else {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1+
(tSales - BQ*2)*BCR * OQM2;
}
} }
@Test
public void testCalculate() {
assertEquals(
0.0,
SalesUtil.calculate(1000.0)
);
}
Étape 2: écrire une assertion qui ne passe pas
1
?
2
? ?
1
2
![Page 33: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/33.jpg)
public class SalesUtil {
double BQ = 1000.0;
double BCR = 0.20;
double OQM1 = 1.5;
double OQM2 = OQM1 * 2;
double calculate(double tSales) {
if (tSales <= BQ) {
return tSales * BCR;
} else if (tSales <= BQ * 2) {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1; } else {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1 +
(tSales - BQ * 2) * BCR * OQM2;
}
} }
@Test
public void testCalculate() {
assertEquals(
0.0,
SalesUtil.calculate(1000.0)
);
}
Étape 3: exécuter le test + trouver le comportement actuel
> junit.framework.AssertionFailedError: expected:<0.0> but was:<200.0>1
?
2
? ?
![Page 34: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/34.jpg)
public class SalesUtil {
double BQ = 1000.0;
double BCR = 0.20;
double OQM1 = 1.5;
double OQM2 = OQM1 * 2;
double calculate(double tSales) {
if (tSales <= BQ) {
return tSales * BCR;
} else if (tSales <= BQ * 2) {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1; } else {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1+
(tSales – BQ*2)*BCR * OQM2;
}
} }
@Test
public void lessThanBaseQuota_useBaseCommissionRate() {
assertEquals(
200.0,
SalesUtil.calculate(1000.0)
);
}
Étape 4: Remplacer par le comportement découvert
1
2
1
200
2
? ?
![Page 35: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/35.jpg)
public class SalesUtil {
double BQ = 1000.0;
double BCR = 0.20;
double OQM1 = 1.5;
double OQM2 = OQM1 * 2;
double calculate(double tSales) {
if (tSales <= BQ) {
return tSales * BCR;
} else if (tSales <= BQ * 2) {
return (BQ) * BCR +
(tSales - BQ) * BCR * OQM1; } else {
return (BQ) * BCR +
(tSales - BQ) * BCR*OQM1+
(tSales – BQ*2) * BCR*OQM2;
}
} }
…
@Test
public void testCalculate() {
assertEquals(
0.0,
SalesUtil.calculate(2000.0)
);
}
Étape 5: Répéter
1
2
1
200
2
? ?
![Page 36: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/36.jpg)
Attention aux « tant qu’à y être » !
Ciblez uniquement ce que vous voulez modifier.
![Page 37: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/37.jpg)
![Page 38: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/38.jpg)
On n’a pas le temps de faire ça ?!?
![Page 39: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/39.jpg)
Combien de temps ça prend pour comprendre un bout de code Legacy
avant de le modifier?
![Page 40: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/40.jpg)
![Page 41: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/41.jpg)
• Spécification du comportement requis
• Comportement connuet nouveau code
• Permanent
• Spécification du comportement actuel
• Code patrimonial, comportement flou ou perdu
• Temporaire
Test unitaire Caractérisation
How is a CT different?
![Page 42: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/42.jpg)
Est-ce qu’entourer mon application avec des tests bout-en-bout peut m’aider à
caractériser ?
![Page 43: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/43.jpg)
![Page 44: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/44.jpg)
Le réusinage (refactoring) n’est pas une petite refonte!
![Page 45: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/45.jpg)
Pourquoi les gestionnaires/clients/chargés de
projet ont-ils si peur du réusinage ?
![Page 46: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/46.jpg)
Attention au réusinage en Big Bang !
46
![Page 47: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/47.jpg)
Une dépense
Big Bang
Risque très élevé
Pas de nouvelle valeur
Paiements réguliers (dette)
Étape par étape
Risque moindre
Produit de la valeur
Refaire Rénover / Revitaliser
Refonte ou réusinage ?!?
![Page 48: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/48.jpg)
La stratégie
> on veut limiter les dommages et focaliser sur l’objectif le plus pressant
Comme la prise en charge d’un patient dans une urgence…
![Page 49: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/49.jpg)
C’est le changement à faire qui guide notre
intervention
![Page 50: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/50.jpg)
![Page 51: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/51.jpg)
Cette présentation montre à comprendre et sécuriser votre patrimoine…
Maintenant, vous pouvez apprendre à rénover votre patrimoine:• Sprout Methods/Classes• Instance Delegator• Extract to Method• …
Maintenant… comment réusiner ?
![Page 52: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/52.jpg)
Le défi moderne: la maintenabilité
![Page 53: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/53.jpg)
La pourriture du code n’est pas une
« loi naturelle »
![Page 54: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/54.jpg)
Although our first joy of programming may have been intense, the misery of dealing with legacy code
is often sufficient to extinguish that flame.
Michael Feathers, Working Effectively with Legacy Code
Le code patrimonial tue la flamme!
![Page 55: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/55.jpg)
Image de http://beinweb.fr/wp-content/uploads/2014/04/boite-a-outils-entrepreneurs.jpg
Le test de caractérisation…Ajoutez-le à votre boîte à outils!
![Page 56: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/56.jpg)
La « patrimonialite », ça se soigne !
![Page 57: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/57.jpg)
Merci .
![Page 58: Tests de caractérisation : à l’assaut de votre code ... · code « Legacy » patrimonial PASCAL ROY ING., CSM, PSM, PMP. Imaginez du code patrimonial (Legacy)… Imaginez un outil](https://reader031.vdocuments.pub/reader031/viewer/2022041021/5ed0f08f411f6f3957104cf4/html5/thumbnails/58.jpg)
Siteelapsetech.com
Twitter@fbourbonnais
LinkedInlinkedin.com/in/fbourbonnais/fr
ca.linkedin.com/in/roypa
conferences.elapsetech.com
Toutes nos présentations
conferences.elapsetech.com
/legacy-tests-caracterisation
Diapositives et références
Félix-Antoine Bourbonnais
Pascal Roy