Améliorer les tests WeChat avec des temps d'attente dynamiques
Un nouvel outil améliore l'efficacité des tests WeChat en ajustant les temps d'attente pendant la replay.
― 9 min lire
Table des matières
- Le Besoin de Tests Efficaces
- Défis des Méthodes de Relecture Actuelles
- Une Nouvelle Approche pour Enregistrer et Rejouer
- Comment Fonctionne l'Outil
- Collecte de Données pour l'Entraînement
- Entraînement du Modèle d'Apprentissage Profond
- Évaluation de la performance
- Avantages Pratiques
- Améliorations Futures
- Conclusion
- Source originale
- Liens de référence
WeChat est une appli de messagerie super populaire avec plus d'un milliard d'utilisateurs actifs. En grandissant, elle ajoute de plus en plus de fonctionnalités comme le shopping, les jeux et la banque. Avec toutes ces fonctionnalités complexes, il est crucial que l'appli fonctionne bien. Un moyen d'y parvenir, c'est d'utiliser des outils d'enregistrement et de lecture. Ces outils permettent aux développeurs d'enregistrer comment les utilisateurs interagissent avec l'appli et ensuite de rejouer ces interactions pour vérifier les problèmes.
Cependant, un gros souci avec ces outils, c'est le temps d'attente entre les actions pendant la lecture. Si le temps d'attente est trop long, ça ralentit le processus de test. Si c'est trop court, les actions peuvent se produire avant que l'écran soit prêt, entraînant des erreurs. Idéalement, le temps d'attente devrait équilibrer vitesse et efficacité.
Le Besoin de Tests Efficaces
Alors que WeChat continue d'introduire de nouvelles fonctionnalités, les tests deviennent de plus en plus difficiles. Les outils d'enregistrement et de lecture peuvent aider, mais ils doivent être efficaces et performants. Les méthodes de test traditionnelles ignorent souvent l'importance des temps d'attente, ce qui mène à du temps perdu ou à des tests échoués.
Un problème courant est que ces outils rejouent généralement les événements enregistrés avec un temps d'attente fixe. Cette approche ne fonctionne pas toujours bien à cause de différents facteurs, comme des connexions internet lentes ou des appareils plus anciens qui prennent plus de temps à effectuer des actions. En conséquence, beaucoup de tests échouent, ce qui peut retarder la sortie de l'appli et affecter la satisfaction des utilisateurs.
Défis des Méthodes de Relecture Actuelles
Beaucoup d'outils d'enregistrement et de lecture existants ne s'adaptent pas aux conditions en temps réel de l'appli. Ils peuvent enregistrer combien de temps ça a pris pour faire des actions, mais quand ils essaient de les rejouer, ces temps ne sont pas toujours précis pour différents appareils ou dans différentes conditions.
Par exemple, si un test est enregistré avec une connexion rapide, ça peut ne pas bien fonctionner sur une connexion plus lente. Ça peut entraîner des erreurs qui font échouer la relecture. En plus, des appareils plus anciens ou moins puissants peuvent avoir du mal, entraînant encore plus de problèmes lors de la relecture des actions.
Pour assurer que les tests sont efficaces, les développeurs doivent souvent définir manuellement des temps d'attente plus long. Bien que cette méthode puisse aider à éviter des échecs, ça demande beaucoup de temps et d'efforts à mettre en place.
Une Nouvelle Approche pour Enregistrer et Rejouer
Pour répondre à ces défis, on a introduit un nouvel outil d'enregistrement et de relecture qui ajuste automatiquement le temps d'attente en fonction de la performance visuelle de l'appli. Cette approche utilise un modèle d'apprentissage profond pour reconnaître quand l'écran est prêt pour la prochaine action en analysant l'état visuel de l'appli.
Cette méthode offre plusieurs avantages :
- Ajustement Dynamique : Au lieu d'utiliser des temps fixes, l'outil peut ajuster en fonction de l'état réel de rendu de l'appli.
- Relecture Efficace : Ça aide à accélérer le processus de test car ça saute les temps d'attente inutiles.
- Taux de réussite plus élevés : En attendant uniquement quand c'est nécessaire, l'outil réduit les chances d'erreurs pendant la relecture.
Comment Fonctionne l'Outil
On a développé un système qui enregistre d'abord les interactions des utilisateurs avec l'appli WeChat. Pendant cette phase, l'outil capture toutes les actions pertinentes, y compris les propriétés des widgets (comme les boutons et les champs) et les types d'entrée.
Lors de la relecture, l'outil utilise un modèle d'apprentissage profond pour analyser des captures d'écran de l'appli en temps réel. Le modèle identifie si l'appli est complètement rendue ou encore en chargement. Si l'appli est prête, la prochaine action est déclenchée ; sinon, l'outil attend jusqu'à ce qu'elle le soit.
Cette planification dynamique permet au processus de test d'être plus efficace tout en maintenant son efficacité. Le système peut suivre la performance de l'appli et s'adapter en conséquence.
Collecte de Données pour l'Entraînement
Pour construire efficacement le modèle d'apprentissage profond, une quantité importante de données est nécessaire. On a collecté une grande variété de captures d'écran de l'appli WeChat. Chaque image a été étiquetée comme entièrement rendue ou partiellement rendue en fonction de son état visuel.
À travers un processus méticuleux, on a vérifié manuellement beaucoup d'images pour garantir l'exactitude de notre jeu de données. Cela impliquait de former une petite équipe à identifier les différences entre les états entièrement chargés et ceux encore en chargement ou en transition.
Pour élargir le jeu de données, on a aussi utilisé des techniques d'augmentation de données. Ces méthodes nous ont permis de créer de nouvelles images à partir d'images existantes en les modifiant légèrement, ce qui aide à améliorer la capacité du modèle à reconnaître et classifier les états de l’interface graphique.
Entraînement du Modèle d'Apprentissage Profond
On a utilisé une méthode appelée MobileNetV2, qui est un type de modèle d'apprentissage profond conçu pour la classification d'images. Ce modèle est efficace et performant pour identifier les états de rendu de l'interface graphique grâce à son architecture.
Le modèle a été entraîné en utilisant les images étiquetées que l'on a collectées. Au fil du temps, il a appris à localiser et comprendre les caractéristiques visuelles qui indiquent si une interface graphique est complètement chargée ou encore en traitement.
Pendant l'entraînement, le modèle a été évalué en utilisant des métriques standards comme la précision, le rappel et le score F1. Ces métriques aident à déterminer comment le modèle se comporte. Un score plus élevé indique que le modèle identifie avec précision les états de l'interface graphique.
Évaluation de la performance
Une fois entraîné, on a réalisé plusieurs expériences pour évaluer à quel point notre outil fonctionne bien. On s'est concentré sur trois questions principales :
- Quelle est l'exactitude du modèle à identifier les états de l'interface graphique ?
- Quelle est l'efficacité de l'outil à rejouer des scénarios sur le même appareil ?
- Comment l'outil se comporte-t-il lors de la relecture sur différents appareils ?
Exactitude du Modèle
Lors de nos tests, on a constaté que le modèle performait mieux que beaucoup d'approches existantes. Il pouvait classifier les états de l'interface graphique avec une grande précision, atteint des scores de précision, de rappel et de F1 élevés. Ce succès suggère que notre modèle est bien adapté pour identifier quand l'appli WeChat est prête pour la prochaine action.
Relecture sur le Même Appareil
Pour tester la fonctionnalité de relecture sur le même appareil, on a collecté une variété de scénarios d'utilisation courants de l'appli WeChat. Notre outil a réussi à rejouer tous les scénarios avec beaucoup moins de temps d'attente par rapport aux méthodes traditionnelles.
En comparaison directe avec les méthodes établies, notre outil a nettement surpassé les approches précédentes en réussissant à rejouer plus de scénarios en moins de temps.
Relecture sur Différents Appareils
On a également évalué la capacité du système à rejouer des scénarios sur différents appareils. Les tests ont été réalisés sur une variété d'appareils, y compris des modèles plus anciens et ceux avec différents systèmes d'exploitation.
L'outil s'est bien adapté aux performances de chaque appareil, garantissant que tous les scénarios étaient rejoués correctement. Cette adaptabilité met en avant la robustesse de notre approche, capable de gérer des environnements divers.
Avantages Pratiques
Ce nouvel outil d'enregistrement et de relecture offre des avantages pratiques pour les développeurs, surtout ceux qui travaillent avec des applis complexes comme WeChat. La capacité d'ajuster dynamiquement les temps d'attente entraîne plusieurs avantages, dont :
- Gain de Temps : En réduisant le temps d'attente inactif, les développeurs peuvent effectuer plus de tests en moins de temps global.
- Meilleure Qualité : Un test efficace aide à déceler les bugs avant que l'appli n'atteigne les utilisateurs, offrant une expérience plus fluide.
- Facilité d'Utilisation : Les développeurs passent moins de temps à mettre en place des tests manuellement, ce qui permet un processus de test plus fluide.
Améliorations Futures
Bien que notre outil montre un grand potentiel, il y a toujours des possibilités d'amélioration. Les efforts futurs incluront :
- Élargissement du Jeu de Données : Collecter plus de données aidera à améliorer la performance du modèle, surtout avec une plus grande variété d'états d'interface graphique.
- Tests avec Plus d'Applications : Bien que l'accent actuel soit sur WeChat, on prévoit d'explorer comment cet outil peut être appliqué à d'autres applis et plateformes, comme iOS, pour maximiser son utilité.
- Amélioration du Modèle : Les avancées continues en apprentissage profond permettront des mises à jour du modèle, augmentant potentiellement encore plus son exactitude et sa vitesse.
Conclusion
Alors que les applications deviennent de plus en plus complexes, des tests efficaces et performants deviennent cruciaux. Notre nouvel outil d'enregistrement et de relecture offre une solution en ajustant dynamiquement les temps d'attente en fonction de l'état visuel de l'appli. Cette avancée améliore non seulement la vitesse de test, mais également l'assurance qualité globale pour des applications comme WeChat.
Grâce à une collecte de données approfondie, un entraînement rigoureux et une évaluation robuste, notre approche démontre des avantages significatifs par rapport aux méthodes traditionnelles. L'avenir offre des possibilités passionnantes alors que nous continuons à affiner et à étendre cette technologie pour bénéficier aux développeurs et aux utilisateurs.
Titre: Towards Efficient Record and Replay: A Case Study in WeChat
Résumé: WeChat, a widely-used messenger app boasting over 1 billion monthly active users, requires effective app quality assurance for its complex features. Record-and-replay tools are crucial in achieving this goal. Despite the extensive development of these tools, the impact of waiting time between replay events has been largely overlooked. On one hand, a long waiting time for executing replay events on fully-rendered GUIs slows down the process. On the other hand, a short waiting time can lead to events executing on partially-rendered GUIs, negatively affecting replay effectiveness. An optimal waiting time should strike a balance between effectiveness and efficiency. We introduce WeReplay, a lightweight image-based approach that dynamically adjusts inter-event time based on the GUI rendering state. Given the real-time streaming on the GUI, WeReplay employs a deep learning model to infer the rendering state and synchronize with the replaying tool, scheduling the next event when the GUI is fully rendered. Our evaluation shows that our model achieves 92.1% precision and 93.3% recall in discerning GUI rendering states in the WeChat app. Through assessing the performance in replaying 23 common WeChat usage scenarios, WeReplay successfully replays all scenarios on the same and different devices more efficiently than the state-of-the-practice baselines.
Auteurs: Sidong Feng, Haochuan Lu, Ting Xiong, Yuetang Deng, Chunyang Chen
Dernière mise à jour: 2023-08-25 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2308.06657
Source PDF: https://arxiv.org/pdf/2308.06657
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.