Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tester pour ne plus douter

Tester pour ne plus douter

Benjamin Cavy

June 30, 2022
Tweet

More Decks by Benjamin Cavy

Other Decks in Programming

Transcript

  1. SLIDESMANIA.COM SLIDESMANIA.COM Tester pour ne plus douter

  2. SLIDESMANIA.COM Benjamin Cavy Je fais du dev à la MAIF

    On recrute 😉
  3. SLIDESMANIA.COM SLIDESMANIA.COM Izanami Otoroshi Daikoku Feature flipping Reverse proxy dédié

    à l’API management Portail API orienté développeurs https://maif.github.io/ Melusine Classification de mails Thoth Event sourcing Shapash Explicabilité des modèles ML
  4. SLIDESMANIA.COM SLIDESMANIA.COM Tester pour ne plus douter

  5. SLIDESMANIA.COM SLIDESMANIA.COM Tester pour ne presque plus douter

  6. SLIDESMANIA.COM SLIDESMANIA.COM Tester pour un peu moins douter

  7. SLIDESMANIA.COM SLIDESMANIA.COM Ceci n’est pas une « méthode miracle »

  8. SLIDESMANIA.COM SLIDESMANIA.COM C’est quoi un bon test ?

  9. SLIDESMANIA.COM SLIDESMANIA.COM La pyramide des tests Unitaires Intégration E2E Coût

    Temps d’exécution Précision
  10. SLIDESMANIA.COM SLIDESMANIA.COM Mon ”dream test” 🎯 échoue quand il faut

    🧪 est reproductible ⏩ s’exécute vite 💡se comprend facilement
  11. SLIDESMANIA.COM SLIDESMANIA.COM La pyramide des tests Unitaires Intégration E2E 🧪

    🧪 🧪 ⏩ ⏩ ⏩ 🧪 ⏩ 🧪 🧪 🧪 ⏩ ⏩ Non reproductible 🤺
  12. SLIDESMANIA.COM SLIDESMANIA.COM Les limites des tests unitaires 🪢 Très couplés

    à la structure du code ⛓ Complique le refactoring 🧩 On teste des bouts de code, pas des fonctionnalités 😨 Peu de confiance
  13. SLIDESMANIA.COM SLIDESMANIA.COM Le « test diamond » Intégration E2E Unitaires

    Inspiré de « l’outside in diamond » de Thomas Pierrain
  14. SLIDESMANIA.COM SLIDESMANIA.COM Test d’integration : mes guidelines 🧑💻‍‍ Se focaliser

    sur les foncAonnalités / parcours 📦 Tester en mode « boîte noire » 🍾 Bouchonner le moins possible
  15. SLIDESMANIA.COM SLIDESMANIA.COM Et concrètement ?

  16. SLIDESMANIA.COM SLIDESMANIA.COM Test containers Des conteneurs orchestrés par vos tests

    🪩 Java, node, python, go, rust, … 🪞 Environnement technique « ISO prod »
  17. SLIDESMANIA.COM SLIDESMANIA.COM Wiremock Des bouchons pour les appels HTTP 🍾

    Bouchonnage à une maille fine ⚙ Serveur démarré en standalone ✅ VérificaCon d’appels Alternatives oMock-server pour node oMock Service Worker pour le front
  18. SLIDESMANIA.COM SLIDESMANIA.COM Cypress Fast, easy and reliable testing for anything

    that runs in a browser. 🎇 une UI qui permet de visualiser les étapes du test 🧰 fonctionnalités de navigation, bouchonnage, assertions asynchrones, … 🔎 4 navigateurs supportés
  19. SLIDESMANIA.COM SLIDESMANIA.COM Testing library Une librairie orientée accessibilité

  20. SLIDESMANIA.COM SLIDESMANIA.COM Application API Application API Application API Frontend DOM

  21. SLIDESMANIA.COM SLIDESMANIA.COM Application API API API Frontend DOM

  22. SLIDESMANIA.COM SLIDESMANIA.COM Application API API API

  23. SLIDESMANIA.COM SLIDESMANIA.COM API API Application Frontend Application API DOM

  24. SLIDESMANIA.COM SLIDESMANIA.COM Avantages 💥 Échec : le comportement a changé

    🔧 Résistant au refactoring ✅ Teste toute la stack 💡 Facilite le « TDD »
  25. SLIDESMANIA.COM SLIDESMANIA.COM Les points durs 🛠 Les bouchons sont pénibles

    à maintenir 🐌 Ça peut devenir lent 🤯 Explosion de complexité dans les tests
  26. SLIDESMANIA.COM Découplage total Redémarrage / reset complet entre chaque test

    C’est lent !!! 2 causes principales 🚚 Instantiation des briques techniques 📑 Setup fonctionnel pour le test Couplage fort Contexte conservé ⚠ Dépendant de l’ordre d’exécution Couplage « Juste milieu » Nettoyage programmatique Contexte commun pour une suite de test
  27. SLIDESMANIA.COM SLIDESMANIA.COM Mes tests sont trop compliqués !!! 🔧 Extraire

    des « primitives de test »
  28. SLIDESMANIA.COM SLIDESMANIA.COM Mes tests sont trop compliqués !!! 🔧 Extraires

    des « primiCves de test » 🛠 Builder foncConnel
  29. SLIDESMANIA.COM SLIDESMANIA.COM Mes tests sont trop compliqués !!! 🔧 Extraires

    des « primiCves de test » 🛠 Builder foncConnel 🚆 Aller à l’essenCel dans chaque test
  30. SLIDESMANIA.COM SLIDESMANIA.COM S’affranchir de la pyramide des tests Quelques pointeurs

    vers d’autres talks Thomas Pierrain Outside-in Diamond pour écrire des tests An:fragiles & orientés mé:er Jonathan Boccara Florent Le Gall et Paola Ducolin Le (dés)amour des tests web Julien Durillon REX : TDD avec TestContainers @benjamin_cavy
  31. SLIDESMANIA.COM SLIDESMANIA.COM @benjamin_cavy Merci ! Des questions ?