confoo 2012 kata

40
Automatiser les tests à tous les niveaux Vincent Tencé @testinfected http://noncomplexstuff.com https://github.com/testinfected Friday, 2 March, 12

Upload: vincent-tence

Post on 02-Jul-2015

582 views

Category:

Documents


3 download

DESCRIPTION

Session donnée à Confoo 2012. Reprise de la session au JUG de Septembre 2011.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. La plupart des IDEs modernes permettent de se lancer rapidement dans les test unitaires mais il faut souvent retrousser nos manches pour automatiser les tests d'intégration ou les tests systèmes (lire: de bout en bout). Cette session, sous forme de Kata, présente comment piloter le développement d'une application par les tests clients automatisés (tests d'acceptance et tests systèmes). Pendant la session, les présentateurs enrichiront une application existante pour démontrer comment tirer profit des différents types de tests pour produire du code de qualité. La démonstration sera suivie d'une présentation sur les concepts abordés ainsi qu'une session de questions/réponses.

TRANSCRIPT

Page 1: Confoo 2012   kata

Automatiser les tests à tous les niveaux

Vincent Tencé@testinfected

http://noncomplexstuff.comhttps://github.com/testinfected

Friday, 2 March, 12

Page 2: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

D’abord le scénario

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Page 3: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Puis le domaine

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Page 4: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Les tests nous guident

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Friday, 2 March, 12

Page 5: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Ensuite les données

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Page 6: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Enfin la vue

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Page 7: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Au final

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Page 8: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

La stratégie

Friday, 2 March, 12

Page 9: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

System

La stratégie

Friday, 2 March, 12

Page 10: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Acceptance

System

La stratégie

Friday, 2 March, 12

Page 11: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Friday, 2 March, 12

Page 12: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Integration

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Friday, 2 March, 12

Page 13: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Unit

Integration

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Friday, 2 March, 12

Page 14: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Unit

Integration

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Developers Tests

Friday, 2 March, 12

Page 15: Confoo 2012   kata

Friday, 2 March, 12

Page 16: Confoo 2012   kata

Écrire un test qui échoue

Friday, 2 March, 12

Page 17: Confoo 2012   kata

Écrire un test qui échoue

Améliorer le message d’erreur

Friday, 2 March, 12

Page 18: Confoo 2012   kata

Écrire un test qui échoue

Améliorer le message d’erreur

Faire passer le test

Friday, 2 March, 12

Page 19: Confoo 2012   kata

Écrire un test qui échoue

Améliorer le message d’erreur

Faire passer le test

Refactoriser

Friday, 2 March, 12

Page 20: Confoo 2012   kata

Écrire un test qui échoue

Améliorer le message d’erreur

Faire passer le test

Refactoriser

Friday, 2 March, 12

Page 21: Confoo 2012   kata

Friday, 2 March, 12

Page 22: Confoo 2012   kata

Écrire un test d’acceptance qui échoue

Friday, 2 March, 12

Page 23: Confoo 2012   kata

Écrire un test unitaire qui échoue

Améliorer le message d’erreur

Faire passer le test

Refactoriser

Écrire un test d’acceptance qui échoue

Friday, 2 March, 12

Page 24: Confoo 2012   kata

Écrire un test unitaire qui échoue

Améliorer le message d’erreur

Faire passer le test

Refactoriser

Écrire un test d’acceptance qui échoue

Friday, 2 March, 12

Page 25: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Page 26: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Page 27: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Page 28: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Page 29: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Page 30: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

A

Friday, 2 March, 12

Page 31: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

ATest

Friday, 2 March, 12

Page 32: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

ATest S

Friday, 2 March, 12

Page 33: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

mock S

SATest

Friday, 2 March, 12

Page 34: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Mock Objects

• Reproduisent le comportement d’objets réels de manière controllée

• L’accent est mis sur l’interaction entre les objets

Friday, 2 March, 12

Page 35: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Friday, 2 March, 12

Page 36: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Friday, 2 March, 12

Page 37: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Pers

isten

ce

Time

User

Int

erfa

ce

Friday, 2 March, 12

Page 38: Confoo 2012   kata

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Pers

isten

ce

Time

User

Int

erfa

ce

adapte

r

Friday, 2 March, 12

Page 40: Confoo 2012   kata

Bons tests !

TDDAll CODE IS GUILTY

UNTIL PROVEN INNOCENT

Friday, 2 March, 12