Formation Test Driven Development

En ligne - Sur demande

1 500€ HT / personne (1 800€ TTC)

2 jours

Paris - Sur demande

1 500€ HT / personne (1 800€ TTC)

2 jours

Lyon - Sur demande

1 500€ HT / personne (1 800€ 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.

Les participants devront être équipés d’un PC (non fourni) et avoir installé Git et leurs IDEs dans leurs dernières versions.

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 / Formatrices

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.

Nicolas Fedou
Nicolas Fedou

Nicolas a toujours aimé les systèmes (engrenages, mécanique) et les casse-têtes. Il est tombé dans l'informatique depuis qu'il compose des commandes avec Linux. Assembler des commandes, des objets, des composants, des pipelines, c'est comme jouer aux Légo pour lui !

Aujourd'hui, il fait de ses activités de conseil et d'accompagnement en édition de logiciels son coeur de métier. Ses interventions en audits, conceptions de solution, et accompagnements, vont du code du logiciel lui-même à l'organisation des équipes qui produisent ce code, en passant par leurs outils de travail.

Il ne se limite pas au management ou au pilotage de la mise en oeuvre. Il contribue en montrant l'exemple comme un mentor ou un responsable technique.

Eric Siber
Eric Siber

Eric est développeur depuis 2003, après une formation d'ingénieur à Centrale Lille. Après un début de carrière en société de services informatique, il est passé indépendant en 2016.

Spécialisé sur la plateforme Java et l'écosystème Spring / Tanzu, il intervient pour ses clients en audit / conseil, en tant que formateur et en tant que développeur / expert / lead technique / architecte technique, mais également en tant que Scrum Master ou Coach Agile/Craft.

Eric a notamment animé plusieurs cursus de formation longue de reconversion au métier de développeur lors desquels il s'est fait une priorité de transmettre les bonnes pratiques du métier de développeur, méthodes pédagogiques orientées vers l'apprentissage par la pratique qu'il applique sur les formations HackYourJob.

Il a également par le passé donné des formations en entreprises au travers d'autres organismes de formation et partage régulièrement ses connaissances (BBL, Webinaire, conférence, etc.).