Formation Test Driven Development

En ligne - 24-25 octobre

1 400€ HT / personne (1 680€ TTC)

2 jours

Paris - 2-3 décembre

1 400€ HT / personne (1 680€ TTC)

2 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 !

Cette formation couvre la majorité des méthodes dont vous avez besoin pour tester efficacement le code d'un "vrai" projet. L'objectif est de devenir opérationnel sur nos projets du quotidien.

Acquis à l'issue de la formation

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

  • Ecrire du code en cycle TDD, et en double-cycle TDD
  • Spécifier une story par des exemples, puis les transformer en tests (Behaviour Driven Development)
  • Travailler en TDD dans le contexte professionnel y compris avec des dépendances non testables.
  • Refactorer pour une bien meilleure qualité de code.
  • Refactorer des tests pour la maintenabililité
  • Évaluer et concevoir la stratégie de test de son équipe en découpant les tests selon la pyramide des tests.
  • Architecturer pour la testabilité
  • 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 (6 en remote), 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

  • TDD sur code neuf - 4h

    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
    • Maitriser le cycle TDD
    • Spécifier par des exemples (BDD)
    • Design d'abord ou à fur et au mesure?
    • KISS et YAGNI rendus possible grâce aux tests
  • TDD et maintenance des test - 3h

    Comment ne pas tout changer les tests quand il y a des nouvelles fonctionnalités? C'est quoi un test bien écrit, lisible?

    • Savoir accueillir des incréments fonctionnels non prévus
    • Rendre les tests maintenables et lisibles
    • Rendre ses tests plus concis avec des tests paramétrés
    • Refactorer le code pour plus de flexibilité et maintenabilité
    • 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
  • Mocks et stubs - 2h

    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

  • TDD avec des dépendances - Architecture testable - 5h

    Architecturer pour la testabilité et la production. Etablir une stratégie des tests pour rester performant avec les tests.

    Présentation de l'architecture hexagonale.

    Une première séance de développement, puis discussion des problématiques rencontrés et élaboration d'une stratégie de testabilité. Suivi 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.