Développement piloté par les tests (TDD)
Les avantages du développement piloté par les tests (Test-Driven Development) sont les suivants :
1.1. Définition
1.2. Des références sur le TDD
1.2.1. Livres
1.2.2. Blogues et comptes Twitter
1.2.3. Vidéos
1.2.4. Articles
1.2.5. Outils, cadriciels (frameworks) et bibliothèques
1.2.6. Nos offres de formation
1.2. Extensions du TDD
1.2.1. Développement piloté par le comportement (BDD)
1.2.2. Spécifications éxécutables
Le développement piloté par les tests (TDD) est une technique de conception et d'évolution logicielle.
Il s'appuie sur la répétition d'un cycle de développement court :
Les extensions du TDD incluent :
1.3.1. Livres
Le développement piloté par le comportement (BDD) est une méthode Agile qui encourage la collaboration entre les développeurs, les responsables de la qualité, les intervenants non techniques et les entreprises participant à un projet de développement logiciel. Il a été conçu en 2003 par Dan North comme une réponse au Développement piloté par les tests.
Articles Vidéos
- développer un logiciel plus proche des besoins de l'utilisateur;
- encourager l'équipe à développer du logiciel supporté par une bonne conception orientée objet : forte cohésion et faible couplage;
- favoriser la confiance de l'équipe pour maintenir le logiciel grâce à un jeu de tests de non-régression;
- avoir une documentation toujours à jour sur le comportement du logiciel (tests).
Sommaire
1. Développement piloté par les tests (TDD)1.1. Définition
1.2. Des références sur le TDD
1.2.1. Livres
1.2.2. Blogues et comptes Twitter
1.2.3. Vidéos
1.2.4. Articles
1.2.5. Outils, cadriciels (frameworks) et bibliothèques
1.2.6. Nos offres de formation
1.2. Extensions du TDD
1.2.1. Développement piloté par le comportement (BDD)
1.2.2. Spécifications éxécutables
Le développement piloté par les tests (TDD) est une technique de conception et d'évolution logicielle.
Il s'appuie sur la répétition d'un cycle de développement court :
- écrire un test automatisé qui définit l'amélioration désirée. Ce test doit échouer;
- écrire le code qui permet de faire passer le test;
- enfin, remanier le code en vue de le porter vers un standard de qualité acceptable.
- développement logiciel comme un processus d'apprentissage;
- maintien du cycle de développement piloté par les tests;
- faux objets (mock objects);
- conception orientée objet;
- cadriciels de test (JUnit, jMock);
- l'architecture hexagonale d'Alistair Cockburn;
- appui sur du code tiers (third-party code);
- gestion des erreurs;
- lisibilité des tests;
- tests d'interface graphique;
- tests de persistence;
- tests asynchrones.
Les extensions du TDD incluent :
- Le développement piloté par le comportement (Behavior-Driven Development ou BDD) : Les tests sont écrits dans un langage naturel que les non-programmeurs peuvent comprendre.
- Les spécifications exécutables (executable specifications) : Les tests sont écrits dans un langage naturel que les non-programmeurs peuvent comprendre et écrire.
- Le développement piloté par les tests d'acceptation (Acceptance Test-Driven Development ou ATDD) : Les critères spécifiés par le client sont automatisés sous forme de tests d'acceptation qui pilotent ensuite le cycle traditionnel de développement piloté par les tests unitaires (Unit Test-Driven Development ou UTDD).
1.3.1. Livres
- Growing Object-Oriented Software, Guided by Tests, par Steve Freeman et Nat Pryce
- Test Driven Development: By Example , par Kent Beck
- Refactoring: Improving the Design of Existing Code, par Martin Fowler, Kent Beck, John Brant et William Opdyke
- Clean Code: A Handbook of Agile Software Craftsmanship, par Robert C. Martin
- Working Effectively with Legacy Code, par Michael Feathers
1.3.2. Blogues et Twitter
- Object Mentor
- Uncle Bob : blog , twitter
- Brett Schubert : twitter
- Michael Feathers : twitter
- Bob Koss : twitter
1.3.3. Vidéos
- Coplien and Martin Debate TDD, CDD and Professionalism
- Test-Driven Development of Asynchronous Systems, par Nat Pryce
1.3.4. Articles
- Improving Application Quality Using Test-Driven Development
- Making good use of assertion messages in tests
- Clarify Your Intent
- Clearer Intents using Selenium
- Religion's Newfound Restraint on Progress
1.3.5 Outils, cadriciels (frameworks) et bibliothèques
1.3.6 Notre offre de formation
- Développement piloté par les tests (TDD)
- Professional Scrum Developer (.NET)
- Professional Scrum Developer (Java)
Articles Vidéos
- Behaviour-driven development - a road to effective design and clean code
- Dan North on Behavior driven development
- Behavior-driven development tools (wikipedia)
- Lettuce, un outil BDD pour Python
- Cucumber, un outil BDD pour Ruby
- JBehave, un outil BDD pour Java

