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

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

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.

Félix-Antoine Bourbonnais

November 30, 2017
Tweet

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 @