Tests d'interface utilisateur : méthodologies, outils et conseils
Téléphones, tablettes, ordinateurs portables, ordinateurs de bureau, panneaux IoT, consoles de jeux, téléviseurs, systèmes d'infodivertissement, appareils électroménagers, imprimantes, VR, AR et presque tous les appareils modernes utilisant des entrées/sorties doivent être testés fonctionnellement avant d'être mis sur le marché et d'atteindre l'utilisateur final. Outre le logiciel, nous devons également tester l'interface utilisateur.
À quoi se réfère le test d'interface utilisateur ?
Tests d'interface utilisateur peut désigner à la fois Tests d'interface graphique (GUI) et Tests d'interface en ligne de commande (CLI Testing). Tests d'interface graphique est effectué lorsque vous avez des éléments graphiques affichés à l'écran. C'est également connu sous le nom de test front-end d'application. Tests d'interface CLI est effectué lorsque vous n'avez que des caractères et la ligne de commande affichés à l'écran plutôt que des éléments graphiques.
Dans une perspective plus large, nous pouvons également mentionner HMI (interface homme-machine), qui désigne les écrans tactiles, claviers, souris, joysticks, manettes de jeu, capteurs utilisés pour la saisie de gestes ou de mouvements, ou les capteurs de montre connectée pour détecter l'état de santé de l'utilisateur, compter les pas, etc., ainsi que des dispositifs plus primitifs comme les interrupteurs pour les machines ou les appareils.
Certains appareils modernes de VR (réalité virtuelle) ou d'AR (réalité augmentée) utilisent principalement CUI (Composite User Interface), qui sollicite deux sens ou plus.
Nous pouvons définir que les tests d'interface utilisateur, de manière générale, peuvent être effectués sur tout appareil capable de gérer une saisie utilisateur, même une simple calculatrice de poche. En d'autres termes, nous pouvons dire que toute saisie qu'un utilisateur fournit à un appareil pour obtenir un résultat peut être considérée comme une interface utilisateur. Dans cet article, nous nous concentrerons sur les tests d'interface utilisateur d'applications, qui sont notre spécialité chez Spyrosoft.
Quels éléments d'interface utilisateur pouvons-nous tester ?
Boutons radio sont des éléments ronds avec un point au centre, utilisés pour activer ou désactiver certaines options ou fonctionnalités de l'application. Les boutons radio sont également utilisés lorsqu'il existe plusieurs choix qui ne doivent pas être sélectionnés en même temps.
Buttons sont les éléments cliquables (s'ils ne sont pas désactivés), par exemple, les boutons « OK » ou « Annuler ». Il peut y avoir de nombreux boutons aux fonctions distinctes selon l'application ou le système d'exploitation.
Cases à cocher sont les éléments rectangulaires que vous pouvez cocher. Ils permettent de sélectionner plusieurs options.
Champs de texte sont des cadres rectangulaires dans lesquels vous pouvez saisir des données. Si vous devez masquer votre mot de passe, vous pouvez les ajuster dans ce sens. Des éléments similaires sont les zones de texte.
Menus déroulants nous permettent de choisir parmi diverses options.
Liens sont les textes bleus soulignés contenant les données « URL ». Ce sont les éléments d'interface utilisateur les plus courants que vous connaissez certainement.
Les autres éléments d'interface utilisateur incluent les images, les menus, les curseurs, les calendriers/sélecteurs de date, etc.
Dans le cadre des tests d'interface utilisateur, ces éléments (et bien d'autres) doivent être testés pour s'assurer qu'ils fonctionnent comme le document de spécification logicielle les a définis au départ.
Dans les tests d'automatisation, les propriétés et leurs valeurs sont utilisées pour sélectionner un élément, où vous pouvez avoir toutes sortes de commandes simulant le comportement de l'utilisateur. Dans les tests manuels, celles-ci n'ont pas grande pertinence. Avec les tests de charge, l'automatisation devient plus pertinente.
Les tests de charge consistent à simuler plusieurs utilisateurs accédant simultanément à votre application. Il serait difficile de les réaliser manuellement, car il faudrait mobiliser des utilisateurs hors ligne. Avec l'automatisation, vous rédigez un script pour les tests fonctionnels d'interface utilisateur, puis vous ajoutez plusieurs utilisateurs virtuels. Le script est ensuite multiplié par le nombre d'utilisateurs virtuels que vous avez définis dans votre outil de test.
Certaines des commandes d'outils d'automatisation les plus utilisées sont : Click, Wait, Check et Type, mais elles peuvent varier d'un outil à l'autre.
Les tests d'interface utilisateur consistent à vérifier les fonctionnalités principales, le placement des éléments d'interface, les tailles, les couleurs, l'orthographe et l'ergonomie de l'interface utilisateur.
Si nous voulons considérer l'expérience globale d'un utilisateur avec une application, nous pourrions parler d'UX (expérience utilisateur). Une bonne UX fidélise l'utilisateur. Une mauvaise UX repousse l'utilisateur d'une certaine manière et, dans le pire des cas, votre application peut produire des résultats indésirables. Une mauvaise UX peut même entraîner la perte d'un client ou l'obtention de mauvaises évaluations pour votre produit.
Sur quels appareils devons-nous tester l'interface utilisateur ?
Par le passé, la plupart des applications étaient conçues pour les ordinateurs de bureau. Aujourd'hui, l'éventail des appareils que nous utilisons quotidiennement comprend les ordinateurs portables, les téléphones mobiles, les tablettes, etc., et les applications sont basées sur les navigateurs web et l'infrastructure cloud. Cependant, l'idée de base des interfaces utilisateur est restée la même : fournir une entrée à l'appareil afin d'obtenir une sortie.
Les téléphones mobiles et tablettes modernes utilisent des écrans tactiles avec des claviers virtuels, et il n'est pas nécessaire d'avoir un clavier physique ou une souris. Certains ordinateurs portables utilisent également des écrans tactiles. Il existe aussi des montres connectées, de grands panneaux pour commander des repas et une multitude d'autres appareils dotés de la fonction E/S (Entrée/Sortie).
Du point de vue logiciel, différents systèmes d'exploitation sont actuellement disponibles. Les plus courants sont Windows, Linux, iOS et Android, mais il en existe également certains adaptés à des secteurs spécifiques.
Les technologies de base utilisées pour produire le logiciel sont .NET, Java, JavaScript, PHP, Python, C, C++, C#, etc. Les technologies de développement web sont Angular, React JS, Node JS, Vue JS, JavaScript, Ember JS, Kotlin, Groovy, Laravel, etc. Les technologies de développement mobile incluent Android, iOS, React Native, QT, Kotlin, Xamarin, Flutter, PhoneGap, Cordova, etc. Les technologies de développement de bases de données sont PLSQL, MySQL, MSSQL, MongoDB, PostgreSQL, Redis, etc. Les fournisseurs de technologies de cloud computing sont AWS, Azure, GoogleCloud, etc.
Il existe de nombreuses combinaisons de ces technologies et d'autres, tant logicielles que matérielles. Avant de tester un logiciel spécifique, tous ces facteurs doivent être pris en compte et, sur cette base, un plan de test doit être élaboré.
Quels sont les types de tests d'interface utilisateur ?
Les tests d'interface utilisateur peuvent être Manuel, Automatisé, ou une combinaison des deux. Lors du choix d'une méthode de test, vous devez prendre en compte :
- la robustesse et la complexité du logiciel,
- l'impact des nouvelles fonctionnalités,
- combien de testeurs QA sont disponibles,
- les priorités et les niveaux de risque,
- combien d'environnements doivent être testés,
- quels appareils/plateformes/navigateurs seront utilisés,
- quels outils peuvent être utilisés, etc.
Pour les tests manuels et automatisés, vous aurez besoin de Cas de test. Tout d'abord, vous devez décider comment les rédiger (Step-by-Step, BDD Gherkin, etc.) et où elles seront stockées. Vous pouvez utiliser Excel ou des outils plus spécialisés, comme Zephyr Scale au sein de Jira, Microfocus ALM Suite ou tout autre.
Vous pouvez cliquer manuellement sur l'interface utilisateur ou envisager l'automatisation, selon l'outil utilisé. Les tests automatisés peuvent être effectués comme les tests manuels, mais avec une option d'enregistrement permettant de rejouer les actions enregistrées à la fin. Les tests peuvent également être automatisés sans option d'enregistrement, grâce aux scripts. Les langages de script utilisés dans ce cas sont JavaScript, TypeScript, VBScript, etc. Les langages de programmation principalement utilisés à cette fin sont Python, Java, C# et Ruby.
Quelles sont les méthodologies de test d'interface utilisateur ?
Les méthodologies de test d'interface utilisateur les plus courantes sont les tests de fumée, les tests de régression, les tests fonctionnels et les tests d'acceptation. Pour optimiser le temps et les ressources, essayez de combiner Tests R/F (Tests de régression/fonctionnels) pour un résultat plus détaillé. Si vous avez simplement besoin d'un aperçu rapide du comportement de l'application avant les tests R/F, vous pouvez exécuter des tests de fumée.
Les tests doivent couvrir les fonctionnalités décrites dans le document de spécification logicielle. Cela signifie que vous devez vérifier les éléments d'interface utilisateur, l'orthographe, les champs de saisie, les formats, les couleurs, la cohérence, etc. Il serait également préférable que vous créiez des cas de test positifs et négatifs.
Si votre application utilise un écran de connexion, les utilisateurs doivent être créés avant les tests. Cette tâche est effectuée par les administrateurs système ou par les testeurs QA s'ils reçoivent les identifiants de la base de données.
Lorsque nous parlons d'Interface, nous ne pouvons pas oublier de mentionner une interface machine-à-machine appelée API (Application Programming Interface). Cette Interface est composée de requêtes et de réponses. Les tests d'API constituent un sujet entièrement différent, sur lequel je ne me concentrerai pas dans cet article.
Lors des tests d'interface utilisateur, nous devons nous mettre à la place de l'utilisateur final, tout comme nous le faisons lors du développement de l'interface. Les besoins des utilisateurs doivent être bien compris afin d'y répondre. Vous devez également prendre en considération l'élément psychologique, car l'interface utilisateur doit être intuitive. Si elle ne l'est pas, elle doit être corrigée, car une mauvaise interface utilisateur signifie un temps de formation plus long pour l'utilisateur, un coût plus élevé, une efficacité moindre et plus de frustration. Imaginez simplement une guitare ou un piano avec des touches aléatoires. De nombreux musiciens s'y adapteraient, mais l'apprentissage serait bien plus compliqué.
Test des écrans de connexion
La page de connexion est globalement identique sur toutes les applications. C'est pourquoi nous l'utiliserons comme exemple pour expliquer à quoi doit ressembler les tests d'interface utilisateur.
Dans le Tests d'interface utilisateur domaine, vous devez vérifier que :
- Les titres, libellés, boutons, zones de texte et liens sont présentés comme spécifié dans le document de spécification logicielle.
- Le type et la taille de la police, la taille de l'étiquette et le texte sont alignés et ne se chevauchent pas.
- La taille de l'écran, la taille des éléments et les couleurs sont tels qu'ils ont été conçus.
- Il n'y a pas de comportements indésirables ni d'artefacts pour différentes résolutions d'écran, appareils ou navigateurs
Ce type de tests doit être effectué manuellement.
Depuis le Tests fonctionnels perspective, il reste encore beaucoup à faire :
- lorsque la page de connexion s'ouvre, le curseur doit être positionné sur le champ de saisie du nom d'utilisateur,
- Le bouton TAB doit permettre de naviguer entre les éléments,
- le champ de saisie du mot de passe doit masquer les caractères saisis,
- les champs de mot de passe ne doivent pas permettre le copier/coller du mot de passe
- vérifiez le scénario positif – un utilisateur doit se connecter avec des identifiants valides, essayer la touche « entrée » pour confirmer
- vérifier le scénario négatif – l'utilisateur ne doit pas se connecter avec des identifiants partiels/invalides
- un message de validation doit apparaître lorsqu'un des champs de saisie est laissé vide ou que la limite de caractères est dépassée
- vérifiez dans le document de spécification logicielle si l'écran de connexion doit comporter l'option/case à cocher « Se souvenir de moi »
- la fermeture du navigateur ne doit pas déconnecter un utilisateur authentifié
- vérifier la fonctionnalité « Mot de passe oublié »
- vérifier la connexion avec des identifiants valides après le changement de mot de passe
- vérifier si le même utilisateur peut se connecter sur différents appareils/plateformes en même temps.
Lors du test d'une page de connexion, de nombreux autres types de tests doivent également être réalisés. Certains d'entre eux sont Tests de sécurité, Tests d'intrusion, Tests de performance, Tests de compatibilité, Tests d'acceptation utilisateur (UAT), etc.
Si votre page de connexion utilise un fournisseur d'authentification externe, tel que Google, Azure AD ou autres, ne testez pas ces applications tierces. Elles ne relèvent pas de votre domaine, sauf indication explicite contraire. Certains outils pourraient avoir des difficultés à gérer les actions des éléments de connexion externe.
En conclusion
Que nous ayons une application ou un autre logiciel, l'interface utilisateur doit toujours être testée en profondeur. Une interface utilisateur défectueuse peut mettre en danger l'opérateur d'un appareil et votre entreprise.
Certains se demandent si les tests d'interface utilisateur peuvent être entièrement automatisés.
Je vous laisse le soin de répondre.
Améliorez l'interface utilisateur de votre produit pour une meilleure expérience utilisateur.
arrow_circle_right Nos articles