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)
1. COMMENT VALIDER UNE APPLICATION
MOBILE DE A À Z
« DU TEST MANUEL AU CONTINUOUS DEPLOYMENT »
Cédric GAUTIER
Hien-Thuan QUACH
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. 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. 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. 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. VALIDER UNE APPLI MOBILE DE A À Z
ET VOUS ?
@cega18 #JFTLValAppMobile @htquach
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. VALIDER UNE APPLI MOBILE DE A À Z
DEROULEMENT
@cega18 #JFTLValAppMobile @htquach
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. 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. 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
13. VALIDER UNE APPLI MOBILE DE A À Z
AGILITE : UNE EVOLUTION LOGIQUE
@cega18 #JFTLValAppMobile @htquach
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. 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. 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
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. VALIDER UNE APPLI MOBILE DE A À Z
TYPOLOGIE DES TESTS & TYPE DE CAMPAGNE
@cega18 #JFTLValAppMobile @htquach
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. • 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. • 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. 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. 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. • 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. • 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. 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. • 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. • 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. • 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. • 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. 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. VALIDER UNE APPLI MOBILE DE A À Z
NUAGES DE TOOLS
@cega18 #JFTLValAppMobile @htquach
SLOCCOUNT
LINT/ OCLINT
PMD
CHECKSTYLE/ OBJCLEAN
KIF
SALSA
34. VALIDER UNE APPLI MOBILE DE A À Z
FEATURE FLIPPING & AB TESTING
@cega18 #JFTLValAppMobile @htquach
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. 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. VALIDER UNE APPLI MOBILE DE A À Z
ALPHA & BETA-TESTING
@cega18 #JFTLValAppMobile @htquach
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. VALIDER UNE APPLI MOBILE DE A À Z
ALPHA & BETA-TESTING - MODELES
@cega18 #JFTLValAppMobile @htquach
40. VALIDER UNE APPLI MOBILE DE A À Z
ALPHA & BETA-TESTING - MODELES
@cega18 #JFTLValAppMobile @htquach
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. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT
@cega18 #JFTLValAppMobile @htquach
43. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT – SELON VOUS ?
@cega18 #JFTLValAppMobile @htquach
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. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - LEXIQUE
@cega18 #JFTLValAppMobile @htquach
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. 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. 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. 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. 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. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - MODELES
@cega18 #JFTLValAppMobile @htquach
52. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - DASHBOARD
@cega18 #JFTLValAppMobile @htquach
53. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
54. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
55. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
56. VALIDER UNE APPLI MOBILE DE A À Z
CONTINUOUS DEPLOYMENT - JENKINS
@cega18 #JFTLValAppMobile @htquach
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. 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. VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – SELON VOUS ?
@cega18 #JFTLValAppMobile @htquach
60. VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – ORIGINE
@cega18 #JFTLValAppMobile @htquach
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. 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. 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. VALIDER UNE APPLI MOBILE DE A À Z
TEST-DRIVEN DEVELOPMENT – CHEZ QUI ?!!
@cega18 #JFTLValAppMobile @htquach
65. VALIDER UNE APPLI MOBILE DE A À Z
GESTION DES EXIGENCES – Et vous?
@cega18 #JFTLValAppMobile @htquach
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. 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. 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. VALIDER UNE APPLI MOBILE DE A À Z
QUESTIONS ?
MERCI
@cega18 #JFTLValAppMobile @htquach
Notas do Editor
[CGA]
[HTQ]
[CGA / HTQ]
[HTQ]
Qui êtes vous ? QA ? Dev ? Autres ?
Mobile ?
Que venez vous chercher ?
[CGA]
[CGA]
[HTQ]
[HTQ]
[CGA]
Quasiment 80 version iOS (PJ/resto/iPAd)
WP8
Palm/BBY/
Et aussi des applis hybrides et exotiques comme les GPS automobiles et Mobilier Urbain
[HTQ]
Pourquoi l’agile ?
Passer à l’agilité & éviter l’effet tunnel sans feedback / ajustement
Comme beaucoup
Le test est au plus tôt dans le cycle, insister sur la qualité des relectures à l’init.
[HTQ]
[CGA]
[CGA]
[CGA]
Diversité des OS
Diversité des terminaux et tailles d’écran
- Ce que nous faisons et ce que nous n’assurons pas
[CGA]
Définir un teléphone bas de gamme pour que les dev le teste au moins un peu
3 terminaux reference
[CGA]
[CGA]
Anecdotes :
SDK externe : URM
Géoloc : refacto de notre algo – bug technique / erreur le long de greenwich
Embarqué = intégration dans un environnement « privé »
batterie : SDK Beacon
ipad : crash multu-touch/ reprise de session
perf : démarrage en tiemout visible en edge dégradé
tests mise à jour : delivery en mode new – tests de maj BDD/sauvegarde des infos
Soumission : retour d’expérience +
[CGA]
- Quelques techniques de tests
[CGA]
- Le proxy nous permet plein de choses intéressantes en autonomie
[CGA]
[CGA]
[CGA]
[CGA]
[CGA]
Gestion des objets
Impact du refactoring de code
tag unique sur les objets
mutulisation des tests, des mots-clés, des cartes d’objet
[CGA]
[CGA]
À gauche les temps de réponses moyens : comment valoriser la moyenne en test pre-prod ??? impossible
à droite, les temps de réponses sur 2 mobiles : bon /pas bon
Bon 85% des gens ont leurs accès dans des délais très bons
Pas bon : ouverture dégradé pour 70% des users
[CGA]
- 3 éléments de comparaison
2 points d’infos : les perf par mobile
là ou l’équipe de dev peut jouer :
Perf app
Perf serveur
Utiliser pour une simulation de LR à 20
[CGA]
Validation de soumission : pas de patch possible!
Comment assurer le produit final vs des features teams :
Automatisation et CD
Tests transverses pour le mannuel (Release management)
ouverture Beta-Test/crowd testing
[HTQ]
Choix des outils
FB Tweaks : Open Source, mais limitations en mode release
Spécificités & complexités : ex Bend PJ
Que Ffer ? UI / Métier ?
Binaire / N-aire
Simple au début
Superviser
Clés en prod
Conseils
Itérer
[HTQ]
[HTQ]
Alpha sur store interne
Beta sur store officiel
[HTQ]
[HTQ]
[HTQ]
Branches
Avantage : effets modifs de code vus rapidement
Anecdote - Parse (FB) : tout le monde bosse sur Master
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
Exemple de Facebook :
Qui a un iPhone ?
Qui a FB ?
Mises à jour auto ?
Quelle fréquence de MAJ ?
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[HTQ]
[CGA]
[HTQ]
[HTQ]
Qu’est-ce que c’est
Origine
[HTQ]
Kent Beck
Programmeur américain
1961
Extreme Programming Explained
1999 avec la parution du livre
Mais mise au point dans les 90s
Programmation au centre du projet
Pratiques de développement poussées à l’extrême
[HTQ]
[HTQ]
[HTQ]
C’est toujours le plus facile à enlever dans le rush
[HTQ]
[CGA]
[CGA]
[CGA]
Pourquoi on y pense :
Vision produit vs Evolution
Tracabilité totale
Prise de décision sur la chaîne
Mesure de la qualité en permanence, visible par feature
[CGA / HTQ]
Tester en mobile c’est du fonctionnel et le comportement mobile (cf stratégie)