Automatiser les tests à tous les niveaux est essentiel au développement itératif et incrémental. Néanmoins, c'est plus facile à dire qu'à faire. Il faut souvent retrousser nos manches pour automatiser les tests d'intégration ou les tests systèmes (lire: de bout en bout).
Voici les diapos de la session donnée sous forme de Kata au Montréal JUG (Java Users Group) le 29 septembre 2011. Dans cette session j'ai démontré comment piloter le développement d'une application par les tests clients automatisés (tests d'acceptance et tests systèmes). J'y ai présenté comment tirer profit des différents types de tests pour produire du code de qualité.
Augmenter votre efficacité en gestion des stocks par la classification des ar...
Développement piloté par les tests, de l'extérieur vers l'intérieur
1. Développement piloté par
les tests
de l’extérieur vers l’intérieur
Vincent Tencé
@testinfected
http://noncomplexstuff.com
2. D’abord le scénario
Pa
m ent ym
ip e nt
Sh
User Interface
Persistence
Ma e
il Tim
Test
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
3. Puis le domaine
Pa
m ent ym
ip e nt
Sh
User Interface
Persistence
Ma e
il Tim
Test
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
4. Les tests nous guident
Pa
m ent ym
ip e nt
Sh
User Interface
Persistence
Ma e
il Tim
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
5. Ensuite les données
Pa
m ent ym
ip e nt
Sh
User Interface
Persistence
Ma e
il Tim
Test
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
6. Enfin la vue
Pa
m ent ym
ip e nt
Sh
User Interface
Persistence
Ma e
il Tim
Test
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
7. Au final
Pa
m ent ym
ip e nt
Sh
User Interface
Persistence
Ma e
il Tim
Test
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
8. La stratégie
s
st
Te
System
mers
sto
Cu
Acceptance
De
Integration
vel
op
e
rs
Unit
Te
st
s
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
10. Étape par étape
1. Écrire un test
2. Le voir échouer
3. Ajuster le message d’erreur
4. Écrire le code le plus simple
5. Rouler tous les tests
6. “Refactoriser”
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
11. Un réseau d’objets
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
12. Tester en isolation
Test A mock S
S
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
13. Mock Objects
• Reproduisent le comportement
d’objets réels de manière
controllée
• L’accent est mis sur l’interaction
entre les objets
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
14. Ports and Adapters
User Interface
adapter
Persistence
API
e
Tim
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
15. En apprendre plus
5 jours
ou
3 jours
http://pyxis-tech.com/fr/notre-offre/formation-
agile/professional-scrum-developer-java
Vincent Tencé - Groupe des utilisateurs Java de Montréal - 29 septembre 2011
16. TDD
All CODE IS GUILTY
UNTIL PROVEN INNOCENT
Bons tests !