Refactoring avec 1,22% de 
code couvert par les tests … 
Golden Master Testing 
à la rescousse ! 
Human Talks Nantes - 9 d...
/me 
Sébastien Prunier 
Développeur chez SERLI 
@sebprunier 
http://blog.sebprunier.com
WTF ? 
+ de 10000 lignes de code à refactorer 
Très peu de tests unitaires 
Seulement 1,22% de code couvert
Programme
Comment faire ? (1/2) 
“Tester c’est douter” 
Go go go ! Pas le temps d’écrire des tests !
Comment faire ? (2/2) 
Tests Unitaires + Mocks 
Base embarquée HSQLDB
Une solution 
Golden Master Testing 
Déterminer le comportement du programme 
Exécuter avec un large jeu de données 
Stock...
Jeu de données 
Cool, il y a des recettes en cours !
Le test
Assertions (1/3) 
Guava 
TreeTraverser<File>
Assertions (2/3) 
AssertJ 
assertThat(refactoredFile).hasContentEqualTo(masterFile)
Assertions (3/3) 
for (File masterFile : 
Files.fileTreeTraverser().preOrderTraversal(masterOutput)) { 
File refactoredFil...
Conclusion 
Approche simple et efficace 
Golden Master Test → couverture > 85%
The end 
Merci ! 
Questions ?
Liens 
● http://blog.sebprunier.com/code/testing/golden-master-testing-refactoring/ 
● https://github.com/google/guava 
● ...
Prochain SlideShare
Chargement dans…5
×

Refactoring avec 1,22% de code couvert par les tests ... Golden Master testing à la rescousse !

949 vues

Publié le

Plus de 10000 lignes de code à refactorer, très peu de tests unitaires, seulement 1,22% de code couvert par les tests.
Comment faire pour se lancer sereinement dans le refactoring ?
Voici une solution possible à l'aide de la technique du Golden Master Test

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
949
Sur SlideShare
0
Issues des intégrations
0
Intégrations
293
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Refactoring avec 1,22% de code couvert par les tests ... Golden Master testing à la rescousse !

  1. 1. Refactoring avec 1,22% de code couvert par les tests … Golden Master Testing à la rescousse ! Human Talks Nantes - 9 décembre 2014 @sebprunier
  2. 2. /me Sébastien Prunier Développeur chez SERLI @sebprunier http://blog.sebprunier.com
  3. 3. WTF ? + de 10000 lignes de code à refactorer Très peu de tests unitaires Seulement 1,22% de code couvert
  4. 4. Programme
  5. 5. Comment faire ? (1/2) “Tester c’est douter” Go go go ! Pas le temps d’écrire des tests !
  6. 6. Comment faire ? (2/2) Tests Unitaires + Mocks Base embarquée HSQLDB
  7. 7. Une solution Golden Master Testing Déterminer le comportement du programme Exécuter avec un large jeu de données Stocker les résultats → Gloden Master Refactorer, exécuter et comparer au master
  8. 8. Jeu de données Cool, il y a des recettes en cours !
  9. 9. Le test
  10. 10. Assertions (1/3) Guava TreeTraverser<File>
  11. 11. Assertions (2/3) AssertJ assertThat(refactoredFile).hasContentEqualTo(masterFile)
  12. 12. Assertions (3/3) for (File masterFile : Files.fileTreeTraverser().preOrderTraversal(masterOutput)) { File refactoredFile = new File( masterFile.getPath().replace( masterOutputPath, refactoredOutputPath ) ); assertThat(refactoredFile).exists(); if (masterFile.isFile()) { assertThat(refactoredFile).hasContentEqualTo(masterFile); } }
  13. 13. Conclusion Approche simple et efficace Golden Master Test → couverture > 85%
  14. 14. The end Merci ! Questions ?
  15. 15. Liens ● http://blog.sebprunier.com/code/testing/golden-master-testing-refactoring/ ● https://github.com/google/guava ● http://joel-costigliola.github.io/assertj/ ● https://plus.google.com/+TheSimpsons

×