Intégra(on	  con(nue	  pour	  les	  Nuls                              Qualimétrie	  d’un	  projet	  iOS	  (et	  Android)  ...
PLAN              q    Objec2f	  du	  cocoaheads,	  présenta2on	  du	  contexte              q    SVN,	  Jenkins        ...
AVANT	  PROPOS        ObjecAf	  de	  ce	  Cocoaheads	  :        	   -­‐	  VulgarisaAon	  de	  l’IC	  (focus	  qualimétrie)...
DEFINITION        Intégrer	  du	  code	  dans	  un	  dépôt	  en	  conAnu        Build	  du	  logiciel	  sur	  une	  machin...
SIIQUEST       Démo SII Questè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Bell...
ARCHITECTURE	  IC	  iOSè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	  Fo...
PLAN              q    Objec2f	  du	  cocoaheads,	  présenta2on	  du	  contexte              q    SVN,	  Jenkins        ...
SVN   Ou2l	  de	  ges2on	  de	  contrôle	  des	  sources              §    Maintenir	  un	  dépôt	  unique	  de	  code	  ...
JENKINS   Ou2l	  open	  source	  d’intégra2on	  con2nue         §   Surveillance	  des	  dépôts	  SVN         §   Exécut...
JENKINS         Démo Jenkinsè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle...
PLAN              q    Objec2f	  du	  cocoaheads,	  présenta2on	  du	  contexte              q    SVN,	  Jenkins        ...
TU  Procédé	  assurant	  un	  fonc2onnement	  correct	  d’une	  par2e	  du	  logiciel        §   OCUnit	  est	  un	  fram...
TUè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	  Fontaine|	  35510	  Ces...
TESTS	  IHM	  (na(fs)   Procédé	  permeQant	  de	  tester	  l’applica2on	  na2ve	  à	  par2r	  de	  son	  IHM         § F...
TESTS	  IHM	  (na(fs)è	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	  Font...
TESTS	  IHM	  (Web)   Procédé	  permeQant	  de	  tester	  l’applica2on	  web	  à	  par2r	  de	  son	  IHM         §     S...
TESTS	  IHM	  (Web)                                  Démo Tests     Démo TU et TF                                   Seleni...
PLAN              q    Objec2f	  du	  cocoaheads,	  présenta2on	  du	  contexte              q    SVN,	  Jenkins        ...
COUVERTURE	  DE	  CODE Procédé	  assurant	  une	  bonne	  couverture	  de	  code       §   Détec?on	  des	  par?es	  de	 ...
COUVERTURE	  DE	  CODEè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	  Fon...
ANALYSE	  STATIQUE   Procédé	  permeQant	  de	  contrôler	  la	  qualité	  du	  code         §   Analyse	  sta?que	  dans...
ANALYSE	  STATIQUE    Démo Couverture                                  Démo Analyse        Codeè	  www.groupe-­‐sii.com  ...
DOCUMENTATION	  DOXYGEN   Système	  de	  généra2on	  de	  documenta2on	  mul2	  langage         §   Objec?ve-­‐C	  pris	 ...
DÉPLOIEMENT	  SUR	  SERVEUR	     Procédé	  permeQant	  de	  rendre	  l’applica2on	  disponible	  aux	  testeurs         §...
PLAN              q    Objec2f	  du	  cocoaheads,	  présenta2on	  du	  contexte              q    SVN,	  Jenkins        ...
ARCHITECTURE	  IC	  Androidè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	...
EMMAè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	  Fontaine|	  35510	  C...
CHECKSTYLE	  et	  FINDBUGSè	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	 ...
PLAN              q    Objec2f	  du	  cocoaheads,	  présenta2on	  du	  contexte              q    SVN,	  Jenkins        ...
LA	  QUALIMETRIE	  POUR	  QUI	  ?                                                   POURQUOI	  ?   Pour	  les	  développeu...
FIN	  è	  www.groupe-­‐sii.com   le	  16/02/2012	  |	  SII	  Rennes	  |	  3	  bis,	  avenue	  Belle	  Fontaine|	  35510	 ...
Prochain SlideShare
Chargement dans…5
×

CocoaHeads Rennes #7 : Intégration continue pour les nuls

4 660 vues

Publié le

Screencast de la présentation du 16 février 2011 aux Cocoaheads Rennes.

« Mais je comprends pas, ça marchait avant, ça ne marche plus ! ». Qui n’a jamais prononcé cette phrase au cours d’un projet ? Pourtant, la solution existe : l’intégration continue. Cette méthode consiste, entre autre, à vérifier l’intégrité d’un projet à chaque modification. Et ceci, de façon automatique. L’intégration continue pourrait sonner le glas du principe de régression et garantir la qualité de vos réalisations.

Cette présentation a été assurée par Jérémy Toudic (développeur mobilité, SII Rennes) et Gaël Durand (référent technique sur les technologies mobiles au sein de SII Rennes). Gaël est aussi l’auteur de « Objective-C Créez vos applications iPhone et iPad » et enseigne à l’université.

Vidéo sur la session sur Vimeo: http://vimeo.com/37104049

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

Aucun téléchargement
Vues
Nombre de vues
4 660
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3 121
Actions
Partages
0
Téléchargements
39
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

CocoaHeads Rennes #7 : Intégration continue pour les nuls

  1. 1. Intégra(on  con(nue  pour  les  Nuls Qualimétrie  d’un  projet  iOS  (et  Android) Gaël DURAND - Architecte Mobilité - Pôle Devices Jérémy TOUDIC - Développeur Mobilité - Pôle Devices 16/02/2012è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  2. 2. PLAN q Objec2f  du  cocoaheads,  présenta2on  du  contexte q SVN,  Jenkins q Tests  unitaires  ,  Tests  fonc2onnels q Couverture  de  code,  Analyse  Sta2que q Documenta2on,  Déploiement q Parlons  Android q Conclusionè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  3. 3. AVANT  PROPOS ObjecAf  de  ce  Cocoaheads  :   -­‐  VulgarisaAon  de  l’IC  (focus  qualimétrie) Démarche  globale  de  la  présentaAon  :   -­‐  PrésentaAon  succincte  des  ouAls   -­‐  Comment  les  intégrer  à  notre  IC  /  Projet  iOS   -­‐  Une  démo  foncAonnelleè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  4. 4. DEFINITION Intégrer  du  code  dans  un  dépôt  en  conAnu Build  du  logiciel  sur  une  machine  Aerce Etablir  des  rapports  sur  la  qualité  du  code Contrôle  régulier  des  rapportsè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  5. 5. SIIQUEST Démo SII Questè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  6. 6. ARCHITECTURE  IC  iOSè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  7. 7. PLAN q Objec2f  du  cocoaheads,  présenta2on  du  contexte q SVN,  Jenkins q Tests  unitaires  ,  Tests  fonc2onnels q Couverture  de  code,  Analyse  Sta2que q Documenta2on,  Déploiement q Parlons  Android q Conclusionè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  8. 8. SVN Ou2l  de  ges2on  de  contrôle  des  sources § Maintenir  un  dépôt  unique  de  code  source  versionné § Tous  les  développeurs  peuvent  commi6er  dans  le  dépôt § Les  conflits  de  code  peuvent  être  résolus § Des  IDE  facilitent  l’u?lisa?on  de  SVN  (Tortoise,  svnX,  plugin  Eclipse…)     Pourquoi  SVN § Intégra?on  complète  avec  Jenkins § Gratuité  de  la  solu?on § Solu?on  très  répandueè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  9. 9. JENKINS Ou2l  open  source  d’intégra2on  con2nue § Surveillance  des  dépôts  SVN § Exécute  des  scripts  shell § Construc?on  sur  machine  esclave § Affiche  des  rapports   Pourquoi  Jenkins § Richesse  des  plugins § Mul?plateforme § Simplicité Difficultés  rencontrées  Jenkins  /  iOS § Configura?on  de  l’esclave § Limita?on  des  plugins  pour  les  projets  iOS  è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  10. 10. JENKINS Démo Jenkinsè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  11. 11. PLAN q Objec2f  du  cocoaheads,  présenta2on  du  contexte q SVN,  Jenkins q Tests  unitaires  ,  Tests  fonc2onnels q Couverture  de  code,  Analyse  Sta2que q Documenta2on,  Déploiement q Parlons  Android q Conclusionè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  12. 12. TU Procédé  assurant  un  fonc2onnement  correct  d’une  par2e  du  logiciel § OCUnit  est  un  framework  de  tests  unitaires  issu  de  XUnit § Le  test  vérifie  que  la  par?e  du  code  a  le  comportement  a6endu § Les  régressions  sont  détectées  après  une  modifica?on  déficiente § Affichage  du  rapport    dans  Jenkins § Affichage  de  la  tendance  des  tests  dans  Jenkins Installa2on/Configura2on/U2lisa2on § Créer  un  nouveau  projet  iOS  en  cochant  la  case  «  Include  Unit  Tests  » § Lancer  les  tests  unitaires  dans  Jenkins  avec  un  script  Shell § Conver?r  le  résultat  OCUnit  au  format  Junit  avec  le  script  ocunit2junit.rb § Afficher   le  résultat   dans   Jenkins   en   cochant   l’op?on   «   Publier   le  rapport   des   résultats   des  tests  Junit  »è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  13. 13. TUè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  14. 14. TESTS  IHM  (na(fs) Procédé  permeQant  de  tester  l’applica2on  na2ve  à  par2r  de  son  IHM § Fone  Monkey  est  un  framework  de  tests  IHM  mul?  OS  (iOS,  Android,  Flex) § Le  test  est  enregistré  à  par?r  des  ac?ons  de  l‘u?lisateur  sur  l’IHM § Les  tests  sont    enregistrés  au  format  OCUnit § Les  tests  peuvent  être  retouchés  et  améliorés  au  besoin § Affichage  du  rapport    dans  Jenkins § Affichage  de  la  tendance  des  tests  dans  Jenkins Installa2on/Configura2on/U2lisa2on § Récupéra?on  des  sources  FoneMonkey  pour  iOS  depuis  le  site  officiel § Installa?on  de  FoneMonkey  dans  le  projet  iOS § U?lisa?on  de  FoneMonkey  dans   le  projet  pour  enregistrer  les  tests  pendant  l’exécu?on   de  l’applica?on § Créa?on  des  tests  OCUnit  à  par?r  des  tests  enregistrés § Faire  un  script  Shell  dans  Jenkinsè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  15. 15. TESTS  IHM  (na(fs)è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  16. 16. TESTS  IHM  (Web) Procédé  permeQant  de  tester  l’applica2on  web  à  par2r  de  son  IHM § Selenium  est  un  framework  d’applica?ons  web § Le  test  est  configuré  via  un  plugin  Firefox § Le  résultat  du  test  est  exporté  dans  le  langage  cible § Les  tests  sont  lancés  sur  l’émulateur  ou  sur  l’appareil  via  un  web  driver Installa2on/Configura2on/U2lisa2on § Installer  le  plugin  Selenium  IDE  pour  Firefox § Créer  un  scénario  de  test  avec  Selenium  IDE § Exporter  le  scénario  dans  le  langage  qui  vous  convient  (p.ex.:  Java) § Modifier  le   code  du  test  généré  en  remplaçant  le  composant  gérant  les  interac?ons  avec  le   navigateur  Firefox  par  celui  gérant  les  interac?ons  avec  le  navigateur  de  l’iPhone  (Safari) § Ajouter  le  test  dans  votre  projet  web  Java  qui  cible  le  navigateur  de  l’iPhone § Configurer   le  projet   Java  qui  se  charge  de  lancer   les   tests  en   créant   une   étape  de   build   de   type  «  Appeler  Ant  »  è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  17. 17. TESTS  IHM  (Web) Démo Tests Démo TU et TF Seleniumè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  18. 18. PLAN q Objec2f  du  cocoaheads,  présenta2on  du  contexte q SVN,  Jenkins q Tests  unitaires  ,  Tests  fonc2onnels q Couverture  de  code,  Analyse  Sta2que q Documenta2on,  Déploiement q Parlons  Android q Conclusionè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  19. 19. COUVERTURE  DE  CODE Procédé  assurant  une  bonne  couverture  de  code § Détec?on  des  par?es  de  code  non  u?lisées § Couverture  de  code  en  fonc?on  des  tests § Rapport  de  l’analyse  dans  Jenkins Installa2on/Configura2on/U2lisa2on § Configurer  votre  projet  Xcode  avec § Les  valeurs  fprofile-­‐arcs  et  -­‐fest-­‐coverage  ajoutées  à  Other  C  Flags § La  bibliothèque  libprofile_rt.a  parmi  les  bibliothèques  à  lier  à  l’édi?on  des  liens § Créer  un  script  shell § Récupérer   les   fichiers   gcda   et   gcov   contenant   les   informa?ons   de   couverture   de   code § Conver?r  ces  fichiers  au  format  Cobertura  avec    l’u?litaire  gcovr  è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  20. 20. COUVERTURE  DE  CODEè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  21. 21. ANALYSE  STATIQUE Procédé  permeQant  de  contrôler  la  qualité  du  code § Analyse  sta?que  dans  Xcode  (fuite  mémoire,  variable  non  ini?alisée…) § Possibilité  de  forcer  l’analyse  sta?que  à  chaque  compila?on § Rapport  de  l’analyse  intégré  dans  le  code Installa2on/Configura2on/U2lisa2on § Lancer  la  commande    Product  >Analyse  dans  Xcodeè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  22. 22. ANALYSE  STATIQUE Démo Couverture Démo Analyse Codeè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  23. 23. DOCUMENTATION  DOXYGEN Système  de  généra2on  de  documenta2on  mul2  langage § Objec?ve-­‐C  pris  en  charge  par  Doxygen § Documenta?on  au  format  HTML  accessible  depuis  un  serveur § Code  source  consultable  dans  la  doc § Doxygen  helper  pour  générer  commentaires  au  format  Doxygen  (service) Installa2on/Configura2on/U2lisa2on § Installer  Doxygen § Ajouter  dans  le  projet  iOS  un  fichier  de  config  Doxyfile § Paramétrer  le  Doxyfile  afin  d’obtenir  une  doc  complète  et  agréable  à  parcourir § Ajouter  un  script  shell  dans  Jenkins  pour  lancer  la  doc § Rendre  la  doc  accessible  par  tous  les  membres  de  l’équipe  depuis  un  serveurè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  24. 24. DÉPLOIEMENT  SUR  SERVEUR   Procédé  permeQant  de  rendre  l’applica2on  disponible  aux  testeurs § Un  script  construit  une  archive  au  format  ipa § L’applica?on  est  installable  en  un  clic  sur  un  appareil   § L’applica?on  et  la  doc  sont  accessibles  depuis  un  serveur Installa2on/Configura2on/U2lisa2on § Installer  la  clé  privée  de  l’applica?on  sur  la  machine  esclave § Ajouter  un  script  shell  dans  Jenkins  qui § exécute  xcodebuild  avec  les  informa?ons  de  provisioning § Déplace  l’applica?on  sur  un  serveur  accessible  par  tous  les  membres  de  l’équipe Démo Documentationè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  25. 25. PLAN q Objec2f  du  cocoaheads,  présenta2on  du  contexte q SVN,  Jenkins q Tests  unitaires  ,  Tests  fonc2onnels q Couverture  de  code,  Analyse  Sta2que q Documenta2on,  Déploiement q Parlons  Android q Conclusionè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  26. 26. ARCHITECTURE  IC  Androidè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  27. 27. EMMAè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  28. 28. CHECKSTYLE  et  FINDBUGSè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  29. 29. PLAN q Objec2f  du  cocoaheads,  présenta2on  du  contexte q SVN,  Jenkins q Tests  unitaires  ,  Tests  fonc2onnels q Couverture  de  code,  Analyse  Sta2que q Documenta2on,  Déploiement q Parlons  Android q Conclusionè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  30. 30. LA  QUALIMETRIE  POUR  QUI  ? POURQUOI  ? Pour  les  développeurs § Ecriture  de  tests  moins  rébarba?ve § Documenta?on  constamment  à  jour § Détec?on  plus  rapide  des  bugs  et  des  erreurs  de  programma?on Pour  les  chefs  de  projet § Confort  dans  le  suivi  du  développement § Analyse  en  profondeur  du  projet  à  par?r  de  rapports  complémentaires § Assurance  d’avoir  une  version  stable  disponible  à  tout  moment § Métriques  objec?ves  pour  faciliter  les  discussions  chef  de  projet/développeurs Pour  les  décideurs § Charge  sur  pe?t  projet  car  coût  de  la  mise  en  place  non  négligeable § Mais  économies  considérables  sur  les  projets  importantsè  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012
  31. 31. FIN  è  www.groupe-­‐sii.com le  16/02/2012  |  SII  Rennes  |  3  bis,  avenue  Belle  Fontaine|  35510  Cesson  Sévignéjeudi 16 février 2012

×