

| Paris | 06/06/2011 > 07/06/2011 | 2 jours | 990 €HT |  |
| Paris | 17/10/2011 > 18/10/2011 | 2 jours | 990 €HT |  |
Référence | TCP0801 |
A qui s’adresse ce cours |
Développeur, Chef de projet, Coach/ScrumMaster |
Moyens pédagogiques | Théorie : 30% - Pratique : 70% |
Sessions | 8 stagiaires maximum |
Connaissances requises
|
Il est demandé aux participants de connaître les notions de base du langage Php.
Aucune notion d'UML est nécessaire.
|
Thème
Injecter la qualité au coeur du développement
Présentation du sujet
Le Test Driven Development (TDD) se traduit en français par "Développement Piloté par les Tests". Il s’agit d’un procédé de développement logiciel qui améliore sensiblement la qualité des produits en substituant l'approche traditionnelle "Coder-Tester-Déboguer" par l’approche "Tester-Développer-Remanier". Ce procédé possède la propriété de pouvoir prendre en considération la chaoticité du changement des spécifications tout au long du développement tout en permettant de contrôler en temps réel la non régression fonctionnelle de ce qui a déjà été développé. Ainsi il élimine un certain nombre de goulots d’étranglement liés au processus de développement et contribue à linéariser sa complexité et à réduire considérablement les coûts d’intégration, de
recette et de maintenance.
En conséquence, Qualité logicielle, Pérennité et Evolutivité sont les maîtres mots de ce nouveau procédé qui
permet de produire plus efficacement tout en réduisant le nombre de défauts et les coûts de développement.
Au cours de la formation, vous découvrirez ces nouvelles techniques de test au travers des techniques expertes
telles que la conception simple, le refactoring, la conception émergeante, les Mock, le Test Driven Requirement
et le Behaviour Driven Development.
L’intégralité de cette formation intègre un processus d’accompagnement aux changements et couvre également les questions fondamentales : Qui doit tester ? Ce qu’il faut tester ? Est-ce un procédé rentable et productif ? Le travail en binôme est-il indispensable ? Comment remanier un code existant (legacy code) ?
Objectif
Lors de cette formation, vous découvrirez :
- Concevoir et réaliser des produits logiciels autour de tests unitaires et de recette
- Comprendre l'importance des tests dans la production de logiciels
- Remanier et consolider vos applications existantes en introduisant des tests
- Et situer la pratique du développement piloté par les tests dans le contexte de la gestion de projet en général.
Programme indicatif
Introduction
- L’origine du développement itératif et incrémental
- Objectifs du TDD
I. Définition et Principes du TDD
- Théorie
- Les bibliothèques SimpleTest, PhpUnit et du framework de Symphony
- Les 3A
- Gestion des Exceptions
- Test Driven Design
- Atelier : Conception d’une fonctionnalité simple pour maîtriser les bibliothèques.
II. Le refactoring
- Conception simple & évolution de l’architecture
- Test Driven Design
- Conception émergeante
- Documentation par les tests
- Atelier : Refactoring par l’exemple
III. Les meilleures pratiques de développement agiles
- Les conditions limites
- Test de Base de Données
- Atelier : Module de sécurité
- Test de Performance
- Test de montée en charge
- Test de sécurité
- Stress tests
- Impact des tests « après » au lieu des tests « Avant »
- Atelier : Refactoring par l’exemple
IV. Les objects Mock : Mock, Fake et Stub
- La théorie
- Application de la théorie sans utiliser de bibliothèque
- Découverte des bibliothèques du marché
- Etude en détail des mocks sur PhpUnit et SimpleTest
-
Atelier : Exercice sur le Mock et le Fake
-
Atelier : Mini-Projet en TDD
V. Les Outils
- Partage de code source (SVN, CVS, SourceSafe)
- Automatisation des tests
- Intégration continue et Intégrateurs Continu (phpundercontrol, CruiseControl, Rephlux, Hudson)
- Couverture de test
VI. Test de Recette et TDD
- Acceptance Test Driven Development (ATDD)
- Test Driven Requirement : De la documentation exécutable conforme au programme
- Behaviour Driven Development
- Des UserStories aux tests de recette
- Comment travailler avec son département d’Assurance Qualité (Architectures de déploiement, Intégrateur
continu contraignant, processus ralentissant les développements) ?
- Atelier : Liaison avec le mini-projet
Conclusion
- Les nouveaux paradigmes de développement logiciel
- Aspect psychologique du TDD
- Intérêt du Test Driven Development
Mots-Clefs :
Développement piloté par les tests, Test Driven Development, Programmation Pilotée par les tests, TDD, tests unitaires, tests de recette, tests d'intégration, conformité des spécifications, testabilité, automatisation des tests, agilité, scrum, extreme programming, test unitaire, test de recette, refactoring, remaniement de code, usine de tests, industrialisation, cruisecontrol, anthill, fitnesse, xunit, cppunit, junit, Nunit, httpunit, simpletest, Programmation Orientée Objet, Architecture, conception émergeante, simplicité.