30
1 Retour d’expérience JBehave 13/10/15

20151013 - Agirc arrco : Behavior driven development

Embed Size (px)

Citation preview

Page 1: 20151013 - Agirc arrco : Behavior driven development

1

Retour d’expérience JBehave

13/10/15

Page 2: 20151013 - Agirc arrco : Behavior driven development

2

Présentation du GIRC AA

• Structure unique de développement, de recette et de

maintenance du système d'information de la retraite

complémentaire Agirc-Arrco.

• Nous assurons l'exploitation de 100% des fichiers

nationaux, la sécurisation des données de 11,8 millions de

retraités et de 18 millions d'actifs, ainsi que la production

de l'Usine Retraite pour nos groupes membres (Apicil,

Humanis, Klésia)

Page 3: 20151013 - Agirc arrco : Behavior driven development

3

Quelques chiffres

Page 4: 20151013 - Agirc arrco : Behavior driven development

4

Contexte

• Schéma Directeur en 2011-2014

Orientation du SI vers les systèmes ouverts

Préférence à l’Open Source dans le choix des outils

Orientation Agile de l’édition logicielle

Réduction des coûts

• Principaux axes

AIX => Linux

DB2 => PostGreSQL

Websphere => JBoss

Cobol => Java (batch)

ALM => Squash TM / Jira

Page 5: 20151013 - Agirc arrco : Behavior driven development

5

Sommaire

• Behaviour Driven Development

• Framework JBehave

• Cycle de vie des stories

• Notre implémentation (IHM, Batch, WS, ...)

• Intégration JBehave dans Squash TA

• Présentation du résultat

• Travaux en cours

Page 6: 20151013 - Agirc arrco : Behavior driven development

6

BDD (Wikipédia)

• Behavior driven development (ou BDD) est une

méthode agile qui encourage la collaboration entre les

développeurs, les responsables qualités, les intervenants

non-techniques et les entreprises participant à un projet de

logiciel

• Réponse au TDD

Technique de développement de logiciel qui préconise

d'écrire les tests unitaires avant d'écrire le code source d'un

logiciel. (Wikipédia)

Page 7: 20151013 - Agirc arrco : Behavior driven development

7

Principes BDD

• La participation des parties prenantes dans le

processus par le biais de l'extérieur dans le

développement de logiciels outside-in software

development

• L'utilisation d'exemples pour décrire le comportement de

la demande, ou d'unités de code

• Automatisation de ces exemples pour fournir rapidement

des commentaires et des tests de non-régression

Page 8: 20151013 - Agirc arrco : Behavior driven development

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 définit :

les concepts

STORY : le cas de test

GIVEN, WHEN, THEN : mots clés d’articulation de la story

(“Etant donné que”, “Quand” et “Alors”)

STEP : ses étapes (à implémenter)

Et la mécanique d’implémentation

Page 9: 20151013 - Agirc arrco : Behavior driven development

9

Principes de mise en œuvre

• Les « stories » sont décrites dans un langage intelligible

• Les steps (mots clés) correspondants sont développés

• Les stories sont configurées et exécutées via

JUnit (Eclipse, NetBeans, …)

Maven (Jenkins, Bamboo, …)

• Les résultats sont restitués au format HTML

Page 10: 20151013 - Agirc arrco : Behavior driven development

10

Cycle de vie des stories

• Initiées très tôt dans le processus

Par nos bureaux d’études (pas les développeurs)

En phase de spécification détaillée / conception (pas après

le développement)

• Evoluent durant les sprints de développement et les

phases de qualification / recette

• Figées (tag) lors de la livraison de la version finale de

l’application

Page 11: 20151013 - Agirc arrco : Behavior driven development

11

Exemples d’implémentation

• Les « steps » développés correspondent à nos contextes

applicatifs

Batch

Lancer un batch

Vérifier le code retour

Vérifier le statut

IHM

Lancer une application (Web)

Cliquer sur un bouton

Remplir un formulaire

Changer d’onglet

Page 12: 20151013 - Agirc arrco : Behavior driven development

12

Exemples d’implémentation

TechniqueSQL

Exécuter un script

Vérifier les données

Fichier Déposer un fichier

Vérifier le contenu du fichier en fin de traitement

WS/TWS/FTF

• Génération et stockage d’identifiants

de dates (vieillissement de données),

de données aléatoires

• Rejeu quel que soit l’état de la base de données (pas de purge globale)

Page 13: 20151013 - Agirc arrco : Behavior driven development

13

Exemple de story (Batch)

Page 14: 20151013 - Agirc arrco : Behavior driven development

14

Exemple de story (IHM)

Page 15: 20151013 - Agirc arrco : Behavior driven development

15

Implémentation d’un step

Page 16: 20151013 - Agirc arrco : Behavior driven development

16

Intégration JBehave

Squash

TM

Exécution

d’une itération

de campagne 1 Squash

TA

Page 17: 20151013 - Agirc arrco : Behavior driven development

17

Intégration JBehave

Squash

TMSVN

Exécution

d’une itération

de campagne 1Checkout

des

stories

2Squash

TA

Page 18: 20151013 - Agirc arrco : Behavior driven development

18

Intégration JBehave

Squash

TMSVN

Exécution

d’une itération

de campagne 1Checkout

des

stories

Workspace TA

Projet -

OTA

Steps

OTA

use

Dépôt et

lancement

2

3

Squash

TA

Page 19: 20151013 - Agirc arrco : Behavior driven development

19

Intégration JBehave

Squash

TMSVN

Exécution

d’une itération

de campagne 1Checkout

des

stories

Workspace TA

Projet -

OTA

Steps

OTA

use

Dépôt et

lancement

2

3

Plugin

TA-JBehave

Appel4

Squash

TA

Page 20: 20151013 - Agirc arrco : Behavior driven development

20

Intégration JBehave

Squash

TMSVN

Exécution

d’une itération

de campagne 1Checkout

des

stories

Workspace TA

Projet -

OTA

Steps

OTA

use

Dépôt et

lancement

Ihm

Web /

Riche

TP

WS/

JMS

BDD

DB2 /

PGSQL

Batch

Web /

TWS

Files

NFS /

FTF

Exécution des scripts

2

3

5

Plugin

TA-JBehave

Appel4

Squash

TA

Page 21: 20151013 - Agirc arrco : Behavior driven development

21

Intégration JBehave

• Normalisation

Des projets

Nommage des tests dans Squash TM

Nommage des stories / fichiers d’entrée…

Nommage des applications / batchs / IHM

Des environnements

Serveurs (URL d’accès)

Base de données (JDBC)

• Champs personnalisés dans les campagnes / itérations

Version de l’application

Contexte d’exécution (Qualification, Recette)

Page 22: 20151013 - Agirc arrco : Behavior driven development

22

DÉMO

Page 23: 20151013 - Agirc arrco : Behavior driven development

23

Démo

• Exécution d’un plan de test

Page 24: 20151013 - Agirc arrco : Behavior driven development

24

Démo

• Exécution / Rapport d’exécution

Page 25: 20151013 - Agirc arrco : Behavior driven development

25

Démo

• Rapport d’exécution JBehave

Page 26: 20151013 - Agirc arrco : Behavior driven development

26

Démo

• Rapport de Story valide

Page 27: 20151013 - Agirc arrco : Behavior driven development

27

Démo

• Rapport de Story en erreur

Page 28: 20151013 - Agirc arrco : Behavior driven development

28

Limites

• Pas de lien direct entre les exécutions et les rapports

Nécessite le passage par le rapport global

• Rapports uniquement gérés par l’historique du job Jenkins

Problème de purge automatique

• Pas d’intégration des versions Squash TM (milestones)

• Référentiel de tests automatisés

Pas de gestion de versions

Outillage trop technique (Eclipse / SVN)

• Pas d’utilisation des jeux de données de Squash TM

Page 29: 20151013 - Agirc arrco : Behavior driven development

29

Réflexions en cours

• Intégration native JBehave Développement d’un lanceur JBehave sans script

Choix de la story dans Squash TM (à la place du script TA)

Accès direct au rapport de la story à partir de l’exécution (et non le résumé)

Publication des rapports sur un espace dédié

• Choix du référentiel de tests automatisés Accès et mise à jour simplifié (Hors Eclipse) des stories

Edition accompagnée (auto complétion, colorisation)

Gestion de versions

• Gestion des jeux de données JDD DB vs JDD Squash TM

Abstraction SQL (insert / select)

Evolutions du modèle

• Ajout de nouveaux steps / simplification

Page 30: 20151013 - Agirc arrco : Behavior driven development

30

Questions ?