• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Industrialisation des développements Java
 

Industrialisation des développements Java

on

  • 5,539 views

Présentation co-animée avec Benoît Lafontaine au salon Solutions Linux le 17/03/2010

Présentation co-animée avec Benoît Lafontaine au salon Solutions Linux le 17/03/2010

Statistics

Views

Total Views
5,539
Views on SlideShare
5,044
Embed Views
495

Actions

Likes
6
Downloads
242
Comments
0

4 Embeds 495

http://blog.octo.com 483
http://www.slideshare.net 6
http://static.slideshare.net 5
http://127.0.0.1:8795 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Industrialisation des développements Java Industrialisation des développements Java Presentation Transcript

    • Industrialisa+on  des     développements  Java Chris+an  Blavier   Benoît  Lafontaine   Le  17/03/2010  
    • OCTO,  en  quelques  mots   NOTRE  MISSION     Aider  nos  clients  à  maitriser  la  complexité   de  leur  SI  pour  en  +rer  le  maximum  de   valeur         Conseil  en  Architecture  et   Management  des  SI   NOS  VALEURS  FONDATRICES     Un  cabinet  à  taille  humaine  :  130     L’indépendance  vis-­‐à-­‐vis  des  intégrateurs  et   consultants  fin  2009   des  éditeurs       L’expérience  réelle  et  pragmaCque  des  SI     12  ans   stratégiques  et  des  grands  projets     15,4  M€  de  CA  (2009)     NOTRE  CULTURE     Un  posi+onnement  Grands   Comptes     La  mul+-­‐valence  :  mé+er,  technique  et   communica+on     Deux  ouvertures  à  l’interna+onal   (Maroc,  Suisse)     L’échange  :  25  %  du  temps  réservé  à  la   capitalisa+on  des  connaissances  et  des   expériences   ©  OCTO  Technology  -­‐    2010   2  
    • L’industrialisa+on  c’est  quoi  ?   IntégraCon   conCnue   Tests  automaCsés   Il  ne  s’agit  pas   uniquement  des  ou+ls  de   Mesure  de  la   développement  !   qualité   ©  OCTO  2010     3  
    • Ne  pas  se  tromper  d’époque   Une  approche  où  les  hommes  sont  au  centre  de  la  démarche   ©  OCTO  Technology  -­‐    2010   4  
    • Pourquoi  faire  de  l’intégra+on  con+nue  ?   Plus  un  défaut  est  détecté  tard…                      …plus  il  coûte  cher  à  corriger.   €  ©  OCTO  Technology  -­‐    2010   5  
    • Vous  ne  voulez  plus  travailler   sans  filet  de  sécurité  ?  Faites   de  l’intégraCon  conCnue   6  
    • L’intégra+on  con+nue  en  images   Récupérer     les  dépendances   GesConnaire     Build   Compiler   de  sources   Serveur   RéférenCel   Build   d’intégraCon   Exécuter  les  tests   binaires   Local   conCnue   Vérifier  la  qualité     du    code   Packager   NoCficaCons   Déployer   Plateforme   Documenter   de  tests   Build DocumentaCon   ©  OCTO  Technology  -­‐    2010   &  Indicateurs   7  
    • L’intégra+on  con+nue  en  images   CVS   SVN   Récupérer     les  dépendances   GIT   Hudson   Nexus   GesConnaire     Build   Compiler   de  sources   Serveur   RéférenCel   Build   d’intégraCon   Exécuter  les  tests   binaires   Local   conCnue   Vérifier  la  qualité     du    code   Packager   NoCficaCons   Déployer   Plateforme   Documenter   de  tests   Build DocumentaCon   ©  OCTO  Technology  -­‐    2010   &  Indicateurs   8  
    • Les  défis  de  l’intégra+on  con+nue   Défi  #1  :  la  performance   Défi  #2  :  éviter  l’instabilité  du  build   ©  OCTO  2010     9  
    • Problèmes de performance :-­‐(   Build   Build   :-­‐(   GesConnaire     Build   de  sources   Serveur   Build   d’intégraCon   Local   conCnue   Build   :-­‐(   Build   Build   ... ...
    • Build profilé Toutes  les...   10  min   Build  rapide  :  tests  unitaires   nuits   Build  documentaCon   4  h   GesConnaire     Build  tests  intégraCon   de  sources   Serveur   Build   d’intégraCon   nuits   Local   conCnue   Build  qualimétrie   A  la     demande   Build  complet   A  la     demande   Build  packaging   ... ...
    • Build distribué    Build  documentaCon   240   Build  tests  intégraCon   10   GesConnaire     Build  rapide  :  tests  unitaires   de  sources   Serveur   Build   d’intégraCon      Local   ConCnue   Build  qualimétrie      Build  complet      ©  OCTO  Technology  -­‐    2010   Build  packaging  
    • Build distribué    Build  documentaCon   240   Agent     Build  tests  intégraCon   10   GesConnaire     Build  rapide  :  tests  unitaires   de  sources   Serveur   Build   d’intégraCon      Local   ConCnue   (maître)   Build  qualimétrie      Build  complet      Agent   ©  OCTO  Technology  -­‐    2010   Build  packaging  
    • Applications multi-tout : le défi ? Tester sur des environnements différents Pro ©  OCTO  Technology  -­‐    2010   14  
    • Build distribué & plateformes Build  tests  interface  IE  6   Agent     Build  tests  interface  FF   Build  tests  interface   Build  tests  interface  IE  7   GesConnaire     de  sources   Serveur   Agent     Build   d’intégraCon   Local   ConCnue   Build  tests  interface  Chrome   (maître)   Build  complet   Agent   ©  OCTO  Technology  -­‐    2010  
    • Les  défis  de  l’intégra+on  con+nue   Défi  #1  :  la  performance   Défi  #2  :  éviter  l’instabilité  du  build   ©  OCTO  2010     16  
    • Instaurer  une  culture  du  build   ©  OCTO  Technology  -­‐    2010   17  
    • Instabilité du build : le problème Récupérer     les  dépendances   GesConnaire     Compiler   de  sources   Serveur   d’intégraCon   Exécuter  les  tests   ConCnue   Build   Développeurs   ©  OCTO  Technology  -­‐    2010   18  
    • Instabilité du build : le défi ? •  Conserver un référentiel de sources « propre » •  Empêcher un développeur de bloquer les autres •  Favoriser l’utilisation décomplexée du référentiel de sources GesConnaire     de  sources   ©  OCTO  Technology  -­‐    2010   19  
    • Une solution : le build incassable Récupérer     les  dépendances   GesConnaire     Compiler   de  sources   Serveur   protégé   d’intégraCon   ConCnue   Exécuter  les  tests   Build   Développeurs   20  
    • Outils d’intégration continue •  Serveur  d’IntégraCon   –  Hudson   –  TeamCity    €   –  Bamboo  €   –  Pulse  €   –  CruiseControl   –  Apache  Con+nuum   –  QuickBuild  €   –  Team  Funda+on  Server  €   –  LuntBuild   ©  OCTO  Technology  -­‐    2010   21  
    • Savoir  si  son  code  compile,   c’est  bien  …  mais  savoir  s’il   foncConne  c’est  mieux  !   ©  OCTO  Technology  -­‐    2010   22  
    • Test  Driven  Development   Ecrire   test  en   échec   Faire   Remanier   le  code   passer   le  test   ©  OCTO  Technology  -­‐    2010   23  
    • «  Outside-­‐in  »  development   Tests  unitaires  :  cycle  TDD  répété  plusieurs   fois  pour  chaque  foncConnalité   Ecrire   test  en   Ecrire   échec   Faire   test  de   passer  le   receoe   Faire   tests  de   Remanier   en  échec   le  code   passer   receoe   le  test   Nouveau  cycle  répété  à  chaque  nouvelle  foncConnalité   ©  OCTO  Technology  -­‐    2010   24  
    • Pourquoi  des  tests  de  receoe  automa+sés  ?   Conserver  la   Communiquer   Préserver  la   Gagner  du   connaissance   sans  ambiguïté   qualité   temps   •  Capitaliser  à  un  endroit   •  Spécifier  de  façon   unique  sur  ce  que  fait   univoque  par  les  tests   •  Construire  un  harnais  de   •  Eviter  les  erreurs   effecCvement  le  logiciel   tests   manuelles   •  Minimiser  les  problèmes   •  Détecter  les  régressions   •  Rejouer  fréquemment   •  Rendre  «  exécutables  »   de  coordinaCon  en   au  plus  tôt   l’intégralité  des  tests   les  spécificaCons   receoe   Tests  de  recehe  automaCsés   ©  OCTO  2010     25  
    • Plusieurs  approches  de  TDR   Tests  d’IHM   SpécificaCons  exécutables   Behavior  Driven  Development   ©  OCTO  2010     26  
    • Tests  d’IHM   Certains  ou+ls  disposent  d’un  mode   d’émula+on  du  navigateur,  plus  rapide   Selenium   WaCr   ©  OCTO  2010     27  
    • Le  pour,  le  contre  …   Avantages Inconvénients Quasi-exhaustifs Enregistrés / écrits par des développeurs Rassurants pour le métier Temps d’exécution Quasi exhaustifs ;-) ©  OCTO  Technology  -­‐    2010   28  
    • Plusieurs  approches  de  TDR   Tests  d’IHM   SpécificaCons  exécutables   Behavior  Driven  Development   ©  OCTO  2010     29  
    • Dites  le  avec  un  tableau  !   Règle de gestion : création de compte Lors de la création de compte, un utilisateur doit obligatoirement choisir un mot de passe contenant des lettres et des chiffres Utilisateur! !Mot de passe! !Message jdoe ! ! ! !elephant ! ! ! ! Echec ! dgray ! ! ! toto ! ! ! !Echec ! dcooper! ! d1ane4ever! ! ! Succès !! ! . . . ! ! ! ! !. . . ! ! ! ! !. . . ! ©  OCTO  Technology  -­‐    2010   30  
    • Par  exemple  :  GreenPepper   ©  OCTO  Technology  -­‐    2010   31  
    • Par  exemple  :  GreenPepper   ©  OCTO  Technology  -­‐    2010   32  
    • Spécifica+ons  exécutables   Code  de   Système   liaison   testé   Pages  de  tests   wiki   (fixtures)   ©  OCTO  2010     33  
    • Le  pour,  le  contre  …   Avantages Inconvénients Expressivité : les tests Par défaut ne permet pas peuvent être formulés par de tester une IHM des utilisateurs Pourrait être encore plus On peut fusionner tests et expressif documentation ©  OCTO  Technology  -­‐    2010   34  
    • Plusieurs  approches  de  TDR   Tests  d’IHM   SpécificaCons  exécutables   Behavior  Driven  Development   ©  OCTO  2010     35  
    • Et  si  on  racontait  une  histoire  ?   BDD  (Behavior  Driven  Development),  une  manière  de   formaliser  ses  histoires  :   Etant donnée … [ un contexte ] Quand … [ un événement ] Alors… [ un état attendu ] ©  OCTO  2010     36  
    • BDD  avec  Cucumber   ©  OCTO  Technology  -­‐    2010   37  
    • BDD,  a  new  genera+on   Evolution syntaxique de TDD Tests d’acceptance Orienté développeur Prise en compte du reste de l'équipe Tout est dans le code Extraction des scénarios ©  OCTO  Technology  -­‐    2010   38  
    • Le  pour,  le  contre  …   Avantages Inconvénients Extrêmement expressif Pas d’outils collaboratifs S’intègre très naturellement L’intégration de cucumber avec un outil de test d’IHM avec le monde Java est peu documentée L’avenir du test d’acceptance automatisé ©  OCTO  2010     39  
    • On  n’améliore  que  ce   que  l’on  mesure   ©  OCTO  Technology  -­‐    2010   40   http://www.flickr.com/photos/55145236@N00/146617178/
    • Quels  indicateurs  ?   •  Indicateur  de  «  le  code  compile  »  :  le  Build   –  Eviter  le  «  ça  compile  sur  mon  poste  »   –  Ou+ls  :  Hudson  +  Maven   •  Indicateurs  de  bonne  santé  :  tests  automa+sés   –  Ou+ls  :  XUnit,  Surefire,  JCoverage  /  Cobertura  …   •  Indicateurs  de  la  qualité  du  code  :  analyse  sta+que   –  Ou+ls  :  PMD,  CheckStyle,  Findbugs   –  Aggrégateur  :  Sonar   ©  OCTO  Technology  -­‐    2010   41  
    • Jusqu’ici  tout  va  bien   ©  OCTO  Technology  -­‐    2010   42  
    • Mesurer  les  tendances   ©  OCTO  Technology  -­‐    2010   43  
    • Mesurer  les  tendances   ©  OCTO  Technology  -­‐    2010   44  
    • Les  indicateurs  subjec+fs   http://www.infoq.com/news/2007/08/agile-kanban-boards ©  OCTO  Technology  -­‐    2010   45  
    • Mesurer  la  produc+vité  ?    Débit  de  foncConnalités     Le  nombre  de  fonc+onnalités,  pondérées  par  la  valeur   mé+er,  ajoutées  au  logiciel  pendant  un  laps  de  temps   donné  et  répondant  aux  exigences  qualités   ©  OCTO  Technology  -­‐    2010   46  
    • Récapitulons   •  Repousser  les  limites  de  l’intégra+on  con+nue   –  Profiler  et  distribuer  les  builds   –  Meore  en  place  une  poli+que  de  build  incassable   •  Automa+sez  vos  tests  de  receoe   –  En  suivant  des  cycles  de  développement  «  outside-­‐in  »   –  En  impliquant  votre  MOA,  grâce  à  des  ou+ls  conviviaux   •  Mesurer  pour  s’améliorer   –  Privilégier  un  ensemble  d’indicateurs,  objec+fs  et  subjec+fs   –  Mesurer  la  produc+vité   ©  OCTO  Technology  -­‐    2010   47  
    • Université  du  SI  2010   Le  rendez-­‐vous  des  geeks  et  des  boss   ©  OCTO  Technology  -­‐    2010   48