Industrialisa+on	
  des	
  	
  
développements	
  Java

                Chris+an	
  Blavier	
  
               Benoît	
  L...
OCTO,	
  en	
  quelques	
  mots	
  
                                                                 NOTRE	
  MISSION	
  
...
L’industrialisa+on	
  c’est	
  quoi	
  ?	
  

                                                              IntégraCon	
  ...
Ne	
  pas	
  se	
  tromper	
  d’époque	
  
 Une	
  approche	
  où	
  les	
  hommes	
  sont	
  au	
  centre	
  de	
  la	
  ...
Pourquoi	
  faire	
  de	
  l’intégra+on	
  con+nue	
  ?	
  


         Plus	
  un	
  défaut	
  est	
  détecté	
  tard…	
  ...
Vous	
  ne	
  voulez	
  plus	
  travailler	
  
sans	
  filet	
  de	
  sécurité	
  ?	
  Faites	
  
  de	
  l’intégraCon	
  c...
L’intégra+on	
  con+nue	
  en	
  images	
  
                                                                              ...
L’intégra+on	
  con+nue	
  en	
  images	
  
                         CVS	
  
                          SVN	
              ...
Les	
  défis	
  de	
  l’intégra+on	
  con+nue	
  


                            Défi	
  #1	
  :	
  la	
  performance	
  



...
Problèmes de performance
:-­‐(	
  


                                                                        Build	
  



...
Build profilé
                                                                                                            ...
Build distribué
                                                                                                          ...
Build distribué
                                                                                                          ...
Applications multi-tout : le défi ?


Tester sur des environnements différents




                                       ...
Build distribué & plateformes

                                                                                         Bu...
Les	
  défis	
  de	
  l’intégra+on	
  con+nue	
  


                            Défi	
  #1	
  :	
  la	
  performance	
  



...
Instaurer	
  une	
  culture	
  du	
  build	
  




©	
  OCTO	
  Technology	
  -­‐	
  	
  2010	
                           ...
Instabilité du build : le problème



                                                                                    ...
Instabilité du build : le défi ?

•  Conserver un référentiel de sources « propre »

•  Empêcher un développeur de bloquer...
Une solution : le build
                                incassable



                                                    ...
Outils d’intégration continue
•  Serveur	
  d’IntégraCon	
  
      –      Hudson	
  
      –      TeamCity	
  	
  €	
  
  ...
Savoir	
  si	
  son	
  code	
  compile,	
  
c’est	
  bien	
  …	
  mais	
  savoir	
  s’il	
  
  foncConne	
  c’est	
  mieux...
Test	
  Driven	
  Development	
  

                                                              Ecrire	
  
              ...
«	
  Outside-­‐in	
  »	
  development	
  
                                    Tests	
  unitaires	
  :	
  cycle	
  TDD	
  r...
Pourquoi	
  des	
  tests	
  de	
  receoe	
  automa+sés	
  ?	
  




      Conserver	
  la	
                         Commun...
Plusieurs	
  approches	
  de	
  TDR	
  


                                       Tests	
  d’IHM	
  


                    ...
Tests	
  d’IHM	
  

                                            Certains	
  ou+ls	
  disposent	
  d’un	
  mode	
  
       ...
Le	
  pour,	
  le	
  contre	
  …	
  

                  Avantages                                       Inconvénients

Qua...
Plusieurs	
  approches	
  de	
  TDR	
  


                                       Tests	
  d’IHM	
  


                    ...
Dites	
  le	
  avec	
  un	
  tableau	
  !	
  
Règle de gestion : création de compte
Lors de la création de compte, un util...
Par	
  exemple	
  :	
  GreenPepper	
  




©	
  OCTO	
  Technology	
  -­‐	
  	
  2010	
                                  3...
Par	
  exemple	
  :	
  GreenPepper	
  




©	
  OCTO	
  Technology	
  -­‐	
  	
  2010	
                                  3...
Spécifica+ons	
  exécutables	
  




                                                Code	
  de	
     Système	
  
         ...
Le	
  pour,	
  le	
  contre	
  …	
  

                  Avantages                                       Inconvénients

Exp...
Plusieurs	
  approches	
  de	
  TDR	
  


                                       Tests	
  d’IHM	
  


                    ...
Et	
  si	
  on	
  racontait	
  une	
  histoire	
  ?	
  

BDD	
  (Behavior	
  Driven	
  Development),	
  une	
  manière	
  ...
BDD	
  avec	
  Cucumber	
  




©	
  OCTO	
  Technology	
  -­‐	
  	
  2010	
                                   37	
  
BDD,	
  a	
  new	
  genera+on	
  




Evolution syntaxique de TDD                                    Tests d’acceptance
Or...
Le	
  pour,	
  le	
  contre	
  …	
  

                  Avantages                  Inconvénients

Extrêmement expressif   ...
On	
  n’améliore	
  que	
  ce	
  
  que	
  l’on	
  mesure	
  




  ©	
  OCTO	
  Technology	
  -­‐	
  	
  2010	
          ...
Quels	
  indicateurs	
  ?	
  
•  Indicateur	
  de	
  «	
  le	
  code	
  compile	
  »	
  :	
  le	
  Build	
  
        –  Ev...
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...
Mesurer	
  la	
  produc+vité	
  ?	
  


                         	
  Débit	
  de	
  foncConnalités	
  	
  

Le	
  nombre	
...
Récapitulons	
  

•  Repousser	
  les	
  limites	
  de	
  l’intégra+on	
  con+nue	
  
        –  Profiler	
  et	
  distribu...
Université	
  du	
  SI	
  2010	
  
                   Le	
  rendez-­‐vous	
  des	
  geeks	
  et	
  des	
  boss	
  




©	
...
Prochain SlideShare
Chargement dans…5
×

Industrialisation des développements Java

4 915 vues

Publié le

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

Publié dans : Technologie, Business
0 commentaire
7 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
4 915
Sur SlideShare
0
Issues des intégrations
0
Intégrations
511
Actions
Partages
0
Téléchargements
282
Commentaires
0
J’aime
7
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Industrialisation des développements Java

  1. 1. Industrialisa+on  des     développements  Java Chris+an  Blavier   Benoît  Lafontaine   Le  17/03/2010  
  2. 2. 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  
  3. 3. 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  
  4. 4. Ne  pas  se  tromper  d’époque   Une  approche  où  les  hommes  sont  au  centre  de  la  démarche   ©  OCTO  Technology  -­‐    2010   4  
  5. 5. 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  
  6. 6. Vous  ne  voulez  plus  travailler   sans  filet  de  sécurité  ?  Faites   de  l’intégraCon  conCnue   6  
  7. 7. 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  
  8. 8. 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  
  9. 9. 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  
  10. 10. Problèmes de performance :-­‐(   Build   Build   :-­‐(   GesConnaire     Build   de  sources   Serveur   Build   d’intégraCon   Local   conCnue   Build   :-­‐(   Build   Build   ... ...
  11. 11. 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   ... ...
  12. 12. 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  
  13. 13. 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  
  14. 14. Applications multi-tout : le défi ? Tester sur des environnements différents Pro ©  OCTO  Technology  -­‐    2010   14  
  15. 15. 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  
  16. 16. 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  
  17. 17. Instaurer  une  culture  du  build   ©  OCTO  Technology  -­‐    2010   17  
  18. 18. 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  
  19. 19. 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  
  20. 20. 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  
  21. 21. 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  
  22. 22. Savoir  si  son  code  compile,   c’est  bien  …  mais  savoir  s’il   foncConne  c’est  mieux  !   ©  OCTO  Technology  -­‐    2010   22  
  23. 23. Test  Driven  Development   Ecrire   test  en   échec   Faire   Remanier   le  code   passer   le  test   ©  OCTO  Technology  -­‐    2010   23  
  24. 24. «  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  
  25. 25. 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  
  26. 26. Plusieurs  approches  de  TDR   Tests  d’IHM   SpécificaCons  exécutables   Behavior  Driven  Development   ©  OCTO  2010     26  
  27. 27. Tests  d’IHM   Certains  ou+ls  disposent  d’un  mode   d’émula+on  du  navigateur,  plus  rapide   Selenium   WaCr   ©  OCTO  2010     27  
  28. 28. 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  
  29. 29. Plusieurs  approches  de  TDR   Tests  d’IHM   SpécificaCons  exécutables   Behavior  Driven  Development   ©  OCTO  2010     29  
  30. 30. 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  
  31. 31. Par  exemple  :  GreenPepper   ©  OCTO  Technology  -­‐    2010   31  
  32. 32. Par  exemple  :  GreenPepper   ©  OCTO  Technology  -­‐    2010   32  
  33. 33. Spécifica+ons  exécutables   Code  de   Système   liaison   testé   Pages  de  tests   wiki   (fixtures)   ©  OCTO  2010     33  
  34. 34. 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  
  35. 35. Plusieurs  approches  de  TDR   Tests  d’IHM   SpécificaCons  exécutables   Behavior  Driven  Development   ©  OCTO  2010     35  
  36. 36. 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  
  37. 37. BDD  avec  Cucumber   ©  OCTO  Technology  -­‐    2010   37  
  38. 38. 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  
  39. 39. 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  
  40. 40. On  n’améliore  que  ce   que  l’on  mesure   ©  OCTO  Technology  -­‐    2010   40   http://www.flickr.com/photos/55145236@N00/146617178/
  41. 41. 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  
  42. 42. Jusqu’ici  tout  va  bien   ©  OCTO  Technology  -­‐    2010   42  
  43. 43. Mesurer  les  tendances   ©  OCTO  Technology  -­‐    2010   43  
  44. 44. Mesurer  les  tendances   ©  OCTO  Technology  -­‐    2010   44  
  45. 45. Les  indicateurs  subjec+fs   http://www.infoq.com/news/2007/08/agile-kanban-boards ©  OCTO  Technology  -­‐    2010   45  
  46. 46. 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  
  47. 47. 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  
  48. 48. Université  du  SI  2010   Le  rendez-­‐vous  des  geeks  et  des  boss   ©  OCTO  Technology  -­‐    2010   48  

×