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 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
  2. SLIDESMANIA.COM SLIDESMANIA.COM Mon ”dream test” 🎯 échoue quand il faut

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

    🧪 🧪 ⏩ ⏩ ⏩ 🧪 ⏩ 🧪 🧪 🧪 ⏩ ⏩ Non reproductible 🤺
  4. 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
  5. SLIDESMANIA.COM SLIDESMANIA.COM Le « test diamond » Intégration E2E Unitaires

    Inspiré de « l’outside in diamond » de Thomas Pierrain
  6. 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
  7. SLIDESMANIA.COM SLIDESMANIA.COM Test containers Des conteneurs orchestrés par vos tests

    🪩 Java, node, python, go, rust, … 🪞 Environnement technique « ISO prod »
  8. 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
  9. 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
  10. SLIDESMANIA.COM SLIDESMANIA.COM Avantages 💥 Échec : le comportement a changé

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

    à maintenir 🐌 Ça peut devenir lent 🤯 Explosion de complexité dans les tests
  12. 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
  13. SLIDESMANIA.COM SLIDESMANIA.COM Mes tests sont trop compliqués !!! 🔧 Extraires

    des « primiCves de test » 🛠 Builder foncConnel 🚆 Aller à l’essenCel dans chaque test
  14. 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