Skip to main content

La durée moyenne d’attention d’un être humain est de moins de 9 secondes ! Vous êtes-vous déjà demandé pourquoi ? La plupart des applications mobiles apparues récemment vous obligent à faire défiler un fil d’actualité, ce qui habitue le cerveau à ne pas regarder quelque chose pendant plus de quelques secondes. Cela a entraîné une réduction significative de la durée d’attention d’un utilisateur moyen.

Avec la multitude d’applications mobiles disponibles dans le magasin d’applications vient la grande responsabilité de tester les applications mobiles et de faire évoluer les efforts de tests de régression. C’est là que les outils de test mobile s’avèrent utiles. 

J’ai été l’un des premiers utilisateurs des cadres de test mobile et, d’après mon expérience, l’accent mis sur l’automatisation, les formats d’appareils et les tests de performance a joué un rôle tout aussi important pour évoluer et accroître l’impact dans l’univers mobile. Dans cet article, je vais partager les techniques les plus efficaces pour automatiser les tests de vos applications mobiles.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Tests des applications mobiles : composants à prendre en compte

Les tests sur une plateforme donnée comportent leurs propres difficultés, mais avec les appareils mobiles, vous devez prendre en compte ces paramètres supplémentaires. Que vous effectuiez des tests manuels ou de l’automatisation des tests, en plus des tests fonctionnels, vos cas de test doivent se concentrer sur les éléments suivants :

Connectivité

Il est important de déterminer ce qui se passe lorsqu’un utilisateur utilise son appareil mobile en mode avion ou hors ligne, ce qui se passe lorsque la bande passante fluctue, etc., afin de garantir le bon fonctionnement de l’application. 

Améliorez votre boîte de réception avec plus de conseils en leadership technologique pour livrer de meilleurs logiciels et systèmes.

Localisation 

En particulier pour les applications mobiles qui dépendent du GPS ou de services fondés sur la localisation, les tests doivent être effectués en simulant la localisation à l’aide d’outils tels que MobileSpy, Location Spoofer, etc. Sinon, il serait difficile de tester — par exemple : si vous souhaitez simuler un scénario de test pour une application mobile de covoiturage, dans laquelle une personne demande un trajet depuis NYC et où des modifications ont été apportées aux services dorsaux qui servent spécifiquement à trouver le conducteur dans cette zone. Sans simulation, les tests ne vous fourniraient pas de résultats précis. 

Système d’exploitation

Compte tenu du nombre de téléphones Android disponibles aujourd’hui sur le marché, tester toutes les versions de systèmes d’exploitation disponibles est presque impossible : comment établir vos priorités ? Avec iOS, vous devez également relever les difficultés liées aux versions de Xcode associées aux changements de version du système d’exploitation. 

De nos jours, les entreprises se tournent vers des fournisseurs tiers comme BrowserStack pour proposer des simulateurs/émulateurs pour différents systèmes d’exploitation, effectuer des tests sur les appareils et réaliser des tests inter-navigateurs. 

Les icônes d’interface utilisateur diffèrent selon les plateformes de systèmes d’exploitation : Windows, iOS et Android ; pour l’automatisation des tests, la plupart d’entre nous finissent par utiliser des simulateurs — ceux d’Android sont beaucoup plus longs à charger, tandis que les appareils iOS sont plus rapides.

Les différentes combinaisons de touches mobiles à utiliser selon les différents types de systèmes d’exploitation pour effectuer des captures d’écran destinées au débogage des problèmes constituent une information essentielle pour toute personne qui teste des applications mobiles. 

Format

Lors du développement d’applications mobiles, 5 formats principaux doivent être pris en compte pour les différentes versions de systèmes d’exploitation, en plus du mode portrait ou paysage sur chacun de ces types d’appareils : 

AppareilTaille de l’écran
Petits appareils mobiles3,5 pouces ou moins
Appareils mobiles moyens3,5 à 5 pouces
Tablettes5 à 7 pouces
Petites tablettes7 à 8,5 pouces
Tablettes grand format8,5 pouces ou plus

Comment choisir le cadre adapté à l’automatisation mobile

La prise en compte des formats lors de la création d’applications mobiles consiste à garantir leur réactivité lorsque la même application est ouverte sur différents appareils mobiles et différents types de systèmes d’exploitation. Lorsque l’utilisation de l’application s’étend à travers le monde et que les entreprises souhaitent accroître leur base d’utilisateurs, elles devront prendre cette décision dès le début du processus de développement : choisir les cadres React Native plutôt que le développement natif pour Android ou iOS.

Dans le cas contraire, les entreprises finiront par consacrer du temps et des efforts à la refactorisation et à la refonte des applications pour passer aux cadres React Native. Cela a un impact direct sur le nombre d’équipes et la charge de maintenance, car les cadres React Native prennent en charge le développement d’applications iOS et Android. 

Lorsque les applications mobiles sont développées à l’aide de cadres React Native, cela réduit également la charge liée à l’automatisation des tests, car il suffit de maintenir un seul cadre d’automatisation des tests pour iOS et Android. 

Il existe différentes façons de développer des applications mobiles. Certaines entreprises optent pour l’utilisation de langages de programmation natifs tels que Java et Objective C, respectivement pour les applications Android et iOS. L’avantage d’utiliser des langages natifs est qu’ils permettent d’offrir des fonctionnalités riches à leurs applications.

En revanche, les identifiants des éléments seront différents sur les deux plateformes, ce qui signifie que nous devrons disposer de cadres de test natifs distincts pour tester la même chose, comme Espresso sur Android, XCUITest sur iOS, etc. 

React Native est un autre langage de programmation couramment utilisé pour développer des applications mobiles réactives, qui a été rendu à code source ouvert par Facebook. L’objectif était d’unifier les efforts de développement mobile sur les deux plateformes afin de pouvoir disposer d’une seule équipe et que les identifiants des éléments des deux applications soient identiques, ce qui ne nécessite qu’un seul cadre de test comme Appium pour tester les applications mobiles. 

Lorsqu’il s’agit d’automatiser les tests de votre application mobile, choisir les bons outils d’automatisation de l’assurance qualité peut faire une grande différence dans l’efficacité de vos tests.

Comment automatiser les tests d’applications mobiles iOS 

Lors des tests manuels, un certain nombre de critères doivent être respectés : la plupart des entreprises qui développent des applications iOS indiquent clairement les systèmes d’exploitation et les versions du SDK pris en charge. Cela permet de limiter vos efforts de test. 

Afin d’étendre les efforts de test logiciel, nous devons investir dans l’automatisation. De nombreux cadres populaires prennent en charge les tests automatisés d’applications mobiles iOS. Parmi eux, limitons le périmètre de notre discussion aux 2 outils d’automatisation suivants :

  • XCUITest
  • Appium
XCUITestAppium
Cadre pour applications natives pouvant être intégré à la base de code source iOS. Cadre de test isolé, conçu en dehors de la base de code source. 
Écrit en Objective C ou SwiftÉcrit en Java, Python, etc.
Attentes explicites qui appliquent une condition. Attentes implicites qui impliquent l’utilisation de sleep(), ce qui rend les tests instables. 
Simulation des réponses de l’API du serveur principal à l’aide de bibliothèques à code source ouvert comme MockingjayPrend en charge l’utilisation d’un serveur simulé. 
Comme il s’agit d’un cadre pour applications natives, il peut uniquement être utilisé pour tester des applications iOS. Comme les tests résident en dehors de la base de code source et peuvent être écrits dans des langages comme Java, Python, etc., il peut être utilisé pour tester des applications multiplateformes comme les applications Windows, iOS et Android, à condition que les identifiants des éléments soient identiques sur les deux plateformes. 

J’ai utilisé des serveurs simulés pour simuler les appels du serveur principal et tester exclusivement l’interface utilisateur, comme suit, en créant une classe de base : 

capture d’écran du test de la classe de base

Maintenant que la classe de base est prête, j’ajoute le test réel en utilisant le modèle de conception objet page, comme suit : 

capture d’écran du test de base des soins à domicile

Comment automatiser les tests d’applications mobiles Android

Il existe plus de 2 milliards d’appareils Android actifs dans le monde. Tester votre application Android sur différents types d’appareils et de systèmes d’exploitation est pratiquement impossible ! Les entreprises indiquent donc explicitement les versions qu’elles prennent en charge. Cela garantit également une meilleure expérience utilisateur.

Les cadres d’automatisation Android contribueront certainement à accélérer les processus de test, avec des outils comme Robotium, Selendroid, etc. Pour le périmètre de notre discussion, limitons-nous aux outils d’automatisation suivants : Espresso et Appium :

EspressoAppium
Framework natif pouvant résider dans la base de code source Android. Framework de test isolé, développé en dehors de la base de code source. 
Écrit en Java et KotlinÉcrit en Java, Python, etc.
Attentes explicites, opérations asynchrones prises en charge par la fonctionnalité de ressources d’inactivitéAttentes implicites impliquant l’utilisation de sleep(), ce qui rend les tests instables. 
Simulation des réponses du backend à l’aide de bibliothèques open source comme Mockito et du générateur RetrofitPrend en charge l’utilisation d’un serveur simulé.
Comme il s’agit d’un framework natif, il peut uniquement être utilisé pour tester des applications Android. Comme les tests résident en dehors de la base de code source et peuvent être écrits dans des langages comme Java, Python, etc., ils peuvent être utilisés pour tester des applications multiplateformes sur iOS et Android, à condition que les identifiants des éléments soient identiques sur les deux plateformes. 

L’un des avantages de l’utilisation de frameworks d’applications natifs est de pouvoir utiliser des serveurs simulés pour simuler les appels d’API du backend et ainsi tester exclusivement l’interface utilisateur. Voici un exemple de code montrant comment j’ai réussi à le faire fonctionner :

capture d’écran du code du serveur simulé

Selon la manière dont votre architecture de microservices est développée, vous récupérez la réponse dans l’onglet réseau de votre navigateur ou directement auprès des développeurs, puis vous la référencez comme suit dans votre test :

capture d’écran du test de la page d’accueil

Comme vous pouvez le voir dans l’exemple ci-dessus, HomeTabPage est appelée dans le test, au lieu de devoir vérifier explicitement chaque élément — j’ai utilisé le modèle d’objet page dans le framework comme suit :

capture d’écran du test de la page d’accueil

Outils de test des applications mobiles

Il existe différents outils de test sur le marché, et le choix dépend de plusieurs facteurs : 

  • Compétences de l’équipe
  • Objectif de l’automatisation
  • Public cible de l’automatisation : chefs de produit/commerciaux/ingénieurs/testeurs
  • Compatibilité du framework de test avec le code source natif
  • Nombre d’applications hybrides

Parmi les différents outils couramment utilisés dans le secteur figurent :

  • Selendroid
  • Robotium
  • Appium
  • Testdroid
  • UiAutomator

et bien d’autres. 

Vous n’avez pas envie d’effectuer vos propres tests en interne ? Vous pouvez également faire appel à des services de test d’applications mobiles pour le faire à votre place.

Tests de performance des applications mobiles

Lors des tests d’applications mobiles, en plus de nous concentrer sur l’automatisation afin d’étendre nos efforts de test, nous devons également donner la priorité aux tests de performance, car ils jouent un rôle essentiel pour déterminer si un utilisateur continuera à utiliser notre application.

Si l’écran met plus de 2 secondes à se charger, les utilisateurs s’impatientent — cela rejoint nos recherches sur la durée d’attention — et, pour les fidéliser, nous devons investir dans les tests de performance. 

Lors du test des performances d’une application, nous devons identifier les KPI et les comparer à des valeurs de référence : 

  • Temps de réponse maximal
  • Temps de réponse moyen
  • Débit moyen
  • Nombre maximal d’utilisateurs actifs pour chaque système d’exploitation et chaque appareil

L’utilisation d’un outil de test d’applications mobiles peut simplifier les tests de performance. Par exemple, Apptim peut suivre les métriques de performance côté utilisateur final : il fournit des rapports de performance complets pour tous les paramètres de performance clés.

Pour surveiller les performances de l’application mobile, nous pouvons utiliser la surveillance des performances de Firebase, qui permet de contrôler les données de performance en fournissant des informations sur le fonctionnement de votre application, avec une répartition des données de suivi et de réseau selon des dimensions telles que la version de l’application, le pays, l’appareil et le type de réseau. 

Il existe d’autres outils tels qu’Appium Studio, Sauce Labs, Testdroid, etc., qui offrent des fonctionnalités similaires de surveillance des performances. 

Nous espérons que cet article vous a donné un aperçu des tests d’applications mobiles et des facteurs essentiels qui y sont associés !

Pour découvrir davantage de bonnes pratiques et de conseils afin de façonner votre processus de développement, abonnez-vous à la newsletter de The QA Lead.

Lecture connexe :

À découvrir également :

Liste connexe d’outils :

Niranjani Manoharan

Un leader accompli en ingénierie logicielle spécialisé dans la création d'outils, d'infrastructures de tests et l'amélioration de la qualité et de la productivité des développeurs pour des pionniers de l'industrie tels que Lyft, Pinterest, eBay, Twitter, et désormais chez Hippo Insurance.