20151013 - Agirc arrco : Behavior driven development

Click here to load reader

  • date post

    22-Jan-2018
  • Category

    Software

  • view

    16
  • download

    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 ?