Créer son application mobile native, partie 4 : les tests

Après avoir mis en place votre application, il est essentiel de la tester. Cela permet de vérifier son bon fonctionnement, son utilisabilité ou intuitivité mais aussi sa compatibilité avec d’autres appareils et systèmes d’exploitation.

La plupart des programmateurs souhaitent, après avoir développé une application et défini son design, passer bien sûr au plus vite à la publication de leur app. Toutefois, avant de proposer cette dernière sur une app store, il est fortement conseillé de s’assurer qu’elle fonctionne correctement. Il s’agit surtout de vérifier sa performance, sa compatibilité et son usabilité. On parle souvent de « test d’application mobile ». De nombreux outils vont pouvoir vous aider dans cette démarche.

Pourquoi tester son application ?

Pour que votre application obtienne un bon impact, il est primordial de proposer un contenu convaincant, de bien gérer sa commercialisation mais aussi de s’assurer que ses fonctions marchent impeccablement et de manière intuitive. C’est pourquoi, il est incontournable de réaliser des tests avant le lancement de l’application, qu’il s’agisse de lancer une application mobile ou une application de bureau.

Tester son application se heurte toutefois à une complication de taille : s’adapter à différents appareils demande en effet bien plus de travail pour les applications mobiles (natives) qu’avec d’autres logiciels. Lorsque les premières applications furent développées, cette adaptation était relativement simple car le choix des smartphones était assez réduit. Aujourd’hui, il existe en revanche une large palette d’appareils mobiles de caractéristiques très différentes. Les hardwares (matériels informatiques) sont aussi différents les uns des autres que les modèles de smartphones et tablettes. Les critères décisifs pour une application sont toutefois surtout la mémoire vive (RAM), le processeur (UCT) mais aussi l’affichage et la résolution d’écran.

En plus du matériel informatique, le software joue également un rôle déterminant pour l’application. Ce sont surtout les différents systèmes d’exploitation qui vont avoir une influence sur le rendu de l’application. Certains systèmes d’exploitation quelques peu obsolètes peuvent peiner à afficher correctement des applications car ils ne permettent pas toujours de mettre en place les mises à jour nécessaires à leurs fonctionnements. Il ne faut pas sous-estimer le nombre de versions d’Android et iOS utilisées qui sont dépassées. La diversité des systèmes est flagrante chez Android : globalement, les anciennes versions des systèmes d’exploitation de Google sont plus utilisées que les versions actuelles. Cela est notamment dû au fait que de nombreux fabricants chez Android tardent ou ne mettent pas du tout en place les mises à jour. Avec iOS, les nouvelles versions des systèmes d’exploitation arrivent plus rapidement sur les iPhones et iPads. Toutefois, les appareils les plus anciens ne reçoivent plus de mises à jour d’Apple, ce qui explique que l’on trouve encore des versions très anciennes d’iOS sur certains appareils Apple.

Pour décrire la diversité des hardwares et softwares des appareils mobiles, on parle de fragmentation. Elle pose un grand défi pour assurer une bonne qualité pour son application. Ainsi, tester son application a du sens : par ce moyen, on vérifie si l’application peut fonctionner sous différentes conditions, et si c’est bien le cas, de vérifier qu’aucun problème ne survienne. Détecter et résoudre les anomalies doivent permettre de garantir une expérience utilisateur optimale pour le plus grand nombre d’utilisateurs. Une application ne pourra atteindre une grande audience que si elle est performante et intuitive sur le plus grand nombre d’appareils mobiles.

Comment tester une application ?

Il existe différentes manières de tester une application. Pour assurer la qualité de votre application, des approches variées peuvent être entreprises. Ces dernières s’articulent dans tous les cas autour de deux questions centrales : quel est le type de test le plus approprié (tests manuels ou automatisés) et comment ce dernier doit-il être effectué (test sur chaque appareil ou via un simulateur / émulateur).

Tests d’application manuels vs automatisés

Tests d’application manuels (menés par des utilisateurs)

La plupart du temps, les applications sont contrôlées de manière manuelle : l’application est alors testée simplement par des utilisateurs. Afin que l’application soit testée dans toutes ses éventualités, il n’est pas forcément judicieux de faire intervenir l’équipe même qui a développé l’application et qui la connaît par cœur. Par conséquent, on fait souvent appel à des groupes (dans le meilleur des cas un groupe assez large et représentatif de la cible) pour utiliser l’application et ensuite l’évaluer. Ce groupe va naturellement effectuer les scénarios les plus plausibles sur l’application. L’avantage de se tourner vers des personnes externes est qu’elles ne connaissent absolument pas les fonctions de votre application ; elles peuvent ainsi réellement rendre compte des impressions qu’auront vos futurs utilisateurs.

Parmi les tests manuels d’application mobile, on peut choisir également le crowdtesting. Les sites de crowdtesting proposent des groupes de tests. Ainsi, vous pouvez choisir un panel d’utilisateurs correspondant à votre cible qui va essayer l’application sur leurs appareils personnels. Le crowdtesting n’a donc pas lieu dans un endroit dédié au test mais s’applique dans l’environnement naturel de l’utilisateur, ce qui augmente les chances d’obtenir des résultats pertinents. Pour les applications iOS (et également pour watchOS ainsi que tvOS apps), il est possible d’utiliser TestFlight d’Apple Developer, d’inviter jusqu’à 2000 participants et d’organiser vous-même votre crowdtest. Google propose également de nombreuses options pour réaliser des tests bêta pour les apps Android.

Tests d’application automatisés (grâce à des outils dédiés)

Contrairement aux tests manuels, des contrôles automatisés peuvent être mis en place pour les applications où certains processus peuvent être déroulés de manière continue sous différentes conditions. Pour les tests automatiques, un logiciel spécifique est nécessaire. Cette méthode a pour avantage principal un gain de temps considérable. Les tests peuvent être opérés de manière bien plus rapide que s’ils étaient effectués par un utilisateur. Toutefois, l’automatisation ne s’applique pas à tous les domaines.

Appareils mobiles physiques vs simulateur / émulateur

Tests sur des appareils mobiles physiques

Tester l’appareil sur différents appareils mobiles est la solution idéale pour comprendre comment les fonctions s’utilisent sur les différents softwares et matériels informatiques. Néanmoins, cela requiert du temps et de l’argent, car les smartphones et tablettes sont nombreuses et il est nécessaire de tester l’ensemble des fonctions de chaque appareil pour tirer de réelles conclusions. Le moyen le plus simple est d’utiliser l’application sur les plateformes de différents fournisseurs de test pour app mobile ; ces derniers proposent, grâce à ce que l’on appelle des device labs ou test labs, d’accéder au fonctionnement de différents appareils mobiles avec lesquels vous pouvez tester votre application. 

Test via émulateur/simulateur

Les émulateurs et simulateurs sont des programmes qui imitent des appareils donnés. Les applications peuvent être simulées virtuellement sur ces derniers. Les résultats ne sont néanmoins pas fiables à 100 % car ils ne peuvent pas rendre compte de manière authentique de toutes les interactions des utilisateurs. De plus, d’autres tests doivent obligatoirement s’ensuivre sur des appareils physiques car l’utilisation des simulateurs présentent des limites sur certains domaines.

Les simulateurs et émulateurs ne peuvent en effet pas remplacer tous les tests sur appareils physiques, mais y restent complémentaires. Ils permettent surtout des tests automatisés. Grâce à ces outils, il est possible de vérifier rapidement les fonctions d’une application avec des matériels informatiques et softwares différents. De nombreux simulateurs et émulateurs sont de plus gratuits. C’est par exemple le cas de ceux contenus dans les programmes Android Studio et Apple Xcode.

Différents champs d’application

En plus des différentes méthodes de test présentées, différents champs d’application doivent être vérifiés. Nous avons choisi de vous présenter 4 tests pour lesquels vous ne devriez pas faire d’impasse. Outre les tests mentionnés dans ce chapitre, il existe également des tests de sécurité, de localisation et d’autres champs d’application que nous n’avons pas choisis de développer.

Tests fonctionnels

Grâce aux tests fonctionnels, vous contrôlez si une application fonctionne réellement de la manière que vous souhaitiez. Vous pourrez vérifier si tous les contenus de l’application apparaissent comme prévu : chaque fonction, chaque écran, et chaque bouton sont inspectés. Pour des tests fonctionnels, les questions suivantes sont posées :

  • L’application s’installe et se désinstalle-t-elle sans problème ?
  • L’ensemble des contenus fonctionne-t-il comme prévu ?
  • L’application peut-elle continuer normalement à fonctionner si sa fenêtre est réduite ?
  • L’application subit-elle des interruptions ou bloque-t-elle ?
  • Les utilisateurs reçoivent-ils les notifications adéquates lorsqu’un problème apparaît ?

Outre l’application en soi, il est nécessaire de vérifier des scénarios précis sur l’appareil :

  • Les fonctions de l’appareil peuvent-elles être exécutées et les autres applications utilisées sans problème lorsque la fenêtre de l’app est réduite ?
  • L’app se réduit-elle de manière automatique à la réception d’un appel téléphonique ?
  • Les sms et autres notifications peuvent-ils arriver et être sauvegardés pendant l’utilisation de l’app ?

Test d’usabilité

Avec les tests d’usabilité, on vise à s’assurer que l’utilisation d’une application est intuitive. Un test automatique n’est ici pas adéquat. Seuls les utilisateurs peuvent en effet estimer si une app s’utilise simplement ou non. L’utilisation d’un simulateur ou émulateur est de même peu approprié pour la plupart des applications. L’évaluation d’une app n’a de sens que sur un appareil mobile : cela permet de visualiser votre application lorsque vous balayez ou défilez l’écran, ou encore lorsque vous cliquez sur un bouton. Vous pouvez également évaluer le temps de réactions de votre application suite à de telles commandes d’actions. Par ailleurs, les éléments ci-dessous peuvent être vérifiés pour vous assurer d’une bonne usabilité :

  • L’utilisation de l’application coule-t-elle de source dans son ensemble? Des explications sont-elles disponibles pour les utilisations plus compliquées ?
  • Les contenus sont-ils placés de sorte que les utilisateurs puissent se diriger facilement vers les fonctions les plus importantes ?
  • Les boutons sont-ils suffisamment gros ? Gardez à l’esprit que certains utilisateurs ont des gros doigts !
  • Les contenus rédactionnels sont-ils lisibles, la taille du texte est-elle ni trop grosse ni trop petite ?

Les tests d’usabilité doivent résoudre les problèmes liés à l’utilisation de l’app et permettre de combler les éventuels manquements dans sa présentation. Afin de pouvoir se fier aux résultats, il est judicieux de faire tester son application à un nombre suffisamment important de participants. Il va sans dire que les utilisateurs de votre panel doivent idéalement (en tout cas dans leur grande majorité) faire partie de votre cible. Ainsi, vous pourrez optimiser la présentation de votre application directement selon ses besoins. Pas à pas, vos ajustements vous permettront d’offrir au final la meilleure des expériences utilisateurs.

Test de compatibilité

La compatibilité d’une application doit être vérifiée sur deux plans : le matériel informatique (hardware) et le software des appareils mobiles. En ce qui concerne le hardware, il est nécessaire de regarder par exemple comment l’application s’affiche sur différents supports. Etant donné qu’il existe différentes résolutions et tailles d’écran, de nombreux problèmes d’adaptation et d’affichage peuvent survenir rapidement, et ce d’autant plus si des présentations adaptées aux différents formats n’ont pas été mis en place. Outre les formats d’affichage, les processeurs UCT et la mémoire vive varient considérablement d’un appareil à un autre. Gardez une nouvelle fois à l’esprit que de nombreux utilisateurs utilisent encore des modèles anciens. Si votre application n’est pas uniquement adaptée aux modèles actuels mais s’adapte aussi aux smartphones et tablettes plus anciens, alors la portée de votre application va considérablement augmenter.

Côté software, il est important de vérifier que l’application s’affichera sans problème sur les différents systèmes d’exploitation. Cela s’applique particulièrement à Android qui dispose de nombreux systèmes d’exploitation qui sont toujours utilisés. Apple dispose en revanche avec iOS de moins de versions.

Les tests de compatibilité permettent de voir immédiatement quels softwares et hardwares présentent des problèmes pour votre application. Si les exigences de l’appareil sont très hautes, il peut être conseillé de réfléchir à un moyen de revoir à la baisse certaines exigences du système afin de ne pas perdre une partie de votre audience potentielle.

Test de performance

Avec les tests de performance, on peut vérifier quelles sont les ressources nécessaires à l’application si cette dernière est utilisée de manière intensive. Est-ce que l’application se met à ralentir ou reste-elle fluide ? Cela permet d’observer dans un même temps si l’utilisation de l’application affecte fortement la batterie et si l’appareil surchauffe après un temps d’utilisation donné. Comme avec les tests de compatibilité, la résistance de l’application sous différents scénarios est également évaluée. Par exemple, on va observer si l’affichage de l’interface se modifie lorsque peu de mémoire reste disponible sur le disque dur de l’appareil ou lorsque la batterie est presque vide. Les tests de performance doivent évaluer à quel point certains schémas peuvent affecter le bon fonctionnement de l’application.

On pourra retenir deux principaux types de tests de performance : le test de charge d’une part, qui vise à mesurer les capacités de réponse de l’application dans le cas où elle serait utilisée par un grand nombre d’utilisateurs, et le test de stress d’autre part où il est vérifié plus largement les réactions de l’application lorsqu’elle est soumise à une forte activité. On peut tester par exemple une application lorsque le serveur est fortement sollicité. Pour les applications où une connexion Internet est nécessaire, il est recommandé d’observer le comportement de l’application sous forte charge et sous une mauvaise connexion réseau. Les tests de stress doivent d’une manière générale définir la charge maximum que l’application peut supporter avant que ses fonctionnalités ne décroissent.

Les outils de test pour application mobile

Les tests cités ci-dessus ne doivent pas nécessairement être tous menés manuellement. Des outils de tests divers peuvent faciliter considérablement le travail. Dans notre suite d’articles se concentrant sur le déploiement d’applications mobiles natives pour iOS et Android, nous vous présentons des outils de tests adaptés à ces plateformes.

Appium

Appium est un programme multiplateforme open-source pour automatiser vos tests. Son téléchargement est gratuit. Avec cet outil, vous pouvez non seulement tester les apps Android et iOS mais aussi les applications hybrides et les applications Web.

Avec Appium, les interfaces de programmation sont identiques pour iOS et Android. Il est donc très simple de réutiliser les codes écrits. Les tests créés peuvent être menés sur les appareils physiques, émulateurs ou simulateurs. Appium facilite considérablement l’automatisation des tests ; toutefois, le programme exige d’avoir au préalable quelques connaissances techniques. 

TestFairy

Sur le site de TestFairy, vous pouvez télécharger votre application et inviter des personnes à effectuer un test. Ces dernières peuvent alors télécharger et utiliser l’application comme le feront vos futurs utilisateurs. En bref, TestFairy vous permet d’organiser votre propre crowdtesting. L’outil dispose notamment d’une fonction de reporting pour analyser les erreurs qui apparaissent et peut enregistrer des vidéos de l’utilisation de l’application pendant le test. TestFairy se décline en une version gratuite ou une version professionnelle payante.

Ubertesters

Ubertesters est une plateforme qui a pour but de vous aider dans vos tests bêta. L’avantage de cet outil est d’avoir un contrôle total sur les tests et pourrez ainsi recevoir des rapports détaillés. La plateforme permet de travailler facilement en équipe, de repérer les erreurs aisément grâce à différents outils, d’effectuer plusieurs versions de test et les vérifier mais aussi de mener des crowdtests (par exemple pour des tests d’usabilité ou des tests fonctionnels). Ubertesters est proposé sous plusieurs packs avec un large choix de fonctions (la version gratuite présentant évidemment le moins de fonctions).

Résoudre les erreurs détectées

Quand un émulateur met en lumière une erreur, il est nécessaire avant d’entreprendre toute démarche de revérifier avec l’appareil physique correspondant si l’erreur est bel et bien avérée. L’ensemble des problèmes révélés par les émulateurs ne se confirme pas toujours lorsque l’application est réellement utilisée. Si les incohérences apparaissent néanmoins de nouveau avec votre appareil, il devient nécessaire d’agir. Mais comment savoir ce qui a généré exactement l’erreur ? Les tests ne fournissent généralement pas de diagnostiques précis. Quelques outils de tests vont pouvoir vous aider mais souvent, il est nécessaire que vous fassiez vous-même votre analyse. En principe, les problèmes proviennent soit d’une erreur dans la programmation, soit de l’appareil qui n’est pas à 100 % compatible avec l’application.

Lorsque vous avez enfin trouvé la cause de l’erreur, il vous appartient de déterminer si résoudre cette erreur est essentiel pour votre application et surtout si vous pouvez le faire sans nuire aux autres fonctionnalités. Les erreurs affectant le fonctionnement général de l’application doivent bien sûr être résolues de toute urgence. Ses caractéristiques fondamentales (comme la navigation ou les contenus) doivent impérativement être opérationnelles.

Il est plus difficile de décider si l’on souhaite résoudre une erreur lorsque cette dernière n’est pas due à un manquement dans le programme mais plutôt à un software ou matériel informatique précis. Cela concerne la plupart du temps des systèmes d’exploitation obsolètes qui vont alors ralentir ou même enrayer l’exécution d’une ou de plusieurs fonctions de l’application. Dans de tels cas, il faut analyser de manière précise les résultats de votre test : quels hardwares ou softwares peuvent être responsables de ces dysfonctionnements et entraver le bon fonctionnement de l’application ? La méthode essai-erreur peut être ici d’un bon secours. 

Quelles exigences?

Votre application sera bien sûr davantage utilisée si elle est compatible sur des portables qui ont également fait leur temps. Adapter son application au plus grand nombre d’appareils présente toutefois des limites. Les applications performantes, dont les fonctions nécessitent éventuellement un processeur puissant et/ou une grande mémoire vive, ne peuvent pas toujours être traitées de manière optimale avec un matériel informatique daté. Un autre exemple : si une application nécessite une bonne connexion Internet, nul besoin d’effectuer à tout prix une adaptation pour les appareils qui n’ont qu’un faible accès à Internet.

Par ailleurs, de simples prérequis techniques sont parfois nécessaires à certaines applications. Certaines ne fonctionnent par exemple qu’avec une taille d’écran spécifique. D’autres, comme l’application YouTube, nécessitent une bande passante suffisamment rapide pour être opérationnelles. Malgré cette exigence, YouTube est devenue l’application la plus téléchargée. Il est donc judicieux de procéder à des adaptations seulement si les fonctionnalités de l’application ne réduisent pas déjà en elles-mêmes ses conditions d’utilisation.

Bilan : des tests incontournables pour la qualité de votre application

Bien tester son application est la dernière étape clé avant de déployer son app. Si cela exige beaucoup de travail, les résultats escomptés en valent la chandelle : en effet, ces tests contribuent à ce qu’un maximum d’utilisateurs puisse utiliser le plus simplement possible votre application. Pour de meilleurs résultats, n’hésitez pas à utiliser différentes méthodes et ne vous contentez pas uniquement des simulateurs / émulateurs.

Si vous avez testé consciencieusement votre application et n’avez plus repéré d’incohérences ou d’erreurs majeures, alors le tour est joué : vous avez réussi à mettre en place votre idée d’application et elle peut maintenant être publiée sur l’App store. Toutefois, le travail n’est pas terminé.

D’une part, il est important de ré-effectuer des tests à intervalles réguliers. Des contrôles réguliers garantissent en effet qu’une application fonctionne sur le long terme et que les utilisateurs peuvent bel et bien l’utiliser. Les tests de compatibilité et tests de performance en particulier doivent être régulièrement menés.

D’autre part, le déploiement de l’application sur les App stores d’Apple et de Google demande également du travail. La première étape est de s’enregistrer sur les boutiques où vous souhaitez proposer votre application. Nous consacrerons donc notre cinquième partie à la publication d’une application sur l’App store d’Apple puis à l’enregistrement dans l’app store de Google. Nos articles vous détailleront tout ce que vous devez savoir pour votre installation sur Google ou Apple.