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

Je fais des tests unitaires... puis après?

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Je fais des tests unitaires... puis après?

Alice écrit des tests unitaires pour… tester son code. Pour perfectionner son art, Alice entame une quête qui l'amènera à voir ses tests autrement.

Alice décrouvrira qu'un test peut être écrit pour explorer l'architecture, documenter, prédire la maintenabilité, développer le bon produit (ATDD), etc. tout en étant facile à maintenir.

Présentation en 6 tableaux sommaires de la quête d'Alice.

Avatar for Félix-Antoine Bourbonnais

Félix-Antoine Bourbonnais

November 30, 2017

More Decks by Félix-Antoine Bourbonnais

Other Decks in Technology

Transcript

  1. Félix-Antoine Bourbonnais B.ing., PSM, M.Sc. / Formateur / Conférencier /

    Mentor / Coach d’équipes $> Essais automatisés et TDD $> Architecture évolutive et DDD $> BDD et spécification par l’exemples $> Scrum $> Conseils stratégiques $> Gestion du changement
  2. Alice$> Fait des tests unitaires Alice$> Son objectif principal est

    d’avoir une bonne couverture et de s’assurer que son code fonctionne Tableau 0: Le pays des tests Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author Force: Outils collectés
  3. Alice$ >&2 Trouve difficile de maintenir tous ses tests et

    de tout tester Alice$ >&2 Se demande pourquoi il reste encore des « anomalies »… Alice$ >&2 Voudrait avoir un meilleur retour sur investissement pour ses tests… Quête 1 : Le pays du test propre Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  4. Alice$ < Doit commencer à voir son test autrement! Le_Test?

    ! \ court, clair, précis \ Doit lui apprendre quelque chose Tableau 1 Le pays du test propre Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  5. •Nommage clair Toujours spécifier le comportement attendu et le contexte

    •Séparation des « 3A » (Arrange/Act/Assert) •Test court et clair •Réduire le bruit Utilisation de méthodes privées Utilisation de Mother Objects et/ou Builders •Enlever les tests répétitifs Astuces
  6. Alice$ > Ne voit plus ses tests de la même

    manière Alice$ > Voit le test comme un outil pour guider son développement Tableau 1 : Le pays du test propre Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  7. Alice$ > A des milliers de tests Alice$ > Alice

    a toujours des problèmes de maintenabilité à long terme Quête 2 Le pays de la maintenabilité Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  8. Alice$ < Doit apprendre ce qu’est un test unitaire Alice$

    < Doit apprendre à jouer avec la portée des tests et à les boulonner Alice$ < Doit savoir qu’il n’existe pas seulement des tests unitaires et des tests bout-en-bout Tableau 2 Le pays de la maintenabilité Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  9. Image par Gamma-Ray Productions sur Flickr La pyramide des tests

    % du portfolio de tests auto. (tous les types) Large (L) Moyen (M) Petit (S) ~10% ~20% ~70% Bout-en-bout Toutes composantes Une ou quelques classes Une composante intégrée Fragilité des tests
  10. Alice$ > Sait maintenant comment fragmenter ses différents tests Alice$

    > Sait comment jouer avec la portée et les types de tests Tableau 2 Le pays de la maintenabilité Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  11. … sauf que l’équipe d’Alice travaille dans du “Legacy Code”

    {… non pour vrai!} Quête 3 Le pays du Legacy Code Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  12. Alice$ > Sait maintenant comment se servir de ses tests

    pour explorer, comprendre, puis réusiner en sécurité son patrimoine! Tableau 3 Le pays du Legacy Code Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  13. … Alice commence à comprendre qu’elle peut se servir de

    ses tests comme d’un outil ! … pourrait-elle se servir de ses tests pour explorer et valider son architecture ?!? Quête 4 Le pays du design émergeant Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  14. Des approches différentes selon le contexte ! Application avec un

    domaine riche et beaucoup de logique d’affaires, CRUD ou principalement graphique ?
  15. Alice$ > Alice a maintenant la capacité de piloter son

    architecture avec ses tests ! Tableau 4 Le pays du design émergeant Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  16. Alice maîtrise maintenant la manière d’utiliser ses tests pour construire

    correctement son code ! ... Mais est-ce le bon produit ?!? Quête 5 Le pays de l’ATDD Force: Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  17. ATDD 1 Écrire un scénario qui échoue 2 Scénario passe

    3 Pour en savoir plus http://conferences.elapsetech.com/ atdd-double-boucle
  18. ATDD à double boucle * Uniquement certains scénarios (voir Pyramide

    des tests). Pourrait être @MEDIUM ou autre portée… Logique (domaine) UI Infra / Données 2c 2a 2b 1c 1a 1b
  19. BDD & Spécification par l’exemple (SbE) Pour en savoir plus

    http://conferences.elapsetech.com/ bdd-spec-affaires
  20. Alice peut maintenant utiliser ses tests pour piloter toutes les

    couches de son produit à partir d’une compréhension commune des besoins d’affaires! Tableau 5 Le pays de l’ATDD Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  21. Comme Alice peut maintenant développer incrémentalement et “pousser” de tous

    petits morceaux fonctionnels et testés… … elle peut considérer déployer en continue ! Le pays des étoiles Outils collectés Image de Carl Warner -- carlwarner.com -- Foodscapes Utilisée avec la permission de l’auteur / With the permission of the author
  22. Site elapsetech.com Twitter @fbourbonnais Courriel [email protected] LinkedIn linkedin.com/in/fbourbonnais/fr conferences.elapsetech.com Toutes

    nos présentations conferences.elapsetech.com /tests-unitaires-apres Diapositives et références Félix-Antoine Bourbonnais @