COMMENT VALIDER UNE APPLICATION
MOBILE DE A À Z
« DU TEST MANUEL AU CONTINUOUS DEPLOYMENT »
Cédric GAUTIER
Hien-Thuan QUACH
VALIDER UNE APPLI MOBILE DE A À Z
• Introduction
• Qui sommes-nous ?
• Déroulement du tutoriel
• Un REX, juste un REX
• Ob...
VALIDER UNE APPLI MOBILE DE A À Z
• De l’importance de bien s’outiller
• Un nuage de tools
• Feature flipping & AB Testing...
VALIDER UNE APPLI MOBILE DE A À Z
• Introduction
• Qui sommes-nous ?
• Déroulement du tutoriel
• Un REX, juste un REX
• Ob...
VALIDER UNE APPLI MOBILE DE A À Z
Cédric Gautier
Responsable Validation Mobile
« »
Hien-Thuan Quach
Responsable Développem...
VALIDER UNE APPLI MOBILE DE A À Z
ET VOUS ?
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
DEROULEMENT
@cega18 #JFTLValAppMobile @htquach
• Partie 1 : 1h 10min
• Pause : 10min
• P...
VALIDER UNE APPLI MOBILE DE A À Z
DEROULEMENT
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
UN REX, JUSTE UN REX
Notre vision
Notre expérience
de 5 ans
Nous ne détenons pas la véri...
VALIDER UNE APPLI MOBILE DE A À Z
• Partager notre vision de l’ensemble des éléments nécessaires à la validation d’une
app...
VALIDER UNE APPLI MOBILE DE A À Z
• Introduction
• Qui sommes-nous ?
• Déroulement du tutoriel
• Un REX, juste un REX
• Ob...
Visites
mensuelles
Visiteurs
Taux de
crashes
Nombre de
versions
8M + 0,24M
5,7M +
0,17M
0,39%
80
6,4M +
0,99M
4,8M + 0,7M
...
VALIDER UNE APPLI MOBILE DE A À Z
AGILITE : UNE EVOLUTION LOGIQUE
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
AGILITE : LES FEATURES TEAMS
@cega18 #JFTLValAppMobile @htquach
• Description
• Cross-te...
VALIDER UNE APPLI MOBILE DE A À Z
AGILITE : UNE EVOLUTION LOGIQUE
@cega18 #JFTLValAppMobile @htquach
• Difficultés
• Traça...
VALIDER UNE APPLI MOBILE DE A À Z
• Introduction
• Qui sommes-nous ?
• Déroulement du tutoriel
• Un REX, juste un REX
• Ob...
Environnement
de tests
OS Version
OS
ConstructeurRésolution
Browsers
iOS (3, 4, 5, 6, 7, 8)
Android (2.3, 4.2, 4.3, 4.4, 4...
• Comment choisir les cibles – Terminal/OS/Version/browser
• Utiliser ses statistiques d’audience
• Utiliser ses logs serv...
VALIDER UNE APPLI MOBILE DE A À Z
TYPOLOGIE DES TESTS & TYPE DE CAMPAGNE
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
TYPOLOGIE DES TESTS & TYPE DE CAMPAGNE
@cega18 #JFTLValAppMobile @htquach
Type de campag...
• Remontée d’anomalie
• Screenshots commentés
• Logs serveurs/applicatifs
• crash logs (serveur ou synchro mobile)
• Teste...
• Proxy Wifi
• Objectifs
• Sniffer les requêtes HTTP envoyées par l’application grâce à un ordinateur
équipé d’une carte W...
Proxy WiFI +
Brique DummyNet
• Scénario « classique »
automatisé
• HP/LRT/LRC/F
D/FDC
Dynatrace
IC / PC
IP
firewall
web
Ap...
18/09/2014 • Automatisation Mobile 24
Proxy +
Analyseur
• Fichiers SuperXML
• PDM contextualisé par TF
• Lancement de l’an...
• Intégration au terminal : impact de votre application
• Conso batterie
• Géolocalisation
• Mémoire
• Compatibilité
• Asc...
• Intégration de multiple SDKs
• URM/STAT/Beacon/Carto/crash logger/libs internes
• Aller plus loin que le fonctionnel
• T...
VALIDER UNE APPLI MOBILE DE A À Z
AUTOMATISATION
@cega18 #JFTLValAppMobile @htquach
• Objectifs
• Détecter les bugs le plu...
• Difficultés liées à l’environnement mobile
• Gestion des terminaux branchés à l’IC (armoire/coffre)
• changer les config...
• Supervision
• Instrumentation Dynatrace
• Sonde applicative via un
automate
VALIDER UNE APPLI MOBILE DE A À Z
PRODUCTION...
• Performance utilisateur
• Perf serveur
• Perf réseau
• Perf application
VALIDER UNE APPLI MOBILE DE A À Z
PRODUCTION – S...
• Soumission
• Tests finaux pour contrôler les branchements
• Continuous Delivery ?
• Déploiement progressif
• Organiser u...
VALIDER UNE APPLI MOBILE DE A À Z
• De l’importance de bien s’outiller
• Un nuage de tools
• Feature flipping & AB Testing...
VALIDER UNE APPLI MOBILE DE A À Z
NUAGES DE TOOLS
@cega18 #JFTLValAppMobile @htquach
SLOCCOUNT
LINT/ OCLINT
PMD
CHECKSTYLE...
VALIDER UNE APPLI MOBILE DE A À Z
FEATURE FLIPPING & AB TESTING
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
MAITRISE DES DELAIS
• Tout le code est toujours poussé
en production
• Feature pas prête...
VALIDER UNE APPLI MOBILE DE A À Z
• Choisir les bons outils :
• In-house
• Solution existante
• Binaire / N-aire
• Réparti...
VALIDER UNE APPLI MOBILE DE A À Z
ALPHA & BETA-TESTING
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
MESURE
MAITRISE DE LA QUALITE
ALPHA-TESTING
Technique (crashes, bugs)
Fonctionnel
QA
Sal...
VALIDER UNE APPLI MOBILE DE A À Z
ALPHA & BETA-TESTING - MODELES
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
ALPHA & BETA-TESTING - MODELES
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
GIT & PRINCIPES
@cega18 #JFTLValAppMobile @htquach
• Limiter les branches
• develop
• re...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT – SELON VOUS ?
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - LEXIQUE
• Continuous integration
• A chaque commit ou par batch,...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - LEXIQUE
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - OBJECTIFS
@cega18 #JFTLValAppMobile @htquach
Réduire le temps de...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - TYPES DE BUILDS
@cega18 #JFTLValAppMobile @htquach
LATEST BUILDS...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - PIPELINES
STEP 2
Unit
tests
STEP 9
Production
tests
STEP 10
Monk...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - MODELES
1 déploiement par jour
~ 10 déploiements par jour
~ 1 dé...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - MODELES
2013
Team Customer Surveys
Code live en production 8
min...
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - MODELES
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - DASHBOARD
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
• De l’importance de bien s’outiller
• Un nuage de tools
• Feature flipping & AB Testing...
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT
« TDD IS LIKE TEENAGE SEX:
EVERYONE TALKS ABOUT IT,
NOBODY REALL...
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – SELON VOUS ?
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – ORIGINE
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – CONCEPT
• Méthode traditionnelle
Ajouter du code
Ajouter un te...
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – CYCLE DE DEVELOPPEMENT
@cega18 #JFTLValAppMobile @htquach
Exéc...
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT - AVANTAGES
@cega18 #JFTLValAppMobile @htquach
• Les tests sont ...
VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – CHEZ QUI ?!!
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
GESTION DES EXIGENCES – Et vous?
@cega18 #JFTLValAppMobile @htquach
VALIDER UNE APPLI MOBILE DE A À Z
GESTION DES EXIGENCES
@cega18 #JFTLValAppMobile @htquach
• Constat :
• Agile = Vision év...
VALIDER UNE APPLI MOBILE DE A À Z
• De l’importance de bien s’outiller
• Un nuage de tools
• Feature flipping & AB Testing...
VALIDER UNE APPLI MOBILE DE A À Z
DOGGY BAG - ITEMS A EMPORTER
• La qualité est l’affaire de toute l’équipe !
• Tester tou...
VALIDER UNE APPLI MOBILE DE A À Z
QUESTIONS ?
MERCI
@cega18 #JFTLValAppMobile @htquach
Prochain SlideShare
Chargement dans…5
×

JFTL2015 - Tester une application mobile de A à Z

1 107 vues

Publié le

Test des applications mobiles

Cédric Gautier / Hien-Thuan Quach - PagesJaunes

La présentation "Test des applications mobiles" a pour but de présenter les différentes étapes pour qualifier une application mobile depuis la fin de sa phase de conception fonctionnelle (conception recette, et l’écriture des tests dans le code par l’équipe de développement) à sa mise en ligne en passant par sa validation.

Nous aborderons chacune des étapes en évoquant la stratégie (couverture des combinaisons terminaux/OS), les méthodes, les outils utilisés (dev, déploiement, supervision, sniffing) ainsi que les différents écueils déjà rencontrés et les solutions mises en place ( intégration Continue, Equipe Agile, Outillage) ou à venir ( vers un mode Continuous Delivery, Agilité, feature flipping, mise en place de train de releases)

Nous évoquerons donc le test au niveau de la phase de développement, les différentes typologies de tests (unitaires, Acceptance, fonctionnels (Manuels & Automatisés), performance, tests graphiques et ergonomie, tests 2à2, tests dos à dos, tests en extérieur), la non-régression et leur implémentation dans notre organisation.

La présentation ne se veut pas didactique mais au contraire sera réalisée sur des échanges interactifs qui permettront d'aborder les problématiques rencontrées par le public sur les applications mobiles comme le

cycle de vie d'une application (mise à jour, compatibilité, débranchement), la gestion des versions par store interne, la gestion d’un éco-système hétérogène avec de nombreux SDK externes embarqués dans le produit, le suivi de la qualité (crashlogs, audience)

La performance Back Office et applicative sera aussi évoquée ainsi que les impacts de l’application sur le terminal (Batterie, mémoire, géolocalisation) et les méthodes utilisées pour tester ces conditions aux limites. Pour finir comment gérer la mise en ligne selon les stores et les délais de validation (itération, déploiement progressif et suivi de crashes, beta-testing)

Publié dans : Technologie
  • Soyez le premier à commenter

JFTL2015 - Tester une application mobile de A à Z

  1. 1. COMMENT VALIDER UNE APPLICATION MOBILE DE A À Z « DU TEST MANUEL AU CONTINUOUS DEPLOYMENT » Cédric GAUTIER Hien-Thuan QUACH
  2. 2. VALIDER UNE APPLI MOBILE DE A À Z • Introduction • Qui sommes-nous ? • Déroulement du tutoriel • Un REX, juste un REX • Objectifs • Le contexte PagesJaunes • PagesJaunes & le mobile : une histoire et des chiffres • Les applications PagesJaunes • PagesJaunes & l’agilité : une évolution logique • Les tests au cœur de la stratégie • Stratégie de tests • Typologie de tests & types de campagnes • Techniques de tests • Risques dans la validation mobile • Automatisation • En production AGENDA @cega18 #JFTLValAppMobile @htquach
  3. 3. VALIDER UNE APPLI MOBILE DE A À Z • De l’importance de bien s’outiller • Un nuage de tools • Feature flipping & AB Testing • Alpha & Beta-testing • Le Continuous Deployment • Ouvertures • Test Driven Development • Gestion Des Exigences • Conclusion • Le doggy bag • Questions AGENDA @cega18 #JFTLValAppMobile @htquach
  4. 4. VALIDER UNE APPLI MOBILE DE A À Z • Introduction • Qui sommes-nous ? • Déroulement du tutoriel • Un REX, juste un REX • Objectifs • Le contexte PagesJaunes • PagesJaunes & le mobile : une histoire et des chiffres • PagesJaunes & l’agilité : une évolution logique • Les tests au cœur de la stratégie • Stratégie de tests • Typologie de tests & types de campagnes • Techniques de tests • Risques dans la validation mobile • Automatisation • En production AGENDA @cega18 #JFTLValAppMobile @htquach
  5. 5. VALIDER UNE APPLI MOBILE DE A À Z Cédric Gautier Responsable Validation Mobile « » Hien-Thuan Quach Responsable Développements Mobile «Agiliste convaincu, software craftsman à ses heures perdues » QUI SOMMES NOUS ? @cega18 #JFTLValAppMobile @htquach
  6. 6. VALIDER UNE APPLI MOBILE DE A À Z ET VOUS ? @cega18 #JFTLValAppMobile @htquach
  7. 7. VALIDER UNE APPLI MOBILE DE A À Z DEROULEMENT @cega18 #JFTLValAppMobile @htquach • Partie 1 : 1h 10min • Pause : 10min • Partie 2 : 1h 10 min • Questions : 30 min
  8. 8. VALIDER UNE APPLI MOBILE DE A À Z DEROULEMENT @cega18 #JFTLValAppMobile @htquach
  9. 9. VALIDER UNE APPLI MOBILE DE A À Z UN REX, JUSTE UN REX Notre vision Notre expérience de 5 ans Nous ne détenons pas la vérité @cega18 #JFTLValAppMobile @htquach
  10. 10. VALIDER UNE APPLI MOBILE DE A À Z • Partager notre vision de l’ensemble des éléments nécessaires à la validation d’une application • Présenter & échanger sur les pistes d’amélioration pour mieux garantir la qualité OBJECTIFS @cega18 #JFTLValAppMobile @htquach
  11. 11. VALIDER UNE APPLI MOBILE DE A À Z • Introduction • Qui sommes-nous ? • Déroulement du tutoriel • Un REX, juste un REX • Objectifs • Le contexte PagesJaunes • PagesJaunes & le mobile : une histoire et des chiffres • PagesJaunes & l’agilité : une évolution logique • Les tests au cœur de la stratégie • Stratégie de tests • Typologie de tests & types de campagnes • Techniques de tests • Risques dans la validation mobile • Automatisation • En production AGENDA @cega18 #JFTLValAppMobile @htquach
  12. 12. Visites mensuelles Visiteurs Taux de crashes Nombre de versions 8M + 0,24M 5,7M + 0,17M 0,39% 80 6,4M + 0,99M 4,8M + 0,7M 0,19% 50 16,7 M 13,6M N/A 60 VALIDER UNE APPLI MOBILE DE A À Z UNE HISTOIRE ET DES CHIFFRES @cega18 #JFTLValAppMobile @htquach
  13. 13. VALIDER UNE APPLI MOBILE DE A À Z AGILITE : UNE EVOLUTION LOGIQUE @cega18 #JFTLValAppMobile @htquach
  14. 14. VALIDER UNE APPLI MOBILE DE A À Z AGILITE : LES FEATURES TEAMS @cega18 #JFTLValAppMobile @htquach • Description • Cross-techno • Autonomes • Spécialisées • 9 personnes • Objectifs • Gagner en cohérence • Gagner en efficacité • Réduire la taille des équipes • Mutualiser un maximum
  15. 15. VALIDER UNE APPLI MOBILE DE A À Z AGILITE : UNE EVOLUTION LOGIQUE @cega18 #JFTLValAppMobile @htquach • Difficultés • Traçabilité du fonctionnel au travers d’une US qui trace une évolution • Assurer la couverture • Produire des indicateurs fiables sur la couverture de tests et de résultats • Automatisation au fil des sprints • Agilité – Tester au fil des sprints • Une US part en DEV si les tests sont prêts (Manuel + corps des tests automatisés) • Développement = Conception/DEV/TU/Automatisation
  16. 16. VALIDER UNE APPLI MOBILE DE A À Z • Introduction • Qui sommes-nous ? • Déroulement du tutoriel • Un REX, juste un REX • Objectifs • Le contexte PagesJaunes • PagesJaunes & le mobile : une histoire et des chiffres • PagesJaunes & l’agilité : une évolution logique • Les tests au cœur de la stratégie • Stratégie de tests • Typologie de tests & types de campagnes • Techniques de tests • Risques dans la validation mobile • Automatisation • En production AGENDA @cega18 #JFTLValAppMobile @htquach
  17. 17. Environnement de tests OS Version OS ConstructeurRésolution Browsers iOS (3, 4, 5, 6, 7, 8) Android (2.3, 4.2, 4.3, 4.4, 4.5, 5.0) + Surcouches constructeur/opérateur VALIDER UNE APPLI MOBILE DE A À Z STRATEGIE DE TESTS @cega18 #JFTLValAppMobile @htquach
  18. 18. • Comment choisir les cibles – Terminal/OS/Version/browser • Utiliser ses statistiques d’audience • Utiliser ses logs serveurs (parfois plus complet) • Gérer ses compatibilités (ArmV6, API, OS version) – Maintien si traffic < 5%? • Matrice combinatoire des cibles – Terminal/OS/Version/browser • Compléter avec sa charge et son budget • créer à un tableau à 3 ou 4 entrées pour faire ses choix • Prendre en compte la performance des terminaux ( Top, Middle, Low-cost) • couverture des surcouches Operateur/constructeur? VALIDER UNE APPLI MOBILE DE A À Z STRATEGIE DE TESTS @cega18 #JFTLValAppMobile @htquach
  19. 19. VALIDER UNE APPLI MOBILE DE A À Z TYPOLOGIE DES TESTS & TYPE DE CAMPAGNE @cega18 #JFTLValAppMobile @htquach
  20. 20. VALIDER UNE APPLI MOBILE DE A À Z TYPOLOGIE DES TESTS & TYPE DE CAMPAGNE @cega18 #JFTLValAppMobile @htquach Type de campagne Non-Régression Evolution Mise à jour Performance : applicative et Back-Office (Temps de réponse) Appli et serveur Automatique Manuelle Exploratoire - Recherche de crashes 2 à 2 / Dos à dos Campagne de soumission au Store Typologie des tests Tests Unitaires Tests fonctionnels (Acceptance, Détaillé, Limite, Erreur, Mise à jour) Tests techniques : (proxy/logs) Mise à jour de SDK interne, refactoring Tests terrains (mobilité : réseau et géoloc) Tests intégration au terminal (fonctionnement nominal du téléphone après utilisation de mon appli : géoloc/batterie/mémoire, interruptions, multi-touch, Photo/agenda/contacts) Tests environnement (Multi-terminaux, multiOS, claviers…) Tests Statistiques (Proxy et/ou logs) Monkey Tests Ergo Design/visuel Accessibilité
  21. 21. • Remontée d’anomalie • Screenshots commentés • Logs serveurs/applicatifs • crash logs (serveur ou synchro mobile) • Tester Instabug ? Skitch? • Gérer ses tests terrains • Référentiel de tests? • Ouverture des services à l’extérieur • Gérer ses tests exploratoires • Parcours non tracés, anomalies? VALIDER UNE APPLI MOBILE DE A À Z TECHNIQUE DE TESTS @cega18 #JFTLValAppMobile @htquach
  22. 22. • Proxy Wifi • Objectifs • Sniffer les requêtes HTTP envoyées par l’application grâce à un ordinateur équipé d’une carte Wifi • Analyse de traffic/validation de CI de manière indépendante • Comment ? • Sur le téléphone, Paramétrage avancés de votre Wifi, activer et paramétrer un proxy manuel (IP + Port du PC) • Lancer un proxy sur PC pour visualiser le traffic (privoxy/fiddler/burp/Charles…) • Simulation de géolocalisation • Facile en web (plugin ou paramétrage de la webapp) • Applicatif : Application disponible sur Android, plus compliqué sur iOS) VALIDER UNE APPLI MOBILE DE A À Z TECHNIQUE DE TESTS @cega18 #JFTLValAppMobile @htquach
  23. 23. Proxy WiFI + Brique DummyNet • Scénario « classique » automatisé • HP/LRT/LRC/F D/FDC Dynatrace IC / PC IP firewall web Appareils • Proxy WIFI • Application de profils réseau • EDGE • 3G • WiFi • Réseaux dégradés Serveur reporting • Mise en place d’un rapport automatisé sur les mesures définies • Application mobile marquée par Dynatrace VALIDER UNE APPLI MOBILE DE A À Z TECHNIQUE DE PERFS @cega18 #JFTLValAppMobile @htquach
  24. 24. 18/09/2014 • Automatisation Mobile 24 Proxy + Analyseur • Fichiers SuperXML • PDM contextualisé par TF • Lancement de l’analyseur • Lancement des tests AT-Internet CIMOB Services PJ + WSSTAT Serveur WEB IC / PC T1000 web Appareils • Collecte des requêtes • At-internet • Ws-Stat • Technique • Analyse des requêtes CBI Serveur reporting VALIDER UNE APPLI MOBILE DE A À Z TECHNIQUE DE STATS & REQUETES @cega18 #JFTLValAppMobile @htquach
  25. 25. • Intégration au terminal : impact de votre application • Conso batterie • Géolocalisation • Mémoire • Compatibilité • Ascendante • Nouvel OS (veille sur une beta stable?) • Nouveau terminaux (écran/résolution/adaptation) • Descendante • Fragmentation des versions en Prod • Tester la rétro-compatibilité avec le back-office • Prévoir un mécanisme d’arrêt de la version/demande d’upgrade? • Une appli embarquée en prod reste en prod ! • Services du device • Contacts / Photos / Camera / Mail / SMS • Accès / Utilisation VALIDER UNE APPLI MOBILE DE A À Z RISQUES DANS LA VALIDATION MOBILE (1/2) @cega18 #JFTLValAppMobile @htquach
  26. 26. • Intégration de multiple SDKs • URM/STAT/Beacon/Carto/crash logger/libs internes • Aller plus loin que le fonctionnel • Tests d’interruption (popup système/Call/push/mise en background) • Gestion de session (fin de session, reprise) • Reprise sur page en cours • Géolocalisation • Navigation avertie • Aller/retour + stress (monkey Test) • Multi-touch (gestion d’exclusion) (tablette) • Fonctionnel lié au cache • Conservation de paramètres/cache/format de BDD VALIDER UNE APPLI MOBILE DE A À Z RISQUES DANS LA VALIDATION MOBILE (2/2) @cega18 #JFTLValAppMobile @htquach
  27. 27. VALIDER UNE APPLI MOBILE DE A À Z AUTOMATISATION @cega18 #JFTLValAppMobile @htquach • Objectifs • Détecter les bugs le plus vite possible et le plus tôt possible • Tests Unitaires • Tests d’intégration • Tests d’environnements • Gain de temps • Reproduction aisée • Keyword Test Driven • pilotage par Ordonnanceur (Jenkins)
  28. 28. • Difficultés liées à l’environnement mobile • Gestion des terminaux branchés à l’IC (armoire/coffre) • changer les configurations sans intervention humaine? • Définir les 2 ou 3 combinaisons les plus représentatives • Quand écrire les tests Autos avec un TTM très court? • Questionnement ? • Cloud Testing ou Mobile sur site? VALIDER UNE APPLI MOBILE DE A À Z AUTOMATISATION @cega18 #JFTLValAppMobile @htquach
  29. 29. • Supervision • Instrumentation Dynatrace • Sonde applicative via un automate VALIDER UNE APPLI MOBILE DE A À Z PRODUCTION- SUPERVISION & SUIVI DE LA QUALITE @cega18 #JFTLValAppMobile @htquach • Suivi du taux de crash • Prévoir un crashlogger avec une API • Tableau de bord lié à l’audience par version
  30. 30. • Performance utilisateur • Perf serveur • Perf réseau • Perf application VALIDER UNE APPLI MOBILE DE A À Z PRODUCTION – SUPERVISION & SUIVI DE LA QUALITE @cega18 #JFTLValAppMobile @htquach
  31. 31. • Soumission • Tests finaux pour contrôler les branchements • Continuous Delivery ? • Déploiement progressif • Organiser un déploiement sur un panel d’utilisateur + Supervision • Google Play Store le permet + appropriation des taux de traffic • sur IOS, certains kits de déploiement le propose • Créer une communauté de Beta-test • Utiliser le Crowd-Testing • Intérêt • Créer du feedback très tôt • Tests de volumétrie • Panel plus hétérogène qu’en labo VALIDER UNE APPLI MOBILE DE A À Z PRODUCTION - DEPLOIEMENT @cega18 #JFTLValAppMobile @htquach
  32. 32. VALIDER UNE APPLI MOBILE DE A À Z • De l’importance de bien s’outiller • Un nuage de tools • Feature flipping & AB Testing • Alpha & Beta-testing • Le Continuous Deployment • Ouvertures • Test Driven Development • Gestion Des Exigences • Conclusion • Le doggy bag • Questions AGENDA
  33. 33. VALIDER UNE APPLI MOBILE DE A À Z NUAGES DE TOOLS @cega18 #JFTLValAppMobile @htquach SLOCCOUNT LINT/ OCLINT PMD CHECKSTYLE/ OBJCLEAN KIF SALSA
  34. 34. VALIDER UNE APPLI MOBILE DE A À Z FEATURE FLIPPING & AB TESTING @cega18 #JFTLValAppMobile @htquach
  35. 35. VALIDER UNE APPLI MOBILE DE A À Z MAITRISE DES DELAIS • Tout le code est toujours poussé en production • Feature pas prête  Désactivée à la compilation PRINCIPES GENERAUX Release trains & dates fixes Feature développée  Feature-flippée Stratégie de recette  Au cas par cas MAITRISER LE RISQUE • Feature critique en production  Désactivée au runtime AIDER A LA DECISION • A/B testing par : - Gestion de scenarii fonctionnels - Mesure des KPIs FEATURE FLIPPING & AB TESTING – PRINCIPES @cega18 #JFTLValAppMobile @htquach
  36. 36. VALIDER UNE APPLI MOBILE DE A À Z • Choisir les bons outils : • In-house • Solution existante • Binaire / N-aire • Répartir les configurations • Choix des critères • Superviser • Clés en production FEATURE FLIPPING & AB TESTING – CONSEILS @cega18 #JFTLValAppMobile @htquach ITERER
  37. 37. VALIDER UNE APPLI MOBILE DE A À Z ALPHA & BETA-TESTING @cega18 #JFTLValAppMobile @htquach
  38. 38. VALIDER UNE APPLI MOBILE DE A À Z MESURE MAITRISE DE LA QUALITE ALPHA-TESTING Technique (crashes, bugs) Fonctionnel QA Salarités PJ Entourage proche NIGHTLY BUILDS BETA-TESTING Technique Fonctionnel Vrais utilisateurs DELIVERY BUILDS STAGE ROLLOUT Technique Fonctionnel Vrais utilisateurs ALPHA & BETA-TESTING - PRINCIPES @cega18 #JFTLValAppMobile @htquach
  39. 39. VALIDER UNE APPLI MOBILE DE A À Z ALPHA & BETA-TESTING - MODELES @cega18 #JFTLValAppMobile @htquach
  40. 40. VALIDER UNE APPLI MOBILE DE A À Z ALPHA & BETA-TESTING - MODELES @cega18 #JFTLValAppMobile @htquach
  41. 41. VALIDER UNE APPLI MOBILE DE A À Z GIT & PRINCIPES @cega18 #JFTLValAppMobile @htquach • Limiter les branches • develop • release • Utiliser le Feature flipping • tout le code est poussé dans develop • mais pas forcément activé • Maîtriser via des tests automatisés • garantir la NR
  42. 42. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT @cega18 #JFTLValAppMobile @htquach
  43. 43. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT – SELON VOUS ? @cega18 #JFTLValAppMobile @htquach
  44. 44. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - LEXIQUE • Continuous integration • A chaque commit ou par batch, le code source est : • compilé • testé • déployé dans un environnement d’intégration • Continuous Delivery • A chaque commit ou par batch, le code source est : • […] • livré à l’équipe suivante (QA, production, ...) • Continuous Deployment • A chaque commit ou par batch, le code source est : • […] • déployé dans un environnement de production @cega18 #JFTLValAppMobile @htquach
  45. 45. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - LEXIQUE @cega18 #JFTLValAppMobile @htquach
  46. 46. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - OBJECTIFS @cega18 #JFTLValAppMobile @htquach Réduire le temps de stabilisation / non régression Se donner la possibilité de pouvoir shipper à la feature en production
  47. 47. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - TYPES DE BUILDS @cega18 #JFTLValAppMobile @htquach LATEST BUILDS NIGHTLY BUILDS DELIVERY BUILDS Toutes les nuits • […] • Tests fonctionnels Ranorex • Tests statistiques • Tests performance Toutes les livraisons • […] • Monkey tests • Tests “de production” SUR LES STORES INTERNES SUR LES STORES EN BETA Toutes les X minutes • Tests unitaires • Tests fonctionnels (Code) • Analyse code
  48. 48. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - PIPELINES STEP 2 Unit tests STEP 9 Production tests STEP 10 Monkey tests STEP 11 Store deploy STEP 12 Partners build STEP 1 Code quality STEP 3 Functional tests STEP 4 Ranorex tests STEP 5 Statistics tests STEP 6 Artefacts build STEP 7 Internal store deploy STEP 8 Perf. tests @cega18 #JFTLValAppMobile @htquach
  49. 49. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - MODELES 1 déploiement par jour ~ 10 déploiements par jour ~ 1 déploiement toutes les 11 secondes 2013 ~ 25 déploiements par jour @cega18 #JFTLValAppMobile @htquach
  50. 50. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - MODELES 2013 Team Customer Surveys Code live en production 8 minutes après le commit @cega18 #JFTLValAppMobile @htquach
  51. 51. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - MODELES @cega18 #JFTLValAppMobile @htquach
  52. 52. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - DASHBOARD @cega18 #JFTLValAppMobile @htquach
  53. 53. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - JENKINS @cega18 #JFTLValAppMobile @htquach
  54. 54. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - JENKINS @cega18 #JFTLValAppMobile @htquach
  55. 55. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - JENKINS @cega18 #JFTLValAppMobile @htquach
  56. 56. VALIDER UNE APPLI MOBILE DE A À Z CONTINUOUS DEPLOYMENT - JENKINS @cega18 #JFTLValAppMobile @htquach
  57. 57. VALIDER UNE APPLI MOBILE DE A À Z • De l’importance de bien s’outiller • Un nuage de tools • Feature flipping & AB Testing • Alpha & Beta-testing • Le Continuous Deployment • Ouvertures • Test Driven Development • Gestion Des Exigences • Conclusion • Le doggy bag • Questions AGENDA @cega18 #JFTLValAppMobile @htquach
  58. 58. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT « TDD IS LIKE TEENAGE SEX: EVERYONE TALKS ABOUT IT, NOBODY REALLY KNOWS HOW TO DO IT, EVERYONE THINKS EVERYONE ELSE IS DOING IT, SO EVERYONE CLAIMS THEY ARE DOING IT…» @cega18 #JFTLValAppMobile @htquach
  59. 59. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT – SELON VOUS ? @cega18 #JFTLValAppMobile @htquach
  60. 60. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT – ORIGINE @cega18 #JFTLValAppMobile @htquach
  61. 61. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT – CONCEPT • Méthode traditionnelle Ajouter du code Ajouter un test qui teste le code • Méthode TDD Ajouter le code qui respecte le test Ajouter un code de test @cega18 #JFTLValAppMobile @htquach
  62. 62. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT – CYCLE DE DEVELOPPEMENT @cega18 #JFTLValAppMobile @htquach Exécuter & constater qu’il échoue Ajouter du code pour faire passer le test Contrôler que les tests passent toujours Refactorer le code Ajouter un test Exécuter & constater qu’il passe
  63. 63. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT - AVANTAGES @cega18 #JFTLValAppMobile @htquach • Les tests sont réellement écrits • Les tests décrivent le fonctionnel attendu, on répond au besoin du client • Le développeur est dans une situation de réussite et non plus d’échec
  64. 64. VALIDER UNE APPLI MOBILE DE A À Z TEST-DRIVEN DEVELOPMENT – CHEZ QUI ?!! @cega18 #JFTLValAppMobile @htquach
  65. 65. VALIDER UNE APPLI MOBILE DE A À Z GESTION DES EXIGENCES – Et vous? @cega18 #JFTLValAppMobile @htquach
  66. 66. VALIDER UNE APPLI MOBILE DE A À Z GESTION DES EXIGENCES @cega18 #JFTLValAppMobile @htquach • Constat : • Agile = Vision évolutive du produit • Feature team? Qui assure la vision produit globale? Éviter le « Chez moi çà marche » • la NR assure la vision produit • Objectifs ? • Assurer la vision générale du produit • Détecter les impacts des futures évolutions (feature/code/tests) • Assurer une traçabilité de toute la chaîne (US – Exigence – Test – Ano) • Industrialiser des métriques dans la chaîne CD • Taux de couverture par type d’exigence • Bloquer les features si non respect des seuils • Difficultés • Former les PO : GEX + Priorisation • Mise en place complexe • Accompagnement au changement (Outillage et process)
  67. 67. VALIDER UNE APPLI MOBILE DE A À Z • De l’importance de bien s’outiller • Un nuage de tools • Feature flipping & AB Testing • Alpha & Beta-testing • Le Continuous Deployment • Ouvertures • Test Driven Development • Gestion Des Exigences • Conclusion • Doggy bag • Questions AGENDA @cega18 #JFTLValAppMobile @htquach
  68. 68. VALIDER UNE APPLI MOBILE DE A À Z DOGGY BAG - ITEMS A EMPORTER • La qualité est l’affaire de toute l’équipe ! • Tester tout le long & pas uniquement à la fin • Test mobile = Fonctionnel + le comportement mobile • Automatiser un maximum • Délivrer tôt et souvent • Challenger vos processes et vos technos • Prendre du recul sur vos réalisations • Une app mobile a une vie propre en production ! • Try, fail & succeed ! @cega18 #JFTLValAppMobile @htquach
  69. 69. VALIDER UNE APPLI MOBILE DE A À Z QUESTIONS ? MERCI @cega18 #JFTLValAppMobile @htquach

×