SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
De l'intégration continue au déploiement
continu sur Android & iOS
Thibaud CAVIN
Simone CIVETTA
Thomas GUERIN
Agenda
Partie 1

Partie 2

Partie 3

Introduction

Intégration
continue sur
Android & iOS

Vers le déploiement
continu

Pourquoi se doter
d’une usine
logicielle aussi sur
mobile ?

|

Automatisation de
la compilation, de
l'exécution des
tests unitaires/
fonctionnels...

TestFlight pour iOS &
Android

2
Thibaud CAVIN
Responsable de la mobilité chez Xebia
Développement / Déploiement / Soumission des apps
mobiles sur les stores grand-public ou d’entreprise
Thibaud CAVIN
Responsable Mobilité

Simone CIVETTA
Développeur iOS confirmé
Développement des apps mobiles iOS, Android, hybrides et
web mobiles
Simone CIVETTA
Consultant iOS

Thomas GUERIN
Développeur Java & Android confirmé
Développement des apps Android et web mobiles,
également des backend auxquels elles s’y connectent
Thomas GUERIN
Consultant Android

|

3
Introduction
Pourquoi se doter d’une
usine logicielle aussi sur
mobile ?
Le marché de la mobilité arrive à
Une consolidation des acteurs en place :
✓ Rachat de la division mobile de Nokia par
Microsoft
✓ Blackberry ...
✓ Suprématie Android en PDM / iOS pour les
services
Attentes fortes des utilisateurs

95% de
PDM*
iOS/Android/WP

Un relais de croissance déterminant

|

* : Chiffres de StatCounter GlobalStats en France

5
Un projet mobile ...
... se réalise sur plusieurs plateformes mobiles (iOS &
Android) :
✓ Les mêmes fonctionnalités, une ergonomie adaptée
néanmoins
✓ Fragmentation toujours importante sur Android

... possède un cycle de développement court

|

6
Pourquoi se doter d’une usine
Des projets mobiles aux produits mobiles :
✓ Mises à jour régulières (2 mois)
✓ La qualité est importante
✓ Retours utilisateurs sur les stores

Améliorer son «Time-To-Market» dans un contexte
concurrentiel
Assurer la non régression de ses applications
Une intégration de plus en plus complexe avec le SI pour des
services mobiles à valeur ajoutée

|

7
Intégration continue
Les principales étapes

Build

Tests

|

Analyse

8
Serveur d’intégration continue
Utilisation de Jenkins CI
L’unité est le job
Nombreux plugins disponibles
3 jobs essentiels :
✓ Build du projet et exécution des tests unitaires
✓ Exécution des tests fonctionnels
✓ Déploiement du livrable

|

9
Intégration
continue sur
Android
Automatisation de la
compilation, de l'exécution
des tests unitaires/
fonctionnels ...
Build

|

11
Quel système de build ?

Build

Gradle vs Maven
Maven :
✓ Configuration -> xml
✓ Plugin créé par la communauté
✓ Bonne intégration dans les IDE
Gradle:
✓ Configuration -> scripting groovy
✓ Nouveau système de build “officiel” pour Android
✓ Très vite adopté

|

12
Tests
Unitaires

|

13
Tests unitaires

TU

JUnit ou Robolectric ?
JUnit :
✓ Difficile de mocker les composants du sdk
✓ Utile pour tester la logique du modèle métier

Robolectric :
✓ Plus de “java.lang.RuntimeException: Stub!”
✓ Exécution des tests directement dans la JVM
✓ Quelques limitations (gridlayout, menudrawer...)

|

14
Tests
Fonctionnels

|

15
Tests fonctionnels

TF

Framework d’instrumentation :
✓ Intégrer nativement au sein de la plate-forme
✓ Permet d’intéragir avec les composants d’une application
✓ Faible niveau d’abstraction
Robotium :
✓ Surcouche du framework d’instrumentation
✓ Meilleur niveau d’abstraction
✓ Écriture des tests simplifiés

|

16
Analyse

|

17
Analyse des rapports
Sonar :
✓ Suivi des principales métriques du code (couverture,
duplication...)
✓ Adapter le profil qualité

Spoon :
✓ Exécution distribuée des tests fonctionnels
✓ Génération de rapports d’exécution clairs
✓ Format HTML

|

18
Démo

Démo

|

19
Intégration
continue sur
iOS
Automatisation de la
compilation, de l'exécution
des tests unitaires/
fonctionnels ...
Build

|

21
Build

Targets
Gestion des targets sous Xcode :
✓ Une target pour chaque configuration de
l’appli
✓ Un job Jenkins pour chaque target

|

22
Cocoa Pods

Build

Pour ne pas réinventer la roue... cette fois-ci :
✓ Plusieurs composants d’un projet iOS proviennent de
bibliothèques open-source
Un dependency manager pour les projets Xcode :
✓ Cocoa Pods : dependency manager qui les intègre
automatiquement les composants dans le projet
✓ Configuré à partir d’un fichier de texte : podfile
✓ Chaque target peut avoir des dépendances (ou des versions de
dépandances) spécifiques

|

23
xcodebuild

Build

Back to the CLI
✓ Le build est exécuté par un outil en ligne de commande :
xcodebuild (fournie avec Xcode)
✓ Des wrappers simplifient la configuration de l’outil et permettent
d’obtenir du «pretty-printing» (xctool by Facebook)

|

24
Tests
Unitaires

|

25
TU

GHUnit
Une IHM pour les tests fonctionnels indépendante de
l’IDE
✓ Avec GHUnit l’exécution des tests et la visualisation
du résultat peuvent être réalisés sur un terminal ou
dans le simulateur
Test asynchrones
✓ GHUnit supporte nativement l'exécution de tests
asynchrones
Intégration avec Jenkins
✓ Exécution en ligne de commande avec output en
format JUnit XML pour intégrer les rapports dans un
Job Jenkins

|

26
Tests
Fonctionnels

|

27
TF

Cucumber
Tests écrits en langage naturel
✓ Cucumber exécute des tests fonctionnels décrits par un langage
de description en format naturel et localisable : Gherkin
✓ Un test se compose d’une liste de steps, qui composent un
scénario. Plusieurs scenarios forment un feature.
Ruby inside
✓ Chaque step Gherkin correspond à un block de code écrit en ruby

|

28
Calabash-iOS

TF

Une extension pour Cucumber
✓ Calabash-iOS intègre Cucumber dans iOS
✓ permet l'exécution des steps sur un terminal ou un simulateur
✓ enrichit les fonctions ruby sous-jacentes à Gherkin en ajoutant
des méthodes comme touch, swipe, scroll, etc
Rapports détaillés
✓ Les résultats d'un test Calabash peuvent être enregistrés sous
forme de fichier HTML, JSON ou JUnit XML et être facilement intégrés
dans Jenkins

|

29
Analyse

|

30
Couverture du code
Le bon vieux gcov..
✓ Les métriques de couverture du
code sont fournies par le
compilateur, qui produit des
fichiers en format gcov
Intégration dans Jenkins
✓ Grâce à gconv il est possible de
convertir les rapports en format
Cobertura XML pour les intégrer
facilement dans Jenkins

|

31
Visualisation des rapports des
Tests Fonctionnels
Une extension pour Cucumber
✓ Si on décide d'enregistrer les résultats sous forme de JSON, il est
très simple de construire un visualiseur de rapports afin de
présenter les résultats des tests de façon plus intuitive et interactive

|

32
Démo

Démo

|

33
Vers le
déploiement
continu
TestFlight pour Android &
iOS

|

34
Déploiement continu

Deploy

Build, tests, analyse et .... déploiement
✓ A chaque instant, mettre à disposition ses
applications aux utilisateurs tests
✓ Récupération des retours utilisateurs au plus
tôt
Déploiement continu facile avec Jenkins et
Testflight
✓ Plugin Testflight

|

35
Deploy

TestFlight
Crashs et logs à
distance
Builds et
utilisateurs
Gérer ses builds
(Dev, RCT, etc.) et
ses accès utilisateurs
par projet

Sur iOS & Android !

Accéder sur le portail
TestFlight aux logs
et crashs remontés
par vos applications

« Analytics »
Temps moyen des
sessions de tests,
types de terminaux
ou d’OS..

« Checkpoints » et
A/B Testing
Définition de
checkpoints dans
votre application
pour savoir si vos
fonctionnalités sont
accédées. Egalement

|

36
Merci

Contenu connexe

Tendances

Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration ContinueXavier Warzee
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsRossi Oddet
 
DevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - SpinnakerDevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - SpinnakerStephan Lagraulet
 
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueXavier Callens
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Publicis Sapient Engineering
 
L’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANALL’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANALFabernovel
 
DevOps - from idea to production
DevOps - from idea to productionDevOps - from idea to production
DevOps - from idea to productionHabib MAALEM
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Benoît Lafontaine
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
 
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...Guillaume Brout
 
DevOps vu par les Ops
DevOps vu par les OpsDevOps vu par les Ops
DevOps vu par les OpsMicrosoft
 
Cerberus, un outil pour l'automatisation des tests fonctionnels
Cerberus, un outil pour l'automatisation des tests fonctionnelsCerberus, un outil pour l'automatisation des tests fonctionnels
Cerberus, un outil pour l'automatisation des tests fonctionnelsAurélien Bourdon
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] IntroductionCellenza
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 

Tendances (20)

Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration Continue
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 
DevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - SpinnakerDevFest Nantes 2016 - Spinnaker
DevFest Nantes 2016 - Spinnaker
 
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
 
L’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANALL’aventure iOS - tvOS myCANAL
L’aventure iOS - tvOS myCANAL
 
DevOps - from idea to production
DevOps - from idea to productionDevOps - from idea to production
DevOps - from idea to production
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
 
Dev dev devs
Dev dev devsDev dev devs
Dev dev devs
 
DevOps vu par les Ops
DevOps vu par les OpsDevOps vu par les Ops
DevOps vu par les Ops
 
Cerberus, un outil pour l'automatisation des tests fonctionnels
Cerberus, un outil pour l'automatisation des tests fonctionnelsCerberus, un outil pour l'automatisation des tests fonctionnels
Cerberus, un outil pour l'automatisation des tests fonctionnels
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 

En vedette

Automate your build on Android with Jenkins
Automate your build on Android with JenkinsAutomate your build on Android with Jenkins
Automate your build on Android with JenkinsBeMyApp
 
Xcode formation-iphone-ipad-xcode-et-cocoa
Xcode formation-iphone-ipad-xcode-et-cocoaXcode formation-iphone-ipad-xcode-et-cocoa
Xcode formation-iphone-ipad-xcode-et-cocoaCERTyou Formation
 
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011Henri Gomez
 
Comment concilier Agilité et projet au forfait ?
Comment concilier Agilité et projet au forfait ?Comment concilier Agilité et projet au forfait ?
Comment concilier Agilité et projet au forfait ?Lorraine JUG
 
Xcode Server - Jeffrey Macko
Xcode Server - Jeffrey MackoXcode Server - Jeffrey Macko
Xcode Server - Jeffrey MackoCocoaHeads France
 
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsSpec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsekito
 
Swift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleSwift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleDamien GOSSET
 
Use In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardUse In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardMicrosoft
 
Tipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la OdontologíaTipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la Odontologíacrisppg
 
9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute 9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute HUB INSTITUTE
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
 
Unit 11 exercises_rs
Unit 11 exercises_rsUnit 11 exercises_rs
Unit 11 exercises_rsnvjaramilloSS
 
Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011Xavier Warzee
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 

En vedette (20)

Automate your build on Android with Jenkins
Automate your build on Android with JenkinsAutomate your build on Android with Jenkins
Automate your build on Android with Jenkins
 
XebiConFr 15 - Swift dans la vraie vie
XebiConFr 15 - Swift dans la vraie vieXebiConFr 15 - Swift dans la vraie vie
XebiConFr 15 - Swift dans la vraie vie
 
Xcode formation-iphone-ipad-xcode-et-cocoa
Xcode formation-iphone-ipad-xcode-et-cocoaXcode formation-iphone-ipad-xcode-et-cocoa
Xcode formation-iphone-ipad-xcode-et-cocoa
 
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
 
Comment concilier Agilité et projet au forfait ?
Comment concilier Agilité et projet au forfait ?Comment concilier Agilité et projet au forfait ?
Comment concilier Agilité et projet au forfait ?
 
Xcode Server - Jeffrey Macko
Xcode Server - Jeffrey MackoXcode Server - Jeffrey Macko
Xcode Server - Jeffrey Macko
 
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsSpec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
 
Swift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleSwift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'Apple
 
Use In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardUse In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboard
 
Tipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la OdontologíaTipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la Odontología
 
IoT Best practices
 IoT Best practices IoT Best practices
IoT Best practices
 
9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute 9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Planning Game Xp Days 2009
Planning Game Xp Days 2009Planning Game Xp Days 2009
Planning Game Xp Days 2009
 
SPIP-Geoportail
SPIP-GeoportailSPIP-Geoportail
SPIP-Geoportail
 
Dossier_De_Passation
Dossier_De_PassationDossier_De_Passation
Dossier_De_Passation
 
Unit 11 exercises_rs
Unit 11 exercises_rsUnit 11 exercises_rs
Unit 11 exercises_rs
 
Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011Annonces du french scrum user group - rencontre du 24 juin 2011
Annonces du french scrum user group - rencontre du 24 juin 2011
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Ternay 2008
Ternay 2008Ternay 2008
Ternay 2008
 

Similaire à Open XKE - De l'intégration continue au déploiement continu sur iOS et Android par Thibaud Cavin, Simone Civetta & Thomas Guerin

Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...vlabatut
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez EngieLeClubQualiteLogicielle
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...vlabatut
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Julien Dubois
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsKokou Gaglo
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreMicrosoft
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien Navarre
 
Newlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FRNewlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FRFresche Solutions
 
Ingénieur étude et développement JAVA JEE.pdf
Ingénieur étude et développement JAVA JEE.pdfIngénieur étude et développement JAVA JEE.pdf
Ingénieur étude et développement JAVA JEE.pdfJEANCLAUDECAMARA
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMJason De Oliveira
 
Expérience pratique de développement Azure
Expérience pratique de développement AzureExpérience pratique de développement Azure
Expérience pratique de développement AzureLevio
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015FactoVia
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterGuillaume Deshayes
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCityUlrich VACHON
 

Similaire à Open XKE - De l'intégration continue au déploiement continu sur iOS et Android par Thibaud Cavin, Simone Civetta & Thomas Guerin (20)

Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle ère
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Newlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FRNewlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FR
 
Ingénieur étude et développement JAVA JEE.pdf
Ingénieur étude et développement JAVA JEE.pdfIngénieur étude et développement JAVA JEE.pdf
Ingénieur étude et développement JAVA JEE.pdf
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
 
Expérience pratique de développement Azure
Expérience pratique de développement AzureExpérience pratique de développement Azure
Expérience pratique de développement Azure
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 

Plus de Publicis Sapient Engineering

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainPublicis Sapient Engineering
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurPublicis Sapient Engineering
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéPublicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizPublicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéPublicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectPublicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...Publicis Sapient Engineering
 

Plus de Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 

Open XKE - De l'intégration continue au déploiement continu sur iOS et Android par Thibaud Cavin, Simone Civetta & Thomas Guerin

  • 1. De l'intégration continue au déploiement continu sur Android & iOS Thibaud CAVIN Simone CIVETTA Thomas GUERIN
  • 2. Agenda Partie 1 Partie 2 Partie 3 Introduction Intégration continue sur Android & iOS Vers le déploiement continu Pourquoi se doter d’une usine logicielle aussi sur mobile ? | Automatisation de la compilation, de l'exécution des tests unitaires/ fonctionnels... TestFlight pour iOS & Android 2
  • 3. Thibaud CAVIN Responsable de la mobilité chez Xebia Développement / Déploiement / Soumission des apps mobiles sur les stores grand-public ou d’entreprise Thibaud CAVIN Responsable Mobilité Simone CIVETTA Développeur iOS confirmé Développement des apps mobiles iOS, Android, hybrides et web mobiles Simone CIVETTA Consultant iOS Thomas GUERIN Développeur Java & Android confirmé Développement des apps Android et web mobiles, également des backend auxquels elles s’y connectent Thomas GUERIN Consultant Android | 3
  • 4. Introduction Pourquoi se doter d’une usine logicielle aussi sur mobile ?
  • 5. Le marché de la mobilité arrive à Une consolidation des acteurs en place : ✓ Rachat de la division mobile de Nokia par Microsoft ✓ Blackberry ... ✓ Suprématie Android en PDM / iOS pour les services Attentes fortes des utilisateurs 95% de PDM* iOS/Android/WP Un relais de croissance déterminant | * : Chiffres de StatCounter GlobalStats en France 5
  • 6. Un projet mobile ... ... se réalise sur plusieurs plateformes mobiles (iOS & Android) : ✓ Les mêmes fonctionnalités, une ergonomie adaptée néanmoins ✓ Fragmentation toujours importante sur Android ... possède un cycle de développement court | 6
  • 7. Pourquoi se doter d’une usine Des projets mobiles aux produits mobiles : ✓ Mises à jour régulières (2 mois) ✓ La qualité est importante ✓ Retours utilisateurs sur les stores Améliorer son «Time-To-Market» dans un contexte concurrentiel Assurer la non régression de ses applications Une intégration de plus en plus complexe avec le SI pour des services mobiles à valeur ajoutée | 7
  • 8. Intégration continue Les principales étapes Build Tests | Analyse 8
  • 9. Serveur d’intégration continue Utilisation de Jenkins CI L’unité est le job Nombreux plugins disponibles 3 jobs essentiels : ✓ Build du projet et exécution des tests unitaires ✓ Exécution des tests fonctionnels ✓ Déploiement du livrable | 9
  • 10. Intégration continue sur Android Automatisation de la compilation, de l'exécution des tests unitaires/ fonctionnels ...
  • 12. Quel système de build ? Build Gradle vs Maven Maven : ✓ Configuration -> xml ✓ Plugin créé par la communauté ✓ Bonne intégration dans les IDE Gradle: ✓ Configuration -> scripting groovy ✓ Nouveau système de build “officiel” pour Android ✓ Très vite adopté | 12
  • 14. Tests unitaires TU JUnit ou Robolectric ? JUnit : ✓ Difficile de mocker les composants du sdk ✓ Utile pour tester la logique du modèle métier Robolectric : ✓ Plus de “java.lang.RuntimeException: Stub!” ✓ Exécution des tests directement dans la JVM ✓ Quelques limitations (gridlayout, menudrawer...) | 14
  • 16. Tests fonctionnels TF Framework d’instrumentation : ✓ Intégrer nativement au sein de la plate-forme ✓ Permet d’intéragir avec les composants d’une application ✓ Faible niveau d’abstraction Robotium : ✓ Surcouche du framework d’instrumentation ✓ Meilleur niveau d’abstraction ✓ Écriture des tests simplifiés | 16
  • 18. Analyse des rapports Sonar : ✓ Suivi des principales métriques du code (couverture, duplication...) ✓ Adapter le profil qualité Spoon : ✓ Exécution distribuée des tests fonctionnels ✓ Génération de rapports d’exécution clairs ✓ Format HTML | 18
  • 20. Intégration continue sur iOS Automatisation de la compilation, de l'exécution des tests unitaires/ fonctionnels ...
  • 22. Build Targets Gestion des targets sous Xcode : ✓ Une target pour chaque configuration de l’appli ✓ Un job Jenkins pour chaque target | 22
  • 23. Cocoa Pods Build Pour ne pas réinventer la roue... cette fois-ci : ✓ Plusieurs composants d’un projet iOS proviennent de bibliothèques open-source Un dependency manager pour les projets Xcode : ✓ Cocoa Pods : dependency manager qui les intègre automatiquement les composants dans le projet ✓ Configuré à partir d’un fichier de texte : podfile ✓ Chaque target peut avoir des dépendances (ou des versions de dépandances) spécifiques | 23
  • 24. xcodebuild Build Back to the CLI ✓ Le build est exécuté par un outil en ligne de commande : xcodebuild (fournie avec Xcode) ✓ Des wrappers simplifient la configuration de l’outil et permettent d’obtenir du «pretty-printing» (xctool by Facebook) | 24
  • 26. TU GHUnit Une IHM pour les tests fonctionnels indépendante de l’IDE ✓ Avec GHUnit l’exécution des tests et la visualisation du résultat peuvent être réalisés sur un terminal ou dans le simulateur Test asynchrones ✓ GHUnit supporte nativement l'exécution de tests asynchrones Intégration avec Jenkins ✓ Exécution en ligne de commande avec output en format JUnit XML pour intégrer les rapports dans un Job Jenkins | 26
  • 28. TF Cucumber Tests écrits en langage naturel ✓ Cucumber exécute des tests fonctionnels décrits par un langage de description en format naturel et localisable : Gherkin ✓ Un test se compose d’une liste de steps, qui composent un scénario. Plusieurs scenarios forment un feature. Ruby inside ✓ Chaque step Gherkin correspond à un block de code écrit en ruby | 28
  • 29. Calabash-iOS TF Une extension pour Cucumber ✓ Calabash-iOS intègre Cucumber dans iOS ✓ permet l'exécution des steps sur un terminal ou un simulateur ✓ enrichit les fonctions ruby sous-jacentes à Gherkin en ajoutant des méthodes comme touch, swipe, scroll, etc Rapports détaillés ✓ Les résultats d'un test Calabash peuvent être enregistrés sous forme de fichier HTML, JSON ou JUnit XML et être facilement intégrés dans Jenkins | 29
  • 31. Couverture du code Le bon vieux gcov.. ✓ Les métriques de couverture du code sont fournies par le compilateur, qui produit des fichiers en format gcov Intégration dans Jenkins ✓ Grâce à gconv il est possible de convertir les rapports en format Cobertura XML pour les intégrer facilement dans Jenkins | 31
  • 32. Visualisation des rapports des Tests Fonctionnels Une extension pour Cucumber ✓ Si on décide d'enregistrer les résultats sous forme de JSON, il est très simple de construire un visualiseur de rapports afin de présenter les résultats des tests de façon plus intuitive et interactive | 32
  • 35. Déploiement continu Deploy Build, tests, analyse et .... déploiement ✓ A chaque instant, mettre à disposition ses applications aux utilisateurs tests ✓ Récupération des retours utilisateurs au plus tôt Déploiement continu facile avec Jenkins et Testflight ✓ Plugin Testflight | 35
  • 36. Deploy TestFlight Crashs et logs à distance Builds et utilisateurs Gérer ses builds (Dev, RCT, etc.) et ses accès utilisateurs par projet Sur iOS & Android ! Accéder sur le portail TestFlight aux logs et crashs remontés par vos applications « Analytics » Temps moyen des sessions de tests, types de terminaux ou d’OS.. « Checkpoints » et A/B Testing Définition de checkpoints dans votre application pour savoir si vos fonctionnalités sont accédées. Egalement | 36
  • 37. Merci