Présentation de NiCro : Une nouvelle façon de tester des applis mobiles
NiCro facilite les tests d'applications mobiles sur différents appareils grâce à la reconnaissance d'images.
― 10 min lire
Table des matières
Les applications mobiles, ou apps, sont super populaires sur plein de dispositifs comme les téléphones et les tablettes. Par contre, tester ces apps pour s'assurer qu'elles sont compatibles sur différents appareils et systèmes d'exploitation, c'est pas simple. Chaque appareil peut afficher la même app différemment à cause des variations de taille d'écran, de mise en page et de design. Du coup, les développeurs doivent investir beaucoup de temps pour que leurs apps fonctionnent bien sur toutes les plateformes.
Une méthode courante pour faciliter les tests est d'utiliser une approche d'enregistrement et de relecture. Ça veut dire qu'on enregistre les actions faites sur un appareil et qu'on les rejoue ensuite sur d'autres. Mais il y a un souci : l'interface d'une app peut beaucoup changer d'un appareil à l'autre. Ça complique la relecture précise des actions enregistrées.
Beaucoup de méthodes actuelles se basent sur l'accès aux détails ou aux métadonnées de l'app directement, ce qui peut être intrusif. En gros, ça veut dire qu'ils doivent fouiller dans le logiciel de l'app pour récupérer les infos nécessaires. Ce truc a souvent ses limites, car certains systèmes ne permettent pas d'accéder à toutes les données requises.
Récemment, certains chercheurs ont commencé à regarder l'utilisation d'images de l'interface de l'app à la place. Cette méthode non intrusive utilise des infos visuelles pour identifier et associer les éléments de l'interface. Mais ces méthodes antérieures galèrent souvent parce qu'elles ne prennent pas bien en compte comment la même interface peut apparaître différemment sur divers appareils.
Pour relever ces défis, un nouveau système appelé NiCro a été proposé. NiCro est conçu pour tester les apps sur plusieurs appareils et plateformes sans avoir besoin d'accéder aux données internes de l'app. Au lieu de ça, il se concentre sur l'analyse des images de l'interface de l'app.
Le Problème des Méthodes Existantes
Tester les apps manuellement, c'est souvent lent et chiant. Engager des gens pour passer par les mêmes étapes sur différents appareils demande beaucoup de boulot et prend du temps. Pour aller plus vite, les développeurs se sont tournés vers les tests automatisés, notamment les méthodes d'enregistrement et de relecture qui leur permettent d’enregistrer des actions et de les rejouer sur différents appareils.
Cependant, beaucoup de méthodes existantes ont du mal avec les tests entre appareils et plateformes. Elles se concentrent surtout sur la relecture d'actions enregistrées sur la même plateforme. Par exemple, si une action est enregistrée sur un appareil Android, la rejouer sur un autre appareil Android est généralement plus facile que de la faire sur un appareil iOS.
Certaines techniques récentes ont essayé de relier les appareils ou de se baser sur les métadonnées pour aider à faire correspondre ce qui est nécessaire pour une relecture. Pourtant, elles échouent souvent quand les métadonnées nécessaires ne sont pas disponibles ou quand l'interface de l'app diffère beaucoup entre les plateformes.
En plus, même si des outils automatisés pouvaient récupérer les métadonnées, ils pourraient ne pas bien fonctionner avec certaines opérations système ou quand plusieurs apps sont en jeu. C'est là que les méthodes non intrusives peuvent mieux fonctionner. Ces méthodes agissent comme un observateur humain : elles regardent l'écran, comprennent ce qu'il y a, puis interagissent avec.
Qu'est-ce que NiCro ?
NiCro est un système novateur qui adopte une approche non intrusive pour enregistrer et rejouer des actions sur différents appareils et plateformes. Il utilise des techniques avancées de vision par ordinateur qui lui permettent d'analyser les informations de l'interface utilisateur graphique (GUI) directement à partir d'images de l'app, plutôt que de devoir accéder aux données internes de l'app.
L'objectif principal de NiCro est de rendre la tâche plus facile et plus efficace pour les développeurs qui testent leurs apps sur différents appareils. En utilisant des images pour recueillir des infos sur l'interface, NiCro évite beaucoup des difficultés qui viennent avec les méthodes de test intrusives traditionnelles.
NiCro fonctionne en capturant d'abord des captures d'écran ou des images de l'interface de l'app, puis en analysant ces images pour identifier les différents composants, ou widgets, de la GUI. Cela lui permet de reconnaître divers éléments sur l'écran, comme des boutons et des champs de texte.
Une fois que NiCro a recueilli ces informations visuelles, il peut faire correspondre les widgets sur différents appareils. Ça veut dire que si un bouton est cliqué sur un appareil, NiCro peut déterminer où ce bouton se trouverait sur un autre appareil, même si sa position ou son apparence a changé.
Comment NiCro Fonctionne
À un niveau général, NiCro se compose de trois composants principaux : une Ferme d'Appareils, un Système Robotique, et un Ordinateur Hôte.
Ferme d'Appareils
La Ferme d'Appareils est une installation qui connecte divers dispositifs virtuels et physiques. Elle permet à NiCro de simuler de vrais dispositifs et de tester des apps sur différentes tailles d'écran et systèmes d'exploitation sans avoir tous les dispositifs en main. En utilisant des émulateurs, les développeurs peuvent rapidement tester leurs apps sur plusieurs configurations.
Système Robotique
Le Système Robotique fournit une interaction physique avec de vrais appareils. Il comprend un bras robotique qui agit comme un doigt humain, tapotant sur l'écran pour effectuer des actions. À côté du bras robotique, il y a aussi une caméra haute résolution pour capturer des images de l'interface de l'app. Cela garantit que NiCro peut recueillir des données visuelles précises sur l'app qui est testée.
Ordinateur Hôte
L'Ordinateur Hôte est le cerveau de NiCro. Il collecte des données à partir de la Ferme d'Appareils et du Système Robotique. Il traite les images capturées par la caméra, les analyse pour détecter les éléments de la GUI, et décide comment faire correspondre et rejouer des actions sur différents appareils.
Étapes Impliquées Dans Les Tests
Enregistrement d'Actions et Collecte d'Images
La première étape du processus de NiCro consiste à enregistrer les actions effectuées sur un appareil source et à capturer des images de divers appareils cibles. Ça veut dire qu'alors qu'un utilisateur interagit avec l'app, NiCro enregistre ce qui se passe et prend des captures d'écran de l'état de l'app sur chaque appareil.
Détection des Widgets GUI
Une fois les images collectées, NiCro utilise son détecteur avancé de widgets GUI pour identifier les différents widgets sur l'écran. Cela implique de trouver l'emplacement des boutons, champs de texte, menus, et autres composants dans les images. Il peut faire la différence entre les widgets texte et non-texte en fonction de leur apparence.
Extraction d'Informations sur les Widgets
Après détection, NiCro extrait des informations détaillées sur chaque widget. Cela inclut son emplacement, sa forme, son contenu textuel, et les widgets environnants. Collecter ces informations multimodales permet à NiCro de mieux faire correspondre les widgets entre les appareils.
Correspondance des Widgets
Avec toutes les infos en main, NiCro peut commencer à faire correspondre les widgets. Il utilise divers critères, se concentrant sur des attributs comme le contenu texte et la forme pour trouver des widgets équivalents sur différents appareils. S'il trouve une correspondance, il peut alors reproduire avec précision l'action enregistrée sur l'appareil cible.
Exécution des Actions
Enfin, NiCro exécute les actions sur les appareils cibles. Ça pourrait vouloir dire appuyer sur un bouton ou entrer du texte dans un champ. Il le fait via le Système Robotique pour les appareils physiques et envoie des événements de souris pour les appareils virtuels.
Évaluation de NiCro
La performance de NiCro a été évaluée à l'aide d'une série de tests sur différents appareils et apps. Plusieurs apps populaires couvrant différentes catégories ont été utilisées pour que NiCro puisse montrer sa capacité à gérer divers scénarios.
Lors des tests, NiCro a atteint de hauts taux de précision dans la correspondance des widgets et l'exécution des actions. Il a réussi à reproduire la majorité des actions sur différents appareils sans nécessiter d'ajustements manuels.
Comparé aux méthodes précédentes, NiCro a largement surpassé ses pairs. Pour les actions qui dépendaient de widgets spécifiques, il a atteint environ 86% de succès en les reproduisant correctement. En revanche, d'autres méthodes n'ont même pas réussi à atteindre la moitié de ce taux de réussite.
Dans les cas impliquant des actions indépendantes des widgets, comme le défilement, NiCro a aussi montré de solides performances. C'est particulièrement impressionnant parce que la façon dont le contenu apparait sur différents écrans peut varier considérablement. La capacité de NiCro à utiliser l'intelligence visuelle pour faire correspondre les interfaces entre appareils mène à des résultats de test plus réussis.
Défis Rencontrés
Bien que NiCro montre des promesses, il a aussi ses défis. Les variations dans la taille des écrans des appareils peuvent créer des difficultés quand il s'agit de faire correspondre les widgets. Par exemple, si un widget est trop grand pour tenir sur l'écran d'un plus petit appareil, NiCro pourrait devoir faire défiler pour le révéler.
D'autres défis viennent des différences dans la façon dont les apps sont conçues sur diverses plateformes. Par exemple, une app peut sembler très différente sur iOS par rapport à Android, ce qui peut compliquer le processus de correspondance. NiCro doit s'adapter à ces différences pendant les tests pour garantir des replays précis.
Conclusion
NiCro représente une avancée significative dans le domaine des tests d'apps. En se concentrant sur des méthodes non intrusives, il permet aux développeurs de s'assurer que leurs applications mobiles fonctionnent correctement sur une variété d'appareils sans avoir besoin de fouiller dans le code ou les données sous-jacentes.
En s'appuyant sur la reconnaissance d'images et des techniques de vision par ordinateur, NiCro est capable de simplifier le processus de test et d'augmenter l'efficacité dans un domaine qui a désespérément besoin d'automatisation. La capacité à tester avec précision entre plateformes et appareils peut conduire à de meilleures expériences utilisateurs et des opérations plus fluides pour les développeurs.
Avec l'évolution continue de la technologie, d'autres améliorations rendront probablement NiCro encore plus efficace pour gérer les complexités liées aux tests d'apps entre appareils et plateformes.
Titre: NiCro: Purely Vision-based, Non-intrusive Cross-Device and Cross-Platform GUI Testing
Résumé: To ensure app compatibility and smoothness of user experience across diverse devices and platforms, developers have to perform cross-device, cross-platform testing of their apps, which is laborious. There comes a recently increasing trend of using a record and replay approach to facilitate the testing process. However, the graphic user interface (GUI) of an app running on different devices and platforms differs dramatically. This complicates the record and replay process as the presence, appearance and layout of the GUI widgets in the recording phase and replaying phase can be inconsistent. Existing techniques resort to instrumenting into the underlying system to obtain the app metadata for widget identification and matching between various devices. But such intrusive practices are limited by the accessibility and accuracy of the metadata on different platforms. On the other hand, several recent works attempt to derive the GUI information by analyzing the GUI image. Nevertheless, their performance is curbed by the applied preliminary visual approaches and the failure to consider the divergence of the same GUI displayed on different devices. To address the challenge, we propose a non-intrusive cross-device and cross-platform system NiCro. NiCro utilizes the state-of-the-art GUI widget detector to detect widgets from GUI images and then analyses a set of comprehensive information to match the widgets across diverse devices. At the system level, NiCro can interact with a virtual device farm and a robotic arm system to perform cross-device, cross-platform testing non-intrusively. We first evaluated NiCro by comparing its multi-modal widget and GUI matching approach with 4 commonly used matching techniques. Then, we further examined its overall performance on 8 various devices, using it to record and replay 107 test cases of 28 popular apps and the home page to show its effectiveness.
Auteurs: Mulong Xie, Jiaming Ye, Zhenchang Xing, Lei Ma
Dernière mise à jour: 2023-05-23 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2305.14611
Source PDF: https://arxiv.org/pdf/2305.14611
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.