Premiers pas avec les tests de régression visuelle à l'aide d'Appium

Publié: 2023-09-17

Premiers pas avec les tests de régression visuelle à l'aide d'Appium

Les logiciels d'aujourd'hui exigent une expérience utilisateur transparente sur plusieurs plates-formes et appareils. L'un des aspects les plus difficiles dans ce domaine est de maintenir l'intégrité visuelle de votre application. C'est là que les tests de régression visuelle (VRT) entrent en jeu, offrant un moyen simplifié de détecter les bugs visuels et les incohérences qui autrement pourraient passer inaperçus. Pour ceux qui souhaitent débuter avec VRT, Appium propose un cadre robuste et évolutif pour automatiser ce type de tests sur un large éventail de plates-formes.

De plus, des services tels queLambdaTest offrent une solution d'orchestration et d'exécution de tests basée sur l'IA pour les tests de régression visuelle, éliminant ainsi le besoin pour les équipes de configurer et de gérer leur propre infrastructure de test.Cette approche cloud fournit un accès à la demande à divers navigateurs et appareils réels, permettant des tests simultanés sur plusieurs environnements, réduisant le temps d'exécution des tests et garantissant la cohérence de l'apparence et des fonctionnalités des applications Web. LambdaTest propose également des rapports de test détaillés et une intégration avec des frameworks de test populaires pour une identification et une résolution rapides des problèmes.

Dans cet article, nous explorerons les bases pour démarrer avec VRT à l'aide d'Appium afin que vous puissiez élever votre stratégie de test au niveau supérieur.

Qu'est-ce que les tests de régression visuelle ?

Les tests de régression visuelle sont une technique de validation utilisée pour garantir que les modifications apportées à une application n'ont pas d'effets négatifs sur la présentation visuelle de l'interface utilisateur (UI) de l'application. Son objectif premier est de confirmer que la mise en page et les éléments visuels sont conformes aux attentes prédéfinies, garantissant ainsi une expérience utilisateur visuelle sans faille. Ces contrôles visuels englobent divers attributs, tels que la position, la luminance, le contraste et la couleur des boutons, des menus, des composants, du texte, etc. Cette méthode est également parfois appelée test visuel ou test d'interface utilisateur.

Comment fonctionnent les tests de régression visuelle ?

Essentiellement, les tests de régression visuelle fonctionnent en capturant des instantanés de l'interface utilisateur avant une modification, puis en les comparant aux captures d'écran prises par la suite. Les éventuelles disparités sont ensuite mises en évidence pour examen par un ingénieur de test. En pratique, il existe différentes techniques pour réaliser des tests de régression visuelle. Certains des plus utilisés sont répertoriés ci-dessous pour vous :

Tests visuels manuels

Cette méthode implique une inspection manuelle de l’interface utilisateur sans utiliser d’outils spécialisés. Les concepteurs et les développeurs consacrent du temps lors de chaque version à inspecter visuellement les pages, recherchant activement tout défaut visuel. Bien que cette approche puisse s'avérer laborieuse et sujette à des erreurs humaines lorsqu'elle est appliquée à l'ensemble d'une application, elle est utile pour les tests ponctuels ou exploratoires de l'interface utilisateur, en particulier pendant les premières étapes du développement.

Comparaison pixel par pixel

Cette technique examine les deux captures d'écran au niveau des pixels, alertant l'ingénieur de test de toute divergence. La comparaison de pixels, également connue sous le nom de différences de pixels, peut identifier tous les problèmes potentiels, mais elle peut également signaler de nombreuses différences sans conséquence, imperceptibles à l'œil humain et n'affectant pas la convivialité (par exemple, variations de rendu, anticrénelage ou différences de remplissage/marge). ). L'ingénieur de test doit méticuleusement passer au crible ces « faux positifs » à chaque essai.

Comparaison basée sur DOM

Cette méthode de comparaison repose sur l'analyse du modèle objet de document (DOM) avant et après un changement d'état et sur l'identification des différences. Bien qu'efficace pour mettre en évidence les modifications liées au code dans le DOM, il ne fournit pas une véritable comparaison visuelle. Il génère souvent des faux négatifs ou positifs lorsque le code reste inchangé, mais que l'interface utilisateur évolue (par exemple, contenu dynamique ou contenu intégré) ou lorsque le code change mais que l'interface utilisateur reste statique. Par conséquent, les résultats des tests peuvent être incohérents et nécessiter un examen attentif pour éviter de négliger les défauts visuels.

Comparaison de l'IA visuelle

Les tests de régression visuelle utilisant Visual AI exploitent la vision par ordinateur pour percevoir l'interface utilisateur d'une manière similaire à celle des humains. Une IA bien entraînée peut aider les ingénieurs de test en signalant exclusivement les différences qu'un observateur humain remarquerait, éliminant ainsi la tâche laborieuse consistant à résoudre les problèmes de « faux positifs » courants dans les tests de comparaison de pixels et de DOM. De plus, Visual AI peut évaluer le contenu dynamique et identifier les problèmes uniquement dans des zones ou des régions inattendues.

Raisons d'effectuer des tests de régression visuelle

Cette section explique les raisons les plus solides d'effectuer des tests de régression visuelle dans votre application. Alors continuez à lire….

Assurer la cohérence visuelle

Les tests de régression visuelle permettent de garantir que l'interface utilisateur et les éléments visuels de votre application mobile restent cohérents sur les différentes versions, appareils et plates-formes. Cette cohérence est importante pour offrir une expérience utilisateur transparente.

Validation des modifications de conception

Lorsque des modifications de conception sont apportées à l'application, les tests de régression visuelle peuvent valider si ces modifications ont été correctement mises en œuvre et n'ont pas introduit de problèmes visuels involontaires.

Boucle de rétroaction plus rapide

Les tests de régression visuelle peuvent fournir un retour rapide aux développeurs et aux concepteurs, leur permettant de résoudre les problèmes dès le début du cycle de développement. Cela réduit les risques que des défauts visuels critiques atteignent la production.

Expérience utilisateur améliorée

Les problèmes visuels et les incohérences peuvent avoir un impact négatif sur l'expérience utilisateur et ternir la réputation de l'application. En détectant ces problèmes grâce à des tests de régression visuelle, vous pouvez améliorer la satisfaction des utilisateurs.

Tests de régression pour les bibliothèques d'interface utilisateur

Si votre application utilise des bibliothèques ou des frameworks d'interface utilisateur tiers, les tests de régression visuelle permettent de garantir que les mises à jour de ces bibliothèques n'introduisent pas de modifications visuelles indésirables.

Étapes pour démarrer avec les tests de régression visuelle à l'aide d'Appium

Les tests de régression visuelle à l'aide d'Appium impliquent de comparer les éléments visuels de l'interface utilisateur d'une application pour détecter tout changement visuel involontaire entre les différentes versions de l'application. Voici les étapes pour démarrer les tests de régression visuelle à l'aide d'Appium :

Étape 1 : configurer Appium et l'environnement de test

Tout d’abord, assurez-vous qu’Appium est installé et configuré sur votre système. Vous aurez également besoin de la bibliothèque client Appium pour votre langage de programmation préféré (par exemple Java, Python). De plus, installez toutes les dépendances et outils nécessaires pour votre environnement de test.

Étape 2 : préparer les images de test

Avant de pouvoir effectuer des tests de régression visuelle, vous avez besoin d'un ensemble d'images de base qui représentent l'apparence attendue des écrans de votre application. Capturez ces images de base en exécutant votre application sur divers appareils/émulateurs et en prenant des captures d'écran de chaque écran. Stockez ces images dans un dossier désigné au sein de votre projet.

Étape 3 : implémenter des scripts de test

Écrivez des scripts de test à l'aide de la bibliothèque client Appium pour automatiser le processus de capture de captures d'écran et d'exécution de comparaisons visuelles. Vos scripts de test doivent effectuer les opérations suivantes :

  1. Initialisez le pilote Appium pour lancer l'application sur un appareil/émulateur spécifique.
  2. Naviguez à travers les écrans de l'application en effectuant des actions qui déclenchent des modifications de l'interface utilisateur.
  3. Capturez des captures d'écran à l'aide de la fonctionnalité de capture d'écran d'Appium.
  4. Enregistrez les captures d'écran capturées dans un dossier séparé pour comparaison.

Voici un exemple de l'apparence du code en Java à l'aide du client Java Appium :

```java

importer io.appium.java_client.AppiumDriver ;

importer io.appium.java_client.MobileElement ;

importer io.appium.java_client.android.AndroidDriver ;

importer org.openqa.selenium.remote.DesiredCapabilities ;

importer java.net.URL ;

classe publique VisualRegressionTest {

public static void main (String[] args) lève une exception {

// Définir les fonctionnalités souhaitées pour le pilote Appium

DesiredCapabilities caps = new DesiredCapabilities();

caps.setCapability("platformName", "Android");

caps.setCapability("deviceName", "emulator-5554");

caps.setCapability("appPackage", "votre.app.package");

caps.setCapability("appActivity", "votre.app.activity");

// Initialise le pilote Appium

Pilote AppiumDriver<MobileElement> = new AndroidDriver<>(new URL("https://localhost:4723/wd/hub"), majuscules);

// Effectuer des actions et capturer des captures d'écran

//...

// Enregistrer les captures d'écran pour comparaison

// ..

// Ferme le pilote

driver.quit();

}

}

```

Étape 4 : implémenter une logique de comparaison visuelle

Pour les tests de régression visuelle, vous avez besoin d'un mécanisme permettant de comparer les captures d'écran capturées avec les images de référence. Vous pouvez utiliser des bibliothèques de comparaison d'images telles que « Resemble.js » ou « Pixelmatch » pour effectuer des comparaisons pixel par pixel et calculer les différences visuelles.

Étape 5 : assertion et rapport

Dans vos scripts de test, implémentez des assertions basées sur les résultats de la comparaison visuelle. Si les différences visuelles dépassent un certain seuil, considérez le test comme échoué. Générez des rapports détaillant les résultats des tests, y compris les différences visuelles détectées.

Étape 6 : Intégration continue (CI)

Intégrez vos tests de régression visuelle dans votre pipeline CI/CD pour vous assurer qu'ils s'exécutent automatiquement chaque fois qu'il y a des modifications de code ou de nouvelles versions. Cela permet de détecter les régressions visuelles dès le début du processus de développement.

Étape 7 : Conserver les images de référence

À mesure que votre application évolue, vous devrez mettre à jour vos images de base pour qu'elles correspondent à la nouvelle apparence attendue. Cela garantit que les modifications légitimes de l’interface utilisateur ne sont pas confondues avec des régressions.

Comment les utilisateurs peuvent-ils effectuer une VRT à l'aide d'Appium sur LambdaTest ?

Voici comment les utilisateurs peuvent effectuer des tests de régression visuelle à l'aide d'Appium sur LambdaTest :

Configurer un compte LambdaTest

Pour commencer, créez un compte sur la plateforme LambdaTest si vous n'en avez pas déjà un. Vous aurez besoin de ce compte pour accéder à leur infrastructure de test. Ensuite, assurez-vous d'installer Appium et toutes les dépendances, comme indiqué ci-dessus.

Écrire des scripts de test

Développez vos scripts de test Appium pour interagir avec votre application mobile. Ces scripts doivent inclure les étapes permettant de naviguer dans votre application et de capturer des captures d'écran des éléments ou des écrans clés.

Configurer les fonctionnalités LambdaTest

Modifiez vos scripts Appium pour inclure des fonctionnalités spécifiques à LambdaTest. Cela inclut la spécification de la plate-forme souhaitée (iOS/Android), de la version du navigateur, du type d'appareil et des informations d'identification LambdaTest (nom d'utilisateur et clé d'accès).

Exécuter des tests sur LambdaTest

Téléchargez vos scripts de test Appium sur la plateforme LambdaTest. LambdaTest fournit une grille Selenium où vous pouvez exécuter vos tests Appium. Cette grille propose une large gamme d'appareils et de navigateurs réels à tester.

Exécuter des tests

Exécutez vos tests sur la grille de LambdaTest en les déclenchant depuis leur interface Web. LambdaTest exécutera vos tests sur les appareils mobiles et navigateurs spécifiés, en capturant des captures d'écran à différents moments de votre flux de test.

Comparaison visuelle

Après l'exécution du test, LambdaTest génère des captures d'écran des différents états de l'application. Vous pouvez utiliser leur outil de comparaison visuelle intégré pour comparer ces captures d'écran avec des images de référence afin d'identifier toute divergence visuelle.

Examiner et analyser

Analysez les résultats du VRT pour identifier les différences visuelles. LambdaTest fournit un aperçu des changements visuels, mettant en évidence les zones où des écarts sont détectés.

Rapports automatisés

LambdaTest offre des fonctionnalités de reporting automatisées pour suivre les résultats des tests au fil du temps, facilitant ainsi l'identification des tendances et l'évaluation de l'impact des modifications sur l'apparence visuelle de votre application.

Meilleures pratiques pour réussir les tests de régression visuelle à l'aide d'Appium

Voici quelques bonnes pratiques à suivre pour réussir les tests de régression visuelle avec Appium :

Sélectionnez une matrice d’appareils et de plates-formes fiables

Choisissez un ensemble d'appareils, de systèmes d'exploitation et de résolutions d'écran qui représentent les combinaisons les plus importantes utilisées par votre public cible. Cette matrice doit couvrir une large gamme d'appareils pour garantir que votre application soit cohérente dans différentes configurations.

Contrôle de version pour les images de référence

Conservez un référentiel d'images de référence dont les versions sont contrôlées et qui représentent l'apparence visuelle attendue de votre application sur différents appareils et plates-formes. Ces images de référence serviront de base de comparaison lors des tests de régression.

Environnement de test stable et cohérent

Assurez-vous que l’environnement de test est cohérent pour chaque exécution de test. Cela inclut l'utilisation des mêmes versions de système d'exploitation, versions d'Appium et bibliothèques lors de différentes exécutions de tests. Évitez d'introduire des changements inutiles dans l'environnement qui pourraient conduire à des faux positifs dans vos tests.

Isoler les modifications de l'interface utilisateur des modifications fonctionnelles

Séparez vos tests de régression visuelle des tests fonctionnels. Cela vous permet de vous concentrer uniquement sur les différences visuelles sans vous laisser distraire par les problèmes fonctionnels.

Tolérer la variance visuelle attendue

Toutes les différences visuelles ne sont pas des bugs. Définissez un niveau de tolérance pour une variance visuelle acceptable afin de tenir compte des modifications mineures de l'interface utilisateur, telles que les variations de rendu des polices qui pourraient ne pas affecter l'expérience utilisateur globale.

Gestion du contenu dynamique

Gérez avec élégance le contenu dynamique tel que les publicités, le contenu généré par les utilisateurs et les données en temps réel. Vous devrez peut-être exclure ces éléments de la comparaison ou mettre à jour vos images de référence pour tenir compte de ces changements dynamiques.

Stratégies d'attente intelligentes

Mettez en œuvre des stratégies d'attente intelligentes pour garantir que les éléments de l'interface utilisateur de l'application sont entièrement chargés avant de capturer des captures d'écran. Cela permet d'éviter les faux positifs causés par des écrans incomplets ou partiellement chargés.

Exécution parallèle

Si possible, exécutez des tests de régression visuelle en parallèle sur plusieurs appareils et plates-formes. Cela réduit la durée globale des tests et garantit un retour d’information plus rapide sur les écarts visuels potentiels.

Rapports et notifications automatisés

Configurez des rapports et des notifications automatisés pour alerter l'équipe lorsque des écarts visuels sont détectés. Cela garantit une action rapide et minimise le temps nécessaire à la résolution des problèmes.

Maintenance régulière des tests

À mesure que votre application évolue, mettez à jour vos images de référence et adaptez vos tests pour tenir compte des changements visuels intentionnels. Révisez et maintenez régulièrement vos tests de régression visuelle pour vous assurer qu’ils restent pertinents.

Examiner et valider les résultats

Avant de considérer une différence comme un problème réel, examinez manuellement les captures d'écran pour vérifier si les différences sont de véritables bugs ou simplement de faux positifs causés par un contenu dynamique ou des changements visuels mineurs.

Amélioration continue

Évaluez en permanence votre stratégie de tests de régression visuelle et adaptez-la si nécessaire. Restez à jour avec les derniers outils, bibliothèques et meilleures pratiques pour garantir l'efficacité de votre processus de test.

Conclusion

Que vous cherchiez à identifier des changements involontaires, à réduire les efforts manuels d'assurance qualité ou simplement à améliorer la cohérence visuelle sur différents appareils et résolutions, VRT est un outil indispensable dans votre arsenal de tests. Comme pour toute technologie, maîtriser les nuances prend du temps, mais les avantages en termes de gain de temps, de réduction des erreurs et d’expérience utilisateur plus fluide peuvent être immenses. Alors pourquoi attendre ? Commencez dès aujourd'hui avec VRT et Appium et faites passer vos tests d'applications mobiles au niveau supérieur.