38
Soigner sa schizophrénie MOA / MOE Voyage autour des spécifications exécutables Rémy Sanlaville Expert Senior en Ingénierie Logicielle Orange Labs remy.sanlaville@orange-ftgrou p.com Emmanuel Hugonnet Architecture J2EE Silverpeas emmanuel.hugonnet@silverpeas. com Hervé Lourdin Architecte Sénior / Coach agile OCTO Technology [email protected]

At2009 Soigner Sa Schizophrenie 1.2

Embed Size (px)

DESCRIPTION

Introduction à Acceptance test Driven Development

Citation preview

Page 1: At2009 Soigner Sa Schizophrenie 1.2

Soigner sa schizophrénieMOA / MOE

Voyage autour des spécifications exécutables

Rémy SanlavilleExpert Senior en Ingénierie Logicielle  Orange [email protected]

Emmanuel HugonnetArchitecture [email protected]

Hervé LourdinArchitecte Sénior / Coach agileOCTO [email protected]

Page 2: At2009 Soigner Sa Schizophrenie 1.2

Contrat de la sessionCe que vous verrez dans cette session

• Une introduction aux spécifications exécutables ?• A quoi ca sert, pourquoi c'est utile…

• Vivre un exemple basé sur la fonctionnalité d'authentification• Un panorama du domaine

• outils existants : approches, les avantages et inconvénients

• les père fondateursCe que vous ne verrez pas dans cette session• Une démonstration des outils

• cf. session Coding Dojo - Kata sur le pilotage par les tests d'acceptances (ATDD)

• Une solution magique à tous vos problèmes

Page 3: At2009 Soigner Sa Schizophrenie 1.2

Double PersonnalitéDouble Audience

"Stakeholders are the people whose life you touch with your software"Dan North

MOA MOE

Page 4: At2009 Soigner Sa Schizophrenie 1.2

Deux hémisphères

Architecture

Technique

Artisanat

Bien faireCe qu’il faut faire

Idées

Métier

Valeur

MOA MOE

Page 5: At2009 Soigner Sa Schizophrenie 1.2

Un problème de communication

Page 6: At2009 Soigner Sa Schizophrenie 1.2

MOE

exprime

Client

délivrecomprend

décrit

MOA

Insatisfaction

Gaspillage

Besoin Couvert

Communication

Page 7: At2009 Soigner Sa Schizophrenie 1.2

Fonctionnalités et leur utilisationpour un logiciel

Source CHAOS

Page 8: At2009 Soigner Sa Schizophrenie 1.2

CommunicationDéfinition de "terminé"

MOA MOE

Page 9: At2009 Soigner Sa Schizophrenie 1.2

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 10: At2009 Soigner Sa Schizophrenie 1.2

Ensemble tout devient possible

Atelier de spécifications

Bug Bash copyright by Hans Bjordahl — www.bugbash.net

Page 11: At2009 Soigner Sa Schizophrenie 1.2

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 12: At2009 Soigner Sa Schizophrenie 1.2

External Domain Specific Language

Given …

When …

Then …

Un Langage Commun

Page 13: At2009 Soigner Sa Schizophrenie 1.2

Spécifier par l’exemple

Les histoires d’utilisateur sont décrites au travers d’exemples : les scénarii

Les utilisateurs doivent utiliser des mots de passe sécurisés(une chaine de caractères dont la taille est comprise entre 8 et 20Et qui contiennent au moins une lettre, un chiffre et un caractère spécial)

Page 14: At2009 Soigner Sa Schizophrenie 1.2

Atelier de SpécificationsDiscussion

Que ce passe t'il si un utilisateur entre un mot de Que ce passe t'il si un utilisateur entre un mot de passe non sécurisé ?passe non sécurisé ?Pouvez vous me donner des exemples de mots dePouvez vous me donner des exemples de mots depasse sécurisés et non sécurisés ?passe sécurisés et non sécurisés ?Quels sont les caractères spéciaux ?Quels sont les caractères spéciaux ?

Comment prend on en compte les espaces ?Comment prend on en compte les espaces ?Que fait on pour les mots de passe basés sur un Que fait on pour les mots de passe basés sur un dictionnaire avec une substitution simple comme dictionnaire avec une substitution simple comme ‘p@ssw0rd’ ?‘p@ssw0rd’ ?

Comment gère t on les comptes existants ?Comment gère t on les comptes existants ?Comment savoir que cette fonction est "terminée" ?Comment savoir que cette fonction est "terminée" ?

Page 15: At2009 Soigner Sa Schizophrenie 1.2

Les scénarii

Etant donné un nouvel UtilisateurLorsqu'il crée un compte avec un mot de passe sécuriséAlors le message 'SUCCESS' apparaitEt lorsqu'il essaye de se connecter sur ce compte Alors le message 'Hello $login' apparait

Etant donné un nouvel UtilisateurLorsqu'il crée un compte avec un mot de passe non sécuriséAlors le message 'FAILURE' apparaitEt lorsqu'il essaye de se connecter sur ce compte Alors il n'y parvient pas et le message 'FAILURE' apparait

Page 16: At2009 Soigner Sa Schizophrenie 1.2

Exemples

• Exemples de mots de passe sécurisé– p@ssw0rd– d1ction n@ire– dictionnaire_01

• Exemples de mots de passe non sécurisés– Trop court: p@sw0r– Trop long: dictionnaire_01_ dictionnaire_01– Sans chiffre: p@ssword– …

Page 17: At2009 Soigner Sa Schizophrenie 1.2

L’information circule

Page 18: At2009 Soigner Sa Schizophrenie 1.2

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 19: At2009 Soigner Sa Schizophrenie 1.2

Scénarii Distillés

Page 20: At2009 Soigner Sa Schizophrenie 1.2

Exemples

Page 21: At2009 Soigner Sa Schizophrenie 1.2

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 22: At2009 Soigner Sa Schizophrenie 1.2

Développer

ATDD / BDD : bien faire ce que je dois faire Le métier pilote le développement

TDD : bien faire les chosesÉmergence du design

Page 23: At2009 Soigner Sa Schizophrenie 1.2

On commence au Rouge

Page 24: At2009 Soigner Sa Schizophrenie 1.2

Il manque la Fixture

Fixture: code de liaison entre le test (les tableaux) et le code du sysème testé (SUT)

Page 25: At2009 Soigner Sa Schizophrenie 1.2

Ecriture de la Fixture

Page 26: At2009 Soigner Sa Schizophrenie 1.2

Prêt à Développer

Page 27: At2009 Soigner Sa Schizophrenie 1.2

Première Etape

Page 28: At2009 Soigner Sa Schizophrenie 1.2

TDD – Ecriture du Test

Page 29: At2009 Soigner Sa Schizophrenie 1.2

TDD – Ecriture du Code

Page 30: At2009 Soigner Sa Schizophrenie 1.2

Vérification Fonctionnelle

Page 31: At2009 Soigner Sa Schizophrenie 1.2

Fonctionnalité Terminée

Page 32: At2009 Soigner Sa Schizophrenie 1.2

Les exemples permettent de prouver "scientifiquement" la théorie du développeur

Les tests d'acceptance sont le scanner du

projet

Page 33: At2009 Soigner Sa Schizophrenie 1.2

Enfin les tests : l’exploration

Aspect Technologique

Aspect MétierS

up

port

du

Dévelo

pp

em

en

t

Critiq

ue d

u P

rod

uit

Tests ExploratoiresTe

sts

d'Acc

epta

nce

Tests

Unitaire

s

et d'In

tégra

tion

Disponibilité

Scalabilité

Sécurité

…*ité

Page 34: At2009 Soigner Sa Schizophrenie 1.2

Rendre les spécifications exécutables

Différentes approches– Proche du code

•JBehave, Rspec, Easyb…

– Format moins technique•Wiki : Fitnesse/SLIM, GreenPepper…•HTML : Concordion, Robotframework…

– De nouveaux outils en cours de maturation•Twist, JBehave 2…

Page 35: At2009 Soigner Sa Schizophrenie 1.2

Les Pères Fondateurs

• JBehave : Dan North, Chris Matt• Test Driven Development: Kent Beck• FIT: Ward Cunningham• Example Driven Development: Brian

Marick• User Stories: Mike Cohn• Domain Driven Design: Eric Evans• Test Obsessed: Elisabeth

Hendrickson

Page 36: At2009 Soigner Sa Schizophrenie 1.2

Bilan

Une meilleure communication entre les différents acteurs du projet

• Discuss : tous ensemble• Distill : définition par l'exemple• Develop : pilotage par l'exemple - "FAIT"• Demo : Validation

Bref, une seule équipe

Page 37: At2009 Soigner Sa Schizophrenie 1.2

Emergence d'une nouvelle génération d'outils pour relever de nouveaux

défis

• Intégration au cycle de vie du projet (SCM)• Facilité de prise en main par la MOA• Meilleure Intégration avec les outils de développement• Rapports plus complets (couverture des exigences, évolution dans le temps…)

Perspectives

Page 38: At2009 Soigner Sa Schizophrenie 1.2

5 doigts : ExcellenteSuper c'est exactement ce qu'il me fallait !

4 doigts : BonneTrès intéressant,

3 doigts : Juste MoyenneIntéressant, sans plus. Je n’ai pas perdu mon temps.

2 doigts : UtileBof ! J'ai perdu du temps.

1 doigt : InutileJe n'ai rien appris. J’ai vraiment perdu mon temps

ROTI (Return On Time Invested)