SlideShare une entreprise Scribd logo
Test Driven Development
Agile Testing Day
Aurélien GALTIER
Software Craftsman
Consultant/Formateur web et mobile
Twitter : @AurélienGaltier
Blog : http://blogs.developpeur.org/agaltier/
TDD c’est quoi ?
Moi : TDD c’est quoi ?
Collègue : On crée les tests avant de créer le code de production
″
‶
TDD c’est quoi ?
• Une méthode de développement
• Un outil de clean code
• Un concept test first
• Une philosophie
T comme Test
• On commence par les tests
• Chaque test représente un cas d’utilisation
• L’ensemble des tests représente une description de notre code
• Filet de sécurité
D comme Driven
• Nos tests influencent le code
• Classes
• Méthodes
• …
• Adapté directement aux tests
• Injection
• Interface
• Abstraction
• …
D comme development
• Parce que l’on est développeur
• Code de production
• Clean code
• Refactoring
Phases du TDD
Analyse
Red
Green
Refactor
Red
GreenRefactor
Analyse
• Analyser le besoin métier
• Mettre à jour la liste de tests
• Ecrire le nom de nos tests
• Choix du prochain test à implémenter
Analyse
Analyse : Ecrire le nom du test
• Le pattern Should / When
Should return I When convert 1 in roman number
Should return IV When convert 4 in roman number
Analyse
Analyse : Ecrire le nom du test
• Le cas du And
Should return I and log convert of 1 When convert 1 in roman
number
Should return I When convert 1 in roman number
Should log convert of 1 When convert 1 in roman number
Analyse
Analyse : Choisir son premier test
• Choisir votre prochain test :
• Choisir le plus petit incrément
• Un incrément qui apporte de la valeur
• Un cas à la marge
Analyse
Red
• Ecriture du test
• Compilation du code
• Exécution du test et voir qu'il passe au rouge
Red
Red : Règle des 3 A
Red
Red : Exécution du test
Red
Green
• Implémentation du code
• Respecter seulement le besoin du test
Green
Green
Green
Refactor
• Interaction sur le code
• Maîtrise du code
• Factoriser
• Structurer
• Renommer
• Pattern
• Design
Refactor
Refactor
• Le code de production
• Le code des tests
Refactor
“Always leave the campground cleaner than you found it.”
The Boy Scout Rule (by Uncle Bob)
On recommence
• On recommence à la phase d’Analyse
• On ajoute 1 test
• On implémente notre nouveau test
• On « refactor» l’ensemble du code
TDD
On recommence
• Développement par Cycle
• Itération de code
• Feedback rapide
• Emergence du code
TDD
Démonstration
• Roman Numerals
1
5
10
50
100
500
1000
I
V
X
L
C
D
M
Difficulté du TDD
• Coût
• D’apprentissage
• De développement
Difficulté du TDD
• Code legacy
• Non adapté aux tests
• Refactoring difficile
Difficulté du TDD
• Vous ne maîtrisez pas toujours le code
• On oublie la phase de Factorisation
• On ne prend pas de recul sur le code
Pourquoi faire du TDD
• Code couvert par des tests
• Très peu de code inutile
• Confiance en son code
Pourquoi faire du TDD
• Réduction du debug
• Développement itératif
• Feedback rapide
• Moins de F5
Pourquoi faire du TDD
• Emergence d’une documentation automatique
• Noms des tests parlants
• Les tests couvrent des cas d’utilisation
Comment faire ?
• Coding Dojo
• Kata
• Pratiquer

Contenu connexe

PPTX
[Agile Testing Day] Behavior Driven Development (BDD)
PPTX
[Agile Testing Day] Techniques avancées de tests
PPTX
[Agile Testing Day] Introduction
PPTX
[Agile Testing Day] Test & Métiers
PDF
TDD (Test Driven Developement) et refactoring
PDF
Tdd en action - découverte
PPTX
Human Talks Grenoble - 11/12/2012 - TDD
PDF
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
[Agile Testing Day] Behavior Driven Development (BDD)
[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Introduction
[Agile Testing Day] Test & Métiers
TDD (Test Driven Developement) et refactoring
Tdd en action - découverte
Human Talks Grenoble - 11/12/2012 - TDD
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable

Tendances (20)

PPTX
Tests automatisés java script
PPTX
7 astuces pour améliorer vos tests unitaires
PDF
BBL - TDD pour les DevOps - Puppet
PPTX
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
PPTX
Pourquoi vous ne pouvez pas tester votre code
PDF
Outils et pratiques : tester une application web moderne
PDF
La revue de code : facile !
PDF
La revue de code : agile, lean, indispensable !
PPT
Industrialiser le contrat dans un projet PHP
PDF
Test Driven Development, propulsé par les Legos!
PDF
L'amélioration des tests unitaires par le refactoring
PDF
Normandy JUG integration Continue
PDF
Iut agile lyon 20 nov. 2013 - bdd
PDF
Futur tunis
PPTX
Université du soir - TDD
PDF
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
PPTX
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
PPTX
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
PDF
Valider par des tests - Blend
PDF
Pizza party 30-09-2011 bdd-cucumber
Tests automatisés java script
7 astuces pour améliorer vos tests unitaires
BBL - TDD pour les DevOps - Puppet
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Pourquoi vous ne pouvez pas tester votre code
Outils et pratiques : tester une application web moderne
La revue de code : facile !
La revue de code : agile, lean, indispensable !
Industrialiser le contrat dans un projet PHP
Test Driven Development, propulsé par les Legos!
L'amélioration des tests unitaires par le refactoring
Normandy JUG integration Continue
Iut agile lyon 20 nov. 2013 - bdd
Futur tunis
Université du soir - TDD
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Valider par des tests - Blend
Pizza party 30-09-2011 bdd-cucumber
Publicité

En vedette (9)

PDF
[XamarinDay] Retours sur Evolve 2016
PPTX
[DevTestday] Azure devtestlab - Mikael Krief
PPTX
[Dev/Testday] Dev testazure infra-arm - Manon Pernin
PDF
[DevTestday] Keynote
PPTX
[DevTestday] Continuous Delivery d'une Infra Dev/Test Azure - Olivier Delmotte
PDF
[29/06] Paris Container Day - Microservices avec Azure
PDF
[XamarinDay] Développez en XAML avec Xamarin Forms
PDF
Integration Summit 16 - Keynote Integration Trends
PPTX
01 - [ASP.NET Core] Plénière
[XamarinDay] Retours sur Evolve 2016
[DevTestday] Azure devtestlab - Mikael Krief
[Dev/Testday] Dev testazure infra-arm - Manon Pernin
[DevTestday] Keynote
[DevTestday] Continuous Delivery d'une Infra Dev/Test Azure - Olivier Delmotte
[29/06] Paris Container Day - Microservices avec Azure
[XamarinDay] Développez en XAML avec Xamarin Forms
Integration Summit 16 - Keynote Integration Trends
01 - [ASP.NET Core] Plénière
Publicité

Similaire à [Agile Testing Day] Test Driven Development (TDD) (20)

PDF
Présentation TDD UQAM
PDF
Conférence TDD UQAM - 22 mars 2018.pptx.pdf
PPTX
Conférence TDD UQAM - 22 mars 2018.pptx
PDF
Test driven development v0.2 20121221
PPTX
Présentation des test driven development aka tdd
PPTX
Le pilotage par les tests
PPTX
Unit testing and TDD
PPT
Tests Logiciel
PDF
TDD de la vraie vie - AlpesCraft 2022
PDF
Développement piloté par les tests - DDD
PPT
to Test or not to Test?
PDF
Propulser votre architecture grâce aux mocks
PDF
Commencer avec le tdd
PDF
TDD où l’art de développer à l’endroit
PDF
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
PDF
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
PDF
How to start writing test
PDF
Mockito - Design + tests par Brice Duteil
PDF
Tour d'horizon des tests
PPTX
presentation Zest au JFTL 2014
Présentation TDD UQAM
Conférence TDD UQAM - 22 mars 2018.pptx.pdf
Conférence TDD UQAM - 22 mars 2018.pptx
Test driven development v0.2 20121221
Présentation des test driven development aka tdd
Le pilotage par les tests
Unit testing and TDD
Tests Logiciel
TDD de la vraie vie - AlpesCraft 2022
Développement piloté par les tests - DDD
to Test or not to Test?
Propulser votre architecture grâce aux mocks
Commencer avec le tdd
TDD où l’art de développer à l’endroit
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
How to start writing test
Mockito - Design + tests par Brice Duteil
Tour d'horizon des tests
presentation Zest au JFTL 2014

Plus de Cellenza (20)

PPTX
The PostBuildEvent : Retour sur la //Build 2017
PPTX
DevCon 3 : Containérisation d’applications
PDF
DevCon 3 : BOT Framework & Luis
PDF
DevCon 3 : Azure API Management
PPTX
02 - [ASP.NET Core] ASP.NET Core MVC
PPTX
03 - [ASP.NET Core] Services RESTful et SPA
PPTX
04 - [ASP.NET Core] Entity Framework Core
PPTX
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
PPTX
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
PPTX
Integration Summit 16 - Les nouveautés BizTalk Server 2016
PPTX
Integration Summit 16 - Hybrid Integration
PPTX
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
PPTX
Integration Summit 16 : IoT, Service Fabric et Logic App
PPTX
Integration Summit 16 : Azure API Management
PPTX
Integration Summit 16 - Citizen Integrator / Flow - Power apps
PDF
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
PDF
[XamarinDay] Deep dive des produits Xamarin part 1
PDF
[XamarinDay] Deep dive des produits Xamarin part 2
PDF
[XamarinDay] Xamarin pour votre entreprise
PDF
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
The PostBuildEvent : Retour sur la //Build 2017
DevCon 3 : Containérisation d’applications
DevCon 3 : BOT Framework & Luis
DevCon 3 : Azure API Management
02 - [ASP.NET Core] ASP.NET Core MVC
03 - [ASP.NET Core] Services RESTful et SPA
04 - [ASP.NET Core] Entity Framework Core
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Azure Logic App, bonnes pratiques et industrialisatio...
Integration Summit 16 : IoT, Service Fabric et Logic App
Integration Summit 16 : Azure API Management
Integration Summit 16 - Citizen Integrator / Flow - Power apps
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 2
[XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !

[Agile Testing Day] Test Driven Development (TDD)