100% couverture de code par les tests

3 532 vues

Publié le

Session donnée à Agile Tour Montréal, 29 Octobre 2011 et Confoo.ca, 1er Mars 2012.

S'adonner au développement itératif et incrémental sans automatiser les tests, c'est s'engager sur la voie du Scrum Flasque (Flaccid Scrum pour reprendre l'expression de Martin Fowler). C'est voir petit à petit la vélocité de l'équipe diminuer, la dette technique s'accumuler, la livraison de valeur d'affaires cesser. La base de code devient progressivement intravaillable. Bref, la qualité se détériore et les coûts de maintenance de l'application explosent. L'automatisation des tests à tous les niveaux est essentielle pour livrer itération après itération du logiciel de qualité qui enchantera vos clients. Plus facile à dire qu'à faire, à priori. Et quelle couverture de code devrait-on viser ? Seulement le chemin nominal ? 70% ? ... ou bien 100% ! Certains diront déjà, 100% c'est irréaliste ! Au contraire, cette session vous présentera comment viser ... et atteindre une couverture de test de 100% en tirant profit des différents types de tests et en construisant vos propres outils de tests.

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

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
3 532
Sur SlideShare
0
Issues des intégrations
0
Intégrations
54
Actions
Partages
0
Téléchargements
29
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

100% couverture de code par les tests

  1. 1. Vincent Tencéhttp://noncomplexstuff.comhttp://github.com/testinfected@testinfected
  2. 2. 100% de couverture en finir avec les fuites
  3. 3. 75%25% 95%
  4. 4. Aucun sens
  5. 5. 100%
  6. 6. “That’s the goal” - Uncle Bob
  7. 7. 99%Code vert
  8. 8. Couverture Domaine 98%Infrastructure 100% Controllers 100% Views 100% ? 0% 25% 50% 75% 100%
  9. 9. 100%Code vert et rouge
  10. 10. Statistiques 1368 lignes de code de production en Java 2048 lignes de code d’infrastructure de test 2395 lignes de code de test 7 tests systèmes 21 tests d’intégration 87 tests unitaires
  11. 11. Pourquoi s’en soucier
  12. 12. Trop de projets agilesfont naufrages
  13. 13. Un phenomèneconnu sous le nomde ... “Flaccid Scrum” http://www.flickr.com/photos/beansandgrapes/5253690227/
  14. 14. “Your Scrum has gone weak at the knees” - Martin Fowler
  15. 15. Impact sur la vélocité re l ib te 100 c h u n 75 e téTravail à faire tiv i 50 u c rod 25 P 0 0 1 2 3 4 5 6 Sprints
  16. 16. “Legacy Software”
  17. 17. Impact sur les coûts Bonne qualité Qualité typique$400,000 v u e e n li te$300,000$200,000 F ail$100,000 $0 1 2 3 4 5 6 7 8 9 10 Années
  18. 18. “Iterative and incrementaldevelopment only works ifyou write clean code andtests around it” - Ken Schwaber
  19. 19. L’option la plus risquée
  20. 20. Tyrannie de l’urgence
  21. 21. Planifier le futur ...
  22. 22. ... en ayant du plaisir
  23. 23. N’écrivez pas uneligne de code sansun test rouge.
  24. 24. Simple.
  25. 25. 0
  26. 26. 0Java
  27. 27. 0SQL
  28. 28. 0Annotation
  29. 29. 0Configuration
  30. 30. 0Javascript
  31. 31. 0HTML
  32. 32. T.D.D.
  33. 33. Améliorer le message d’erreurÉcrire un test Faire passer qui échoue le test Refactoriser
  34. 34. Améliorer le message d’erreur Écrire un test Écrire un testd’acceptance qui échoue Faire passer le test unitaire qui échoue Refactoriser
  35. 35. Test système Pa m ent ym ip e nt Sh User Interface Persistence Ma e il TimTest
  36. 36. Un exemple
  37. 37. Test unitaire Pa m ent ym ip e nt ShUser Interface Persistence Ma e il Tim Test
  38. 38. Un exemple
  39. 39. Test d’intégration Pa m ent ym ip e nt Sh User Interface Persistence Ma e il Tim Test
  40. 40. Un exemple
  41. 41. Pur plaisir ?
  42. 42. Vostechnologies vous rendrons la vie dure
  43. 43. Vos frameworks vous ferons suer
  44. 44. Vos outils se mettront en travers de votre route
  45. 45. L’urgence dictera sa loi
  46. 46. Choisissez qui des vous aidenttechnologies
  47. 47. Investissez dans vos outils
  48. 48. Concevez vos propres outils
  49. 49. Adoptez une architecture qui supporte les tests
  50. 50. User Interface APITim e adapter Persistence “Ports and Adapters”
  51. 51. Conclusion ?
  52. 52. “A Journey of a thousandmiles being with a singlestep” - Lao-Tzu
  53. 53. Lancez-vous !
  54. 54. Pour en savoir plus• Le cours Professional Scrum Developer Java• Offert en version 3 jours et 5 jours• Visitez http://pyxis-tech.com/fr/notre-offre/ formation-agile/professional-scrum-developer- java
  55. 55. Bonne route !

×