Upload
leclubqualitelogicielle
View
28
Download
1
Embed Size (px)
Citation preview
1
Retour d’expérience JBehave
13/10/15
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)
3
Quelques chiffres
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
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
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)
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
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
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
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
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
…
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)
13
Exemple de story (Batch)
14
Exemple de story (IHM)
15
Implémentation d’un step
16
Intégration JBehave
Squash
TM
Exécution
d’une itération
de campagne 1 Squash
TA
17
Intégration JBehave
Squash
TMSVN
Exécution
d’une itération
de campagne 1Checkout
des
stories
2Squash
TA
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
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
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
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)
22
DÉMO
23
Démo
• Exécution d’un plan de test
24
Démo
• Exécution / Rapport d’exécution
25
Démo
• Rapport d’exécution JBehave
26
Démo
• Rapport de Story valide
27
Démo
• Rapport de Story en erreur
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
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
30
Questions ?