Tests visuels Android : OCR, correspondance d'images ou captures d'écran ?

6 août 2026  |  11 min read

Utilisez des captures d'écran pour une apparence plein écran, l'OCR pour le texte visible et la correspondance d'images pour une cible visuelle connue. Les tests visuels Android les plus puissants combinent une assertion ciblée avec un timing stable et des preuves d'échec.

Tests visuels Android : OCR, correspondance d'images ou captures d'écran ?
Tests visuels Android : OCR, correspondance d'images ou captures d'écran ?

La réponse courte : testez ce qui doit rester vrai

Utilisez des tests de capture d'écran lorsque l'ensemble de l'écran, le composant, l'espacement, la couleur ou la typographie doivent rester visuellement cohérents. Utilisez l'OCR lorsque l'exigence concerne des mots qu'une personne peut voir, en particulier du texte localisé ou rendu dynamiquement. Utilisez la correspondance d'images lorsqu'une icône, un bouton, un badge ou une illustration connue doit apparaître même s'il n'a pas d'identifiant d'interface utilisateur fiable.

Commencez par un sélecteur d’interface utilisateur ou un état d’accessibilité lorsque l’exigence est sémantique : un contrôle existe, est activé, est sélectionné ou expose une étiquette stable. Ajoutez la détection d'objet uniquement lorsque la cible appartient à une classe visuelle et peut trop changer de taille ou de position pour un modèle. Ces méthodes sont des couches et non des cadres de test concurrents.

  • Demandez quelles preuves pourraient convaincre un évaluateur que l'exigence est satisfaite.
  • Choisissez le signal fiable le plus étroit au lieu de comparer chaque pixel par défaut.
  • Stabilisez l'écran avant de l'observer, puis enregistrez un artefact lorsque l'assertion échoue.

Comparaison des méthodes de tests visuels Android

MéthodeIdéal pourPrincipale faiblessePreuve utile
État de l’interface utilisateur ou de l’accessibilitéContrôles, étiquettes, état activé, sélection, structure de navigationLes éléments rendus sur mesure ou inaccessibles peuvent être invisibles dans l'arborescence de l'interface utilisateur.Hiérarchie de l'interface utilisateur, propriétés sélectionnées, capture d'écran
Capture d'écran ou image doréeMise en page, espacement, couleurs, typographie, apparence des composantsLes données dynamiques, les animations, les différences entre les appareils et les modifications du rendu peuvent créer des différences bruyantesImage actuelle, référence approuvée, différence visuelle
ROCTexte visible, localisation, reçus, messages d'état, valeurs rendues sous forme de pixelsLa qualité de la reconnaissance dépend du recadrage, de l'échelle, du contraste, des données linguistiques, de la rotation et de la segmentation.Recadrage source, texte reconnu, confiance ou liste de résultats
Correspondance de modèleUne icône, un bouton, un badge, une vignette ou une petite région stable connueLe thème, l'échelle, la compression et la refonte peuvent invalider le modèleModèle, région de recherche, meilleure correspondance, score, capture d'écran
Détection d'objetUn objet visuel dont la classe reste significative même si la position ou la taille varieNécessite un modèle compatible, des classes étiquetées, des seuils et une validation du modèleVersion modèle, classe, boîte, partition, capture d'écran

Les instructions officielles de test de capture d'écran d'Android décrivent la comparaison du rendu actuel avec une image de référence approuvée. Le plugin d'image d'Appium expose la correspondance de fonctionnalités, la correspondance de modèles et la comparaison de similarités. OpenCV documente les mécanismes de glissement d'un modèle sur une image, tandis que Tesseract explique pourquoi le prétraitement OCR et la segmentation des pages sont importants. Les outils diffèrent, mais la question de conception des tests reste la même : quelle observation prouve cette exigence ?

Choisissez la bonne affirmation avec quatre questions

1. L’exigence est-elle sémantique ou visuelle ?

Si le test indique « le bouton Soumettre est activé », inspectez d'abord l'état de l'interface utilisateur. S'il indique « le bouton Soumettre n'est pas tronqué après le changement de police », utilisez une capture d'écran ou une vérification visuelle ciblée. Une requête sémantique est généralement plus facile à maintenir, mais elle ne peut pas prouver l’apparence.

2. Le texte exact est-il important ?

Utilisez l'OCR lorsque la chaîne destinée à l'utilisateur est requise et que le texte n'est pas exposé de manière fiable via l'arborescence de l'interface utilisateur. Limitez la reconnaissance à la plus petite région significative, sélectionnez la langue correcte et comparez un résultat normalisé. Conservez une capture d'écran, car une chaîne OCR correcte ne peut pas à elle seule montrer une troncature, un chevauchement ou un mauvais contraste.

3. Existe-t-il une cible visuelle stable ?

Utilisez la correspondance de modèle pour une icône connue ou un petit contrôle. Recadrez étroitement le modèle, recherchez dans une région d'intérêt et définissez le seuil à partir d'échantillons réels positifs et négatifs. Un seuil universel est rarement défendable pour tous les thèmes, résolutions et flux distants compressés.

4. L’ensemble de la composition doit-il rester cohérent ?

Utilisez la comparaison de captures d'écran lorsque la relation entre de nombreux éléments est importante. Contrôlez les polices, les paramètres régionaux, la configuration de l'appareil, les barres système, l'heure, les données réseau, les animations et le contenu prédéfini. Si ces entrées ne peuvent pas être contrôlées, masquez ou recadrez les régions dynamiques au lieu d'accepter un test bruyant en permanence.

Construisez un test visuel qui échoue utilement

  1. Amenez l’application à un état de départ nommé sur un appareil ou un émulateur autorisé.
  2. Attendez une condition stable, pas seulement un délai fixe. UI Automator offre une attente de stabilité et un signal prêt spécifique à l'application est encore meilleur.
  3. Capturez la plus petite région source contenant les preuves requises.
  4. Exécutez une assertion principale : état de l'interface utilisateur, OCR, modèle, détection ou comparaison de capture d'écran.
  5. Enregistrez l'image source et le résultat structuré avant d'effectuer l'action suivante.
  6. En cas d'échec, arrêtez ou suivez un chemin de récupération révisé. N'appuyez pas sur un sosie à proximité simplement pour faire avancer le test.

Un contrôle visuel devient plus sécuritaire lorsqu'il autorise une transition. Observez l'état actuel, faites l'assertion, n'effectuez l'action autorisée qu'après succès et vérifiez la postcondition. Il s'agit du même principe de conception décrit dans le guide de clic automatique de reconnaissance d'image: la reconnaissance ne constitue pas une preuve que le flux de travail est terminé.

Pour le travail sur appareil réel, la mise en miroir d'écran Androidpour les tests d'applications mobilesdonne à un réviseur une vue en direct pendant la conception du test. Le guide de test de fumée QA pour l'automatisation Androidexplique comment assurer des contrôles répétés précis et reproductibles.

Trois scénarios pratiques de tests visuels Android

Contrôle qualité de la localisation sur un écran de paiement

Utilisez l'état de l'interface utilisateur pour accéder à l'écran de paiement, l'OCR pour confirmer le total localisé et l'étiquette d'action, ainsi qu'une capture d'écran ciblée pour montrer que les chaînes ne sont pas coupées ou ne se chevauchent pas. Exécutez chaque paramètre régional avec des données de test contrôlées. Une comparaison de pixels en plein écran à elle seule sera trop sensible à la longueur de la chaîne traduite, tandis que l'OCR seule ne manquera pas les dommages causés à la mise en page.

Vérification d'une icône de barre d'outils repensée

Utilisez un modèle pour l'icône acceptée dans une petite région de la barre d'outils. Conservez des modèles séparés lorsque les thèmes clairs et sombres sont tous deux pris en charge. Lorsque la correspondance échoue, attachez le recadrage de la barre d'outils et le score du meilleur candidat. Si l'icône est intentionnellement repensée, examinez et remplacez le modèle plutôt que d'abaisser le seuil jusqu'à ce qu'une forme passe.

Un test de fumée sur téléphone réel après le déploiement

Commencez à partir d'un compte et d'un état d'application connus, attendez l'écran d'accueil, affirmez son identité, effectuez une action autorisée et vérifiez l'état nommé suivant. Capturez une capture d'écran à chaque échec. La densité des appareils, les boîtes de dialogue d'autorisation, les claviers, les notifications et les mises à jour du système font partie de l'environnement du téléphone réel, le test doit donc les signaler au lieu de les masquer.

Faux échecs courants et comment les éviter

SymptômeCause probableMeilleure réponse
La différence de capture d'écran change à chaque exécutionHorloge, animation, publicités, données prédéfinies, clavier, barre système ou contenu réseauGeler les entrées, attendre la stabilité, recadrer ou masquer uniquement la région dynamique
L'OCR renvoie un texte plausible mais erronéMauvaise langue, faible contraste, petit recadrage, rotation, bruit ou segmentation inappropriéeEnregistrez le recadrage, améliorez l'échelle et le contraste, choisissez délibérément la langue et la segmentation
La correspondance de modèle ne fonctionne que sur un seul téléphoneDensité, thème, mise à l'échelle, rapport hauteur/largeur ou compression différentsUtilisez une région d'intérêt et des modèles validés pour les variantes visuelles prises en charge
La bonne image est trouvée mais le robinet échoueLes coordonnées de correspondance n'ont pas été transformées sur l'écran actuel ou une superposition bloque l'entréeSéparez la reconnaissance de l'action et vérifiez l'état suivant
Le test continue sur le mauvais écranPas de postcondition ou de bord d'échecNommez les états attendus et arrêtez-vous lorsque l'écran actuel se trouve en dehors du chemin examiné
Le détecteur d'objet trouve la mauvaise classeLe modèle ou les libellés ne correspondent pas au domaine de l'application, le seuil n'est pas validéUtilisez un modèle compatible, enregistrez la version et le score, testez les échantillons négatifs

Les discussions de la communauté sur les tests de régression Android reviennent souvent sur les mêmes coûts de maintenance : matrices d'appareils, timing irrégulier, examen de base et écrans dont le contenu change. Ce ne sont pas des raisons pour abandonner les tests visuels. Ce sont des raisons pour rendre explicites l’environnement de test, les écarts acceptés et les artefacts d’échec.

Comment LaiCai Flow s’intègre dans les tests visuels

LaiCai Flowest une fonctionnalité d'automatisation à l'intérieur de LaiCai Screen Mirroring. Un flux peut combiner capture d'écran, vérifications de l'interface utilisateur, OCR, correspondance de modèles, détection d'objets, conditions, actions et transitions explicites de réussite ou d'échec. Cela permet à un testeur de modéliser l'écran comme un état au lieu de traiter la reconnaissance comme une astuce isolée.

AvecLaiCai Flow Inside, un profil compatible peut s'exécuter via LaiCai Android Agent sur le téléphone après le déploiement. La compatibilité dépend toujours de chaque nœud et actif utilisé par ce profil. L'OCR locale utilise Tesseract ; la correspondance de modèles utilise un élément d'image sélectionné et un score configurable ; la détection locale compatible utilise un modèle pris en charge. Un nœud de réseau ou un modèle distant a toujours besoin de sa propre dépendance réseau.

Cela ne rend pas automatiquement chaque test visuel fiable. Les équipes ont toujours besoin de références représentatives, de modèles, de régions OCR, de modèles, de seuils, de cas négatifs et de postconditions. L’avantage est que ces décisions et transitions peuvent être examinées dans un seul flux de travail. Le guide d'automatisation AndroidAIoffre une vue plus large de la création et de l'exécution sur des appareils réels.

L'ensemble minimum de preuves pour un test visuel échoué

  • Nom du test, version de l'application, modèle de l'appareil, version Android, paramètres régionaux, thème et orientation.
  • La capture d'écran source ou la région recadrée utilisée par l'assertion.
  • Propriété de référence, de modèle, de texte, de classe ou d'interface utilisateur attendue.
  • La différence observée, le résultat OCR, le cadre de délimitation, le score de correspondance ou la valeur de l'interface utilisateur.
  • L'état nommé précédent, l'action tentée, l'état suivant attendu et le motif de l'arrêt.
  • Version de l'actif, du modèle ou de la référence afin qu'un réviseur puisse reproduire la décision.

Une étiquette réussite/échec sans ce contexte oblige la personne suivante à reproduire l’intégralité de l’exécution. Un ensemble compact de preuves transforme l'échec en une décision révisable : réparer le produit, stabiliser le test, mettre à jour un actif visuel approuvé ou rejeter une configuration d'appareil non prise en charge.

FAQ sur les tests visuels Android

Chaque test de l'interface utilisateur Android devrait-il inclure une capture d'écran ?

Non. Utilisez des captures d'écran lorsque l'apparence est importante ou lorsqu'un artefact d'échec peut aider un réviseur. Les assertions sémantiques sont généralement meilleures pour les comportements que l'arborescence de l'interface utilisateur expose de manière fiable.

L’OCR est-elle meilleure que la correspondance d’images ?

L'OCR répond aux questions sur le texte visible. La correspondance d'images répond aux questions sur un modèle visuel connu. Si l'exigence inclut à la fois l'étiquette et son apparence, utilisez l'OCR ainsi qu'une capture d'écran ciblée ou une vérification de modèle.

Les tests de capture d’écran peuvent-ils s’exécuter sur de vrais téléphones Android ?

Oui, mais les appareils réels introduisent plus de variations qu'un moteur de rendu ou un émulateur contrôlé côté hôte. Enregistrez la configuration de l'appareil, stabilisez l'interface utilisateur et les données du système et définissez les attentes concernant la matrice d'appareils que vous prenez réellement en charge.

Quand dois-je utiliser la détection d’objets ?

Utilisez-le lorsqu'une classe d'objet significative se déplace ou évolue au-delà de la tolérance d'un modèle stable, et uniquement lorsqu'un modèle compatible a été validé sur les images réelles de l'application. N'ajoutez pas de détecteur simplement parce qu'il semble plus avancé.

Choisissez les preuves avant de choisir la technologie

Des tests visuels Android fiables commencent par une phrase : que doit être capable de prouver un évaluateur ? Choisissez l'état de l'interface utilisateur pour la sémantique, les captures d'écran pour la composition, l'OCR pour le texte, la correspondance de modèles pour une cible visuelle connue et la détection d'objets pour une classe validée à géométrie variable.

Intégrez ensuite l'observation à une transition d'état : stabilisez, capturez, affirmez, n'agissez qu'après le succès, vérifiez la postcondition et préservez les preuves d'échec. Cette conception est plus facile à comprendre qu’un ensemble d’appels visuels déconnectés et beaucoup plus facile à maintenir lorsque l’application ou l’appareil change.

Télécharger la version gratuite

Version précédente 4.0.2: macOSWindows EXE

Remarque: mise en miroir d'écran Android uniquement.