Soigner Sa Schizophrénie

35
Soigner sa schizophrénie MOA / MOE Voyage autour des spécifications exécutables Rémy Sanlaville Expert Senior en Ingénierie Logicielle Orange Labs [email protected] Emmanuel Hugonnet Architecture J2EE Silverpeas [email protected] Hervé Lourdin Architecte Sénior / Coach agile OCTO Technology [email protected]

description

Présentation du pilotage du développement par les tests d'acceptance faite aux XPDay de Paris.

Transcript of Soigner Sa Schizophrénie

Page 1: Soigner Sa Schizophrénie

Soigner sa schizophrénieMOA / MOE

Voyage autour des spécifications exécutables

Rémy Sanlaville

Expert Senior en Ingénierie Logicielle  Orange Labs

[email protected] Hugonnet

Architecture J2EE

Silverpeas

[email protected]

Hervé Lourdin

Architecte Sénior / Coach agile

OCTO Technology

[email protected]

Page 2: Soigner Sa Schizophrénie

Double PersonnalitéDouble Audience

MOA MOE

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

Page 3: Soigner Sa Schizophrénie

Idées

Métier

Valeur

Deux hémisphères

Architecture

Technique

Artisanat

MOA MOE

Bien faireCe qu’il faut faire

Page 4: Soigner Sa Schizophrénie

Fonctionnalités et leur utilisationpour un logiciel

Source CHAOS

Page 5: Soigner Sa Schizophrénie

Un problème de communication

Page 6: Soigner Sa Schizophrénie

CommunicationDéfinition de "terminé"

Page 7: Soigner Sa Schizophrénie

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 8: Soigner Sa Schizophrénie

Ensemble tout devient possible

Atelier de spécifications

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

Page 9: Soigner Sa Schizophrénie

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 10: Soigner Sa Schizophrénie

External Domain Specific Language

Given …

When …

Then …

Un Langage Commun

Page 11: Soigner Sa Schizophrénie

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 12: Soigner Sa Schizophrénie

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 de Pouvez vous me donner des exemples de mots de passe 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 13: Soigner Sa Schizophrénie

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 14: Soigner Sa Schizophrénie

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 15: Soigner Sa Schizophrénie

L’information circule

Page 16: Soigner Sa Schizophrénie

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 17: Soigner Sa Schizophrénie

Scénarii Distillés

Page 18: Soigner Sa Schizophrénie

Exemples

Page 19: Soigner Sa Schizophrénie

ATDD cycle model by Jim Shore with changes suggested by

Grigori Melnick, Brian Marick, and Elisabeth Hendrickson

Page 20: Soigner Sa Schizophrénie

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 21: Soigner Sa Schizophrénie

On commence au Rouge

Page 22: Soigner Sa Schizophrénie

Il manque la Fixture

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

Page 23: Soigner Sa Schizophrénie

Ecriture de la Fixture

Page 24: Soigner Sa Schizophrénie

Prêt à Développer

Page 25: Soigner Sa Schizophrénie

Première Etape

Page 26: Soigner Sa Schizophrénie

TDD – Ecriture du Test

Page 27: Soigner Sa Schizophrénie

TDD – Ecriture du Code

Page 28: Soigner Sa Schizophrénie

Vérification Fonctionnelle

Page 29: Soigner Sa Schizophrénie

Fonctionnalité Terminée

Page 30: Soigner Sa Schizophrénie

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

Les tests d'acceptance sont le scanner du projet

Page 31: Soigner Sa Schizophrénie

Enfin les tests : l’exploration

Aspect Technologique

Aspect MétierS

up

po

rt d

u D

éve

lop

pe

me

nt

Critiq

ue

du

Pro

du

it

Tests ExploratoiresTe

sts d

'Accepta

nce

Tests

Unita

ires

et d'In

tégra

tion

Disponibilité

Scalabilité

Sécurité …*ité

Page 32: Soigner Sa Schizophrénie

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 33: Soigner Sa Schizophrénie

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

Page 34: Soigner Sa Schizophrénie

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 35: Soigner Sa Schizophrénie

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