Confoo 2012 kata

Post on 02-Jul-2015

579 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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

Automatiser les tests à tous les niveaux

Vincent Tencé@testinfected

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

Friday, 2 March, 12

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

Vincent Tencé - Confoo - 2 mars 2012

Puis le domaine

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Les tests nous guident

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Friday, 2 March, 12

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

Vincent Tencé - Confoo - 2 mars 2012

Enfin la vue

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Au final

Pers

isten

ce

Time

User

Int

erfa

ce

Mail

PaymentShipment

Test

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

La stratégie

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

System

La stratégie

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Acceptance

System

La stratégie

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Integration

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Unit

Integration

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Unit

Integration

Acceptance

System

La stratégie

Cus

tom

ers T

ests

Developers Tests

Friday, 2 March, 12

Friday, 2 March, 12

Écrire un test qui échoue

Friday, 2 March, 12

Écrire un test qui échoue

Améliorer le message d’erreur

Friday, 2 March, 12

Écrire un test qui échoue

Améliorer le message d’erreur

Faire passer le test

Friday, 2 March, 12

Écrire un test qui échoue

Améliorer le message d’erreur

Faire passer le test

Refactoriser

Friday, 2 March, 12

Écrire un test qui échoue

Améliorer le message d’erreur

Faire passer le test

Refactoriser

Friday, 2 March, 12

Friday, 2 March, 12

Écrire un test d’acceptance qui échoue

Friday, 2 March, 12

É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

É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

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Un réseau d’objets

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

A

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

ATest

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

ATest S

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Tester en isolation

mock S

SATest

Friday, 2 March, 12

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

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Pers

isten

ce

Time

User

Int

erfa

ce

Friday, 2 March, 12

Vincent Tencé - Confoo - 2 mars 2012

Ports and Adapters

API

Pers

isten

ce

Time

User

Int

erfa

ce

adapte

r

Friday, 2 March, 12

Bons tests !

TDDAll CODE IS GUILTY

UNTIL PROVEN INNOCENT

Friday, 2 March, 12

top related