TDD - méthodes agiles¶
Test-Driven Development
Kent Beck 2003
premiers concepts d”extreme programming
méthodes agiles
Agile¶
Les méthodes agiles constituent de nouveaux modes d’organisation
Pas seulement en informatique
Industrie automobile, logistique, etc.
Méthodes les plus connues¶
Pair Programming
Test Driven Development
Scrum
Scrum Master
Product Owner
Sprints
StandUp meetings
Retrospectives
Standup Meetings¶
But de ces meetings¶
Fournir un feedback (retrospective)
Organiser les étapes suivantes
Etre dans une position “active”
Backlogs (Todo lists)¶

Joli backlog¶
Overloaded backlog¶

backlog un peu chargé¶
Méthode Scrum¶

Eléments Scrum¶
Scrum¶
Pierre angulaire :
items de Backlog
Tests
TDD et versionnage
Groupes :
Typiquement 4-5 personnes
certains projets concernent des centaines de personnes (noyau linux, OS, etc.)
Avant tout: les Tests¶
Différentes sortes de tests
exemples
Pourquoi le TDD ?
Différentes sortes de tests¶
::.. hint:: En informatique, un test est une procédure de vérification partielle d’un système
Il y a une grande diversité de tests, concentrons nous sur les 3 principales catégories
Les 3 principaux types de tests¶
tests unitaires : s’appliquent à une méthode ou fonction isolée du reste du système (d’où le nom d’unitaire)
tests d’intégration : comme les tests unitaires, mais sans êtres séparés du reste du système.
tests fonctionnels : On teste une fonctionnalité complète en décrivant une sucession d’actions effectuée par un utilisateur de l’application.
exemples¶
Pour tester une fonction, on fournit une liste d’entrées/sorties
Pour tester une fonctionalité, on peut décrire son comportement attendu en écrivant une User Story comme: “Alice se rend sur la page d’accueil du site, voit 2 zones de saisie de nombres qu’elle complète, puis clique sur le bouton ajouter, et constate avec plaisir que le résultat de l’addition des 2 nombres s’affiche dans une zone encadrée de vert au milieu de la page”
Voir TDD with Python
Test-Driven Development¶
si on formalise l’idée de penser d’abord en termes d’exemples d’entrées/sorties examples avant de coder
on arrive naturellement au TDD :
definir les tests
puis on code
Automatiser les tests¶
Tous les langages ont leur librairie de tests unitaires
phpUnit en PHP
JUnit en Java
pytest ou unnitest en Python
GoogleTest ou Boost en C++