Ludovic ROLAND

Blog technique sur mes expériences de développeur.

Superviser son application mobile (3/3) : Le bêta test et le déploiement par étape

25 octobre 2020

Nous venons de voir que les bugs trackers sont extrêmement importants pour surveiller et améliorer la stabilité d’une application une fois celle-ci distribuée sur un ou plusieurs magasins d’applications. Si vous êtes amené à faire évoluer pas mal d’applications fortement utilisées, il vous arrivera forcément un jour des mauvaises surprises. La plus connues étant : l’application fonctionne parfaitement pendant vos tests, mais une fois en production c’est le drame, rien ne marche, les crashs sont multiples! Vous allez véhiculer une très mauvaise image de votre application et accumuler les mauvaises notes sur le magasin d’applications de la plate-forme touchée.

Ce genre de scénario catastrophe n’arrive pas qu’aux développeurs amateurs ou indépendants qui n’ont pas forcément les moyens, humains comme financiers, de tester correctement leurs applications. Il est donc important de le prendre très au sérieux. A titre d’exemple, l’application Android de la RATP, lors de sa dernière mise à jour majeure a subi ce genre de scénario. Les horaires des transports ne s’affichaient pas, des messages de tests s’affichaient au sein de l’application. Bref, rien n’allait. Il a fallu attendre plusieurs mises à jour de l’application pour obtenir une stabilité acceptable la rendant enfin utilisable. Bien que gratuite, les utilisateurs ayant fait la mise à jour se sont retrouvés plusieurs jours sans pouvoir consulter les horaires de leurs bus, trains, métros, etc. et s’en sont donnés à cœur joie pour distribuer des mauvaises notes !

Nous allons voir qu’il est possible, que l’on soit un développeur amateur, indépendant ou un grand compte, d’éviter de se retrouver dans une telle situation. Pour cela, nous allons étudier dans ce chapitre deux concepts :

  • le beta test ;
  • le déploiement par étape.

Plan

Le bêta test

Qu’est-ce le bêta test ?

Le bêta test est un concept très répandu en informatique qui consiste à faire tester une version d’un programme informatique (un site internet, une application mobile, un système d’exploitation, un logiciel, etc.) proche de la version finale par un panel de personnes. Le but est alors que ce panel d’utilisateurs éprouve, dans notre cas, l’application mobile, afin de faire remonter un maximum d’informations permettant de l’améliorer avant sa diffusion officielle sur un magasin d’applications (Windows Store, Google Play Store, App Store, etc.).

  • Les informations remontées peuvent être de nature différente :
  • anomalie graphique ;
  • anomalie fonctionnelle ;
  • crash ;
  • problème de traduction ;
  • comportement étrange ;
  • ergonomie non optimale ;
  • etc.

Idéalement, dans le cadre d’une application mobile, il convient que les testeurs soient le plus représentatifs possible des futurs utilisateurs. Par exemple, dans le cadre d’une application Android ou Windows Phone, plate-forme dont le panel de terminaux est très écliptique, il faudrait qu’il y ait des terminaux haut de gamme (Nexus, Samsung Galaxy S, Lumia 1520, Lumia 1020, etc.) comme des terminaux d’entrée de gamme (Wiko, Huaway, Samsung Ace, Lumia 435, etc.) et si le système d’exploitation auquel se destine votre application est disponible sur tablette, n’oubliez pas d’en avoir quelques unes dans votre panel !

Le bêta test à travers les magasins d’applications

La mise en place du bêta testing d’une application est aujourd’hui supporté nativement sur la grande majorité des magasin d’applications même si les appellations peuvent varier. Par exemple, sur le Google Play Store, il est possible de pousser une application sur en bêta ou alpha comme en témoigne la capture d’écran ci-dessous. Pour le coût, le libellé est plutôt explicite.

Sur le Windows Phone Store, si le libellé “bêta” n’est pas utilisé, il est possible de ne rendre visible la publication d’une application qu’à certaines personnes bien ciblées. Vous pouvez ainsi au choix, limiter l’accès à l’application à :

  • toutes les personnes dont l’adresse e-mail est renseignée dans le tableau de bord de l’application ;
  • toutes les personnes possédant le lien direct vers la page de l’application sur le magasin d’applications.

Finalement, sachez aussi qu’il existe des outils spécialisés dans la distribution d’applications auprès d’un panel de testeurs et ce pour les principales plateformes mobiles. Dans les prochaines lignes, je vous propose de revenir très rapidement sur trois d’entre elles.

Les outils spécialisés permettant le bêta test

TestFlight

Débutons nous étude rapide des outils permettant de facilement distribué une application auprès de testeurs par la plate-forme phare du système d’Apple : TestFlight.

Cette plate-forme, qui à l’origine permettait de distribuer des applications iOS et Android à un panel de bêta testeurs a été racheté par Apple en 2014. Depuis ce rachat, la distribution d’application Android n’est plus disponible, Apple préférant se concentrer sur sa propre plate-forme.

En savoir plus sur TestFlight.

Firebase App Distribution

Dans le précédent chapitre, je vous présentais Crashlytics comme un bug tracker et étant inclus dans la suite logicielle Firebase. Sachez que dans cette suite logicielle, il existe un mobile Firebase App Distribution permettant de distribuer vos applications mobiles à un panel de bêta testeur. Si TestFlight se limite à la distribution d’applications iOS, Firebase App Distribution lui, permet de distribuer des applications iOS et Android. Une nouvelle fois, on pourra lui reprocher l’absence de compatibilité avec l’univers Windows, que ça soit Windows Phone, Windows Store ou Windows 10.

En savoir plus sur Firebase App Distribution.

Le déploiement par étapes

Pour terminer ce cours, il nous reste encore une notion importante à voir : le déploiement par étapes.

Le déploiement par étapes, consiste, au moment de la mise en production d’une mise à jour d’une application sur un magasin d’applications, à ne pas diffuser celle ci à l’ensemble de vos utilisateurs, mais en commençant par pourcentage relativement faible.

On y vient !

Le but est tout simplement de limiter les dégâts si jamais tout ne se passe pas comme prévu. Ce déploiement par étapes doit bien évidemment s’accompagner d’un travail d’analyse de votre côté. Il convient de que vous ayez un œil sur les différents outils qui vous permettent de supervision votre application comme un bug tracker.

Illustrons mes propos à l’aide d’un scénario relativement simple. Vous venez de mettre à jour votre application et vous vous apprêtez à la mettre à disposition de vos utilisateurs. Vous avez actuellement de très bonnes notes sur le magasin d’application sur lequel votre application est distribué et vous ne souhaitez pas voir sa note baisser. Vous décidez alors de mettre à disposition la mise à jour de votre application à seulement 10% de vos utilisateurs. Après quelques jours d’utilisations, jetez un coup d’œil aux anomalies remontées par le bug tracker intégré à l’application. Deux suites peuvent alors être données :

  • Le nombre d’anomalies est constant par rapport aux précédentes version de l’application, il n’y a pas à s’inquiéter, la mise à jour semble relativement stable, vous pouvez augmenter le nombre de personnes bénéficiant de la mise à jour à, par exemple, 50%. Si d’ici quelques jours tout vous semble ok, vous pourrez passer à 100%.
  • Le nombre d’anomalies est en forte hausse. Il n’est pas envisageable de distribuer cette mise à jour instable à l’ensemble des utilisateurs. Il convient alors de stopper le déploiement par étape, procéder aux corrections et recommencer la procédure jusqu’à obtenir une mise à jour stable et déployable à 100% des utilisateurs sans risque.

En résumé

  • le bêta test permet d’éprouver une application ou sa mise à jour avant de la mettre en production ;
  • le bêta test permet de proposer des applications stables et de qualité ;

Commentaires