Formation Tests Design & TDD

En ligne - 11-13 décembre

1 950€ HT / personne (2 340€ TTC)

3 jours

Objectifs


Savoir utiliser le Test Driven Development sur les projets réels afin de livrer un code de qualité avec des tests maintenables et par conséquent pouvoir livrer le logiciel fréquemment en production. Retrouvez le plaisir du développement grâce au TDD !

Acquis à l'issue de la formation

Le participant à cette formation aura acquis des bases solides pour travailler en TDD et designer son code, en particulier :

  • Ecrire des tests maintenables
  • Couvrir du code non testé avec tests
  • Refactorer pour une bien meilleure qualité de code
  • Travailler en TDD dans le contexte professionnel
  • Évaluer et concevoir la stratégie de test de son équipe en découpant les tests selon la pyramide des tests
  • Et finalement vous apprendrez à utiliser votre IDE comme un ninja!

Public concerné et pré-requis

Cette formation vise les développeurs confirmés ayant une bonne maîtrise d’au moins un langage de programmation (orienté objet ou fonctionnel), en terme de syntaxe, environnement de travail (nous pouvons vous aider sur Java, JS/TS, C#, PHP et Python).

La formation contient une part importante de pratique. Les sessions sont réalisées avec un maximum de 10 personnes, pour nous permettre d’adapter le déroulement de la formation et de contextualiser les exercices, en fonction des participants et de leurs spécificités, tout en garantissant l'acquisition des compétences visées par la formation.

Evaluation

En début de formation, une autoévaluation est effectuée pour évaluer le niveau, ainsi que les attentes de chaque participant. Ainsi nous pouvons organiser au mieux les différents groupes de travail.
Par la suite, le formateur effectue une évaluation continue à l'aide des nombreux exercices pratiques.
En fin de formation, la progression et les acquis sont autoévalués par chacun des participants. Le formateur fournit à chacun des participants une évaluation, ainsi que les axes d'amélioration.
En option, un accompagnement postformation peut être effectué. Cela fera l'objet d'un devis complémentaire.

Programme

  • Première demi-journée:
    • TDD sur code neuf

      Commençons par la base de la pratique.

      • Introduction, allons à l'essence, le pourquoi. Démo de l'approche avec plein d'astuces de codeur
      • Mise en place de l'environnement (auto-watch … ) et exercices de TDD
      • Retrospective de l'itération
      • Savoir accueillir de nouvelles demandes
      • Savoir accueillir incréments fonctionnels non prévus
  • Seconde demi-journée:
    • TDD sur code neuf (suite)
      • Rendre les tests maintenables et lisibles
      • Refactorer le code pour plus de flexibilité et testabilité
      • Utiliser les test en tant que documentation
      • Conclusion et introduction de la Pyramide des tests, discussion sur les parallèles avec nos tests des projets
  • Troisième demi-journée:
    • Mocks et stubs
      • Apprendre à manipuler un framework de mocks pour tester avec dépendances et tester des méthodes "void".
      • Bonnes pratiques de mocking et les pièges du mocking
    • Tests et legacy
      • Reprendre du code sans tests
      • Comment rapidement écrire des tests de "caractérisation"
      • Refactorer pour lisibilité puis améliorer encore sa conception grâce aux indications des tests
      • Techniques: Extraire et surcharger, introduire paramètre, tester par la gauche, refactorer par la droite
      • Démo, couvrir du code existant, 5 astuces de tests sur legacy
      • Ecrire des tests qui expriment le métier
      • Mise en place de l'outil de couverture et exercice
  • Quatrième demi-journée:
    • Tests et legacy (suite)
      • Démo de refactoring, les 5 astuces de refactoring efficace
      • Rendre le code lisible comme un livre
      • Considérations architecturales.
      • Les tests nous montrent des problèmes (Code Smells) analysons-les.
      • Démo des techniques, dont le remplacement de l'héritage par la composition et injection des dépendances
      • Exercice
  • Cinquième demi-journée:
    • TDD avec des dépendances non testables
    • Architecturer pour la testabilité et la production
    • Etablir une stratégie des tests performants.
    • Présentation de l'architecture hexagonale
  • Sixième demi-journée:

    Une première séance de développement puis discussion des problématiques rencontrés et élaboration d'une stratégie de testabilité suivies de la mise en épreuve de la stratégie, y compris:

    • Construire du code en TDD en présence de code non testable, tels que les webservices externes et les bases de données.
    • Comment tester le "non testable" quand même.
    • Découper en plusieurs suites de test

Formateur / Formatrice

Johan Martinsson
Johan Martinsson

Johan Martinsson est un développeur freelance qui se passionne entre autres pour le design du code. Avec 20 ans d’expérience professionnel, il a passé les 11 dernières années à aider des équipes de maîtriser le développement accompagné de tests dans de multiples langages. Les entreprises apprécient particulièrement sa capacité à exploiter les synergies entre besoin business et approche qualité dans le code.

Régulièrement il trouve des (bonnes) excuses pour aller montrer un peu de code dans des conférences en France et à l'international. Johan est un serial-kata creator, ayant crée de nombreux katas pour s'entraîner.

Johan est instigateur ou co-organisateur de nombreux cercles et évènements communautaires, tels que des coding dojo, meetups craftsmanship, code-retreats, les rencontres européennes SoftDevGang, Agile Grenoble, Snowcamp et le tout dernier AlpesCraft.

Témoignages

Très bonne formation qui reprend les bases du TDD. Tout le spectre du TDD est entièrement couvert au travers de différentes mis en situation et cas pratique.

Thibaut BLAIRON (Wanadev)

Merci pour la formation, elle nous a permis de consolider nos connaissances sur le TDD. Au delà du programme complet on a aussi pu découvrir des outils et des pratiques qui seront utiles au quotidien.

Timotée NEULLAS (Wanadev)

Merci pour cette formation et merci à Johan pour sa disponibilité

Adrien CENTONZE (Wanadev)

Formation TDD intéressante et enrichissante

Développeur Wanadev