20151013 - Agirc arrco : Behavior driven development
date post
22-Jan-2018Category
Software
view
16download
1
Embed Size (px)
Transcript of 20151013 - Agirc arrco : Behavior driven development
1
Retour dexprience JBehave
13/10/15
2
Prsentation du GIRC AA
Structure unique de dveloppement, de recette et de maintenance du systme d'information de la retraite
complmentaire Agirc-Arrco.
Nous assurons l'exploitation de 100% des fichiers nationaux, la scurisation des donnes de 11,8 millions de
retraits et de 18 millions d'actifs, ainsi que la production
de l'Usine Retraite pour nos groupes membres (Apicil,
Humanis, Klsia)
3
Quelques chiffres
4
Contexte
Schma Directeur en 2011-2014 Orientation du SI vers les systmes ouverts
Prfrence lOpen Source dans le choix des outils
Orientation Agile de ldition logicielle
Rduction des cots
Principaux axes AIX => Linux
DB2 => PostGreSQL
Websphere => JBoss
Cobol => Java (batch)
ALM => Squash TM / Jira
5
Sommaire
Behaviour Driven Development Framework JBehave Cycle de vie des stories Notre implmentation (IHM, Batch, WS, ...) Intgration JBehave dans Squash TA Prsentation du rsultat Travaux en cours
6
BDD (Wikipdia)
Behavior driven development (ou BDD) est une mthode agile qui encourage la collaboration entre les
dveloppeurs, les responsables qualits, les intervenants
non-techniques et les entreprises participant un projet de
logiciel
Rponse au TDD Technique de dveloppement de logiciel qui prconise
d'crire les tests unitaires avant d'crire le code source d'un
logiciel. (Wikipdia)
https://fr.wikipedia.org/wiki/M%C3%A9thode_agilehttps://fr.wikipedia.org/wiki/D%C3%A9veloppement_de_logicielhttps://fr.wikipedia.org/wiki/Test_unitairehttps://fr.wikipedia.org/wiki/Code_sourcehttps://fr.wikipedia.org/wiki/Logiciel
7
Principes BDD
La participation des parties prenantes dans le processus par le biais de l'extrieur dans le
dveloppement de logiciels outside-in software
development
L'utilisation d'exemples pour dcrire le comportement de la demande, ou d'units de code
Automatisation de ces exemples pour fournir rapidement des commentaires et des tests de non-rgression
https://fr.wikipedia.org/w/index.php?title=Outside-in_software_development&action=edit&redlink=1https://fr.wikipedia.org/wiki/Non-r%C3%A9gression
8
Framework JBehave
JBehave is a framework for Behaviour-Driven Development (BDD), and is intended to make these
practices more accessible and intuitive to newcomers and
experts alike. (Jbehave.org)
Uniquement un framework, il dfinit : les concepts
STORY : le cas de test
GIVEN, WHEN, THEN : mots cls darticulation de la story
(Etant donn que, Quand et Alors)
STEP : ses tapes ( implmenter)
Et la mcanique dimplmentation
http://en.wikipedia.org/wiki/Behavior_driven_development
9
Principes de mise en uvre
Les stories sont dcrites dans un langage intelligible
Les steps (mots cls) correspondants sont dvelopps
Les stories sont configures et excutes via JUnit (Eclipse, NetBeans, )
Maven (Jenkins, Bamboo, )
Les rsultats sont restitus au format HTML
10
Cycle de vie des stories
Inities trs tt dans le processus Par nos bureaux dtudes (pas les dveloppeurs)
En phase de spcification dtaille / conception (pas aprs
le dveloppement)
Evoluent durant les sprints de dveloppement et les phases de qualification / recette
Figes (tag) lors de la livraison de la version finale de lapplication
11
Exemples dimplmentation
Les steps dvelopps correspondent nos contextes applicatifs
Batch
Lancer un batch
Vrifier le code retour
Vrifier le statut
IHM
Lancer une application (Web)
Cliquer sur un bouton
Remplir un formulaire
Changer donglet
12
Exemples dimplmentation
TechniqueSQL
Excuter un script
Vrifier les donnes
Fichier Dposer un fichier
Vrifier le contenu du fichier en fin de traitement
WS/TWS/FTF
Gnration et stockage didentifiants
de dates (vieillissement de donnes),
de donnes alatoires
Rejeu quel que soit ltat de la base de donnes (pas de purge globale)
13
Exemple de story (Batch)
14
Exemple de story (IHM)
15
Implmentation dun step
16
Intgration JBehave
Squash
TM
Excution
dune itration
de campagne 1 Squash
TA
17
Intgration JBehave
Squash
TMSVN
Excution
dune itration
de campagne 1Checkout
des
stories
2Squash
TA
18
Intgration JBehave
Squash
TMSVN
Excution
dune itration
de campagne 1Checkout
des
stories
Workspace TA
Projet -
OTA
Steps
OTA
use
Dpt et
lancement
2
3
Squash
TA
19
Intgration JBehave
Squash
TMSVN
Excution
dune itration
de campagne 1Checkout
des
stories
Workspace TA
Projet -
OTA
Steps
OTA
use
Dpt et
lancement
2
3
Plugin
TA-JBehave
Appel4
Squash
TA
20
Intgration JBehave
Squash
TMSVN
Excution
dune itration
de campagne 1Checkout
des
stories
Workspace TA
Projet -
OTA
Steps
OTA
use
Dpt et
lancement
Ihm
Web /
Riche
TP
WS/
JMS
BDD
DB2 /
PGSQL
Batch
Web /
TWS
Files
NFS /
FTF
Excution des scripts
2
3
5
Plugin
TA-JBehave
Appel4
Squash
TA
21
Intgration JBehave
Normalisation Des projets
Nommage des tests dans Squash TM
Nommage des stories / fichiers dentre
Nommage des applications / batchs / IHM
Des environnements
Serveurs (URL daccs)
Base de donnes (JDBC)
Champs personnaliss dans les campagnes / itrations Version de lapplication
Contexte dexcution (Qualification, Recette)
22
DMO
23
Dmo
Excution dun plan de test
24
Dmo
Excution / Rapport dexcution
25
Dmo
Rapport dexcution JBehave
26
Dmo
Rapport de Story valide
27
Dmo
Rapport de Story en erreur
28
Limites
Pas de lien direct entre les excutions et les rapports Ncessite le passage par le rapport global
Rapports uniquement grs par lhistorique du job Jenkins Problme de purge automatique
Pas dintgration des versions Squash TM (milestones)
Rfrentiel de tests automatiss Pas de gestion de versions
Outillage trop technique (Eclipse / SVN)
Pas dutilisation des jeux de donnes de Squash TM
29
Rflexions en cours
Intgration native JBehave Dveloppement dun lanceur JBehave sans script
Choix de la story dans Squash TM ( la place du script TA)
Accs direct au rapport de la story partir de lexcution (et non le rsum)
Publication des rapports sur un espace ddi
Choix du rfrentiel de tests automatiss Accs et mise jour simplifi (Hors Eclipse) des stories
Edition accompagne (auto compltion, colorisation)
Gestion de versions
Gestion des jeux de donnes JDD DB vs JDD Squash TM
Abstraction SQL (insert / select)
Evolutions du modle
Ajout de nouveaux steps / simplification
30
Questions ?