Test Driven Development

3 jours (21 heures) - Tarif sur demande

 Formation Perspectives et évolution de la DSI

PROGRAMME

Jour 1

CONNEXION

• Tour de table
- Présentation des participants
- Brainstorming : les pratiques de développement utilisées en entreprise
- Les pièges à éviter lorsque l’on programme

PERCEPTION DU TDD

• Mythes du TDD
• Réalité du TDD
• Exercices pratiques
- Tester unitairement produit
- Concevoir un produit via les tests unitaires

GESTION DES EXCEPTIONS - REFACTORING DÉFINIR UN TEST

• En génie logiciel
• En TDD
• Exercice pratique : compréhension d’un code de tests

DÉFINIR LE TEST DRIVEN DEVELOPMENT

• Mettre en évidence l’intention
• Réfléchir avant chaque ligne de code
• Bénéfice de la couverture de tests

FEEDBACK ET AGILITÉ

• Notions de base
• Exercice pratique : identifier tous les feedbacks que peut utiliser un développeur
• Brève histoire du feedback entre le développeur et son code
• Importance du feedback
• Le coût croissant de correction des défauts
• Information vs feedback
• Exercice pratique : échanges sur des situations analogues où le soin porté à l’outil favorise la vitesse de production

TDD ET GÉNIE LOGICIEL

• Renversement du modèle industriel classique
• Comparaison des modèles industriel et artisanal
• Pratiques autour de la sphère TDD
• Points d’attention
• Obstacles à l’adoption de TDD

BASES DE TDD : DÉVELOPPEMENT D’UNE APPLICATION SIMPLE


• Présentation générale
• Exercice pratique : conception par carte responsabilités / collaboration
• Pattern TDD : test list
• Exercice pratique : lister les tests d’une des classes du projet
• Le cycle de TDD
• Des règles simples
• Pattern : Assert First
• Exercice pratique : mettre en route son environnement et écrire un premier test

TROIS PATTERNS CARACTÉRISTIQUES DE TDD

• Pattern TDD : “Fake it ‘til you make it”
• Pattern TDD : « Triangulate »
• Pattern TDD : « Obvious Implementation »
• Exercice pratique : manipuler ces 3 patterns sur une fonction simple
• Pattern TDD : « Données de test »
• Pattern TDD : « Tests isolés »
• Exercice pratique : développement d’une classe simple (conteneur)
• Exercice pratique : développement d’une classe dotée de logique (règles métier)
• Exercice pratique : développement d’une collaboration entre 2 classes (application)

CLÔTURE DU JOUR 1

Jour 2

CONNEXION

• Partager avec le groupe sa session de programmation / débogage la plus difficile

PRINCIPES DE SURVIE TDD

• Pattern TDD : « Don’t Repeat Yourself »
• Pattern TDD : “You Ain’t Gonna Need It””
• Problème des dépendances extérieures
• Pattern TDD : « Stub »
• Exercice pratique : créer un Stub pour résoudre un problème de données de tests
• Pattern TDD : « Mock »
• Exercice pratique : créer un Mock pour simuler un appel de méthode

DÉVELOPPEMENT D’UNE APPLICATION (SUITE)

• Exercice pratique :
- Développement d’une collaboration entre plusieurs classes (cycle de vie de l’application)
- Développement d’une classe dépendante aux effets de bords (ex. : horloge système)
- Développement d’une collaboration entre plusieurs classes (sessions multiples)
- Développement d’une application connectée (serveur)
- Développement d’une application connectée (client)

CLÔTURE DU JOUR 2

Jour 3

CONNEXION

• Partage d’expériences sur le code existant

ANTIPATTERNS TDD

• Antipattern TDD : « Succès inattendu d’un test »
- Exercice pratique : analyse critique d’un test qui passe du premier coup
• Antipattern TDD : « Ecrire des tests trop grands »
- Exercice pratique : analyse critique d’un test trop grand
• Antipattern TDD : « Diagnostic trop long »
- Exercice pratique : analyse critique d’un test donnant lieu à un diagnostic long
• Antipattern TDD : « Test sur une méthode privée »
- Exercice pratique : analyse critique d’un test d’une méthode privée
• Antipattern TDD : « Echec intermittent »
- Exercice pratique : analyse critique d’un test qui passe de façon intermittente
• Concept et présentation du code legacy

LE PROBLÈME DU CODE LEGACY

• Modifier et préserver le code
• Le paradoxe : refactorer du code sans tests pour y ajouter des tests

AMENER DU CODE SOUS TESTS


• Identifier un point de changement
• Trouver les points de test
• Casser les dépendances
• Créer un raccord (seam)
• Modifier le code et refactorer
• Exercice pratique : écrire des tests sur un code existant en vue de documenter le code
• Exercice pratique : écrire des tests permettant de refactorer le code

SYNTHÈSE ET RAPPEL DES POINTS CLÉS DE LA FORMATION

OBJECTIFS

Identifier les avantages de TDD sur les autres techniques de programmation
(code puis T.U).
Développer une application simple avec TDD.
Expliquer et illustrer les principes à l’oeuvre dans cette démarche.
Utiliser TDD sur un projet nouveau.
Utiliser des techniques spécifiques de TDD sur un projet existant.

PUBLIC

Chef de projet en développement
Développeur
Testeur ayant une fibre développement
Architecte
Technical Leader

PRÉREQUIS

Connaissances de la programmation objet.
Expérience de base du développement de logiciel.

Demande d'informations


Liste des sous-pages