BT

Nouveau Early adopter ou innovator ? InfoQ a travaillé sur de nouvelles fonctionnalités pour vous. En savoir plus

Google Espresso : une solution de tests automatisés d'UI, rapide et dans le cloud

| par Abel Avram Suivre 3 Abonnés , traduit par Hadrien Pierart Suivre 0 Abonnés le 28 oct. 2013. Durée de lecture estimée: 2 minutes |

Google vient de partager en open source Espresso, un framework de tests Android automatisés qui permet de lancer des tests sur des machines x86 dans le cloud, dans un environnement multi-threadé, permettant ainsi de résoudre le problème de la gestion de la concurrence dans les tests d'interface graphique.

Effectuer des tests sur du vrai matériel Android est très coûteux en temps et en ressources du fait du grand nombre de terminaux sur le marché. Une solution est d'effectuer ces tests sur un émulateur qui permet d'avoir un environnement contrôlé supportant plusieurs versions du système, des résolutions d'écrans et des contraintes de mémoire. Cette méthode permet de détecter la plupart des bugs mais le reste nécessite quand même des tests sur de vrais terminaux par des humains.

La problème principal des émulateurs est leur vitesse d'exécution, le goulet d'étranglement étant d'émuler un CPU ARM pour faire tourner Android. Pour résoudre cela, Google a créé une version d'Android qui fonctionne directement sur du x86 et utilise l'accélération de la VM. Une autre limitation est le temps de démarrage d'Android ; ce problème a été résolu en réalisant des images ("snapshots") du système et en les exécutant pour obtenir la configuration souhaitée en peu de temps. En utilisant cette technique, Google a réalisé 82 millions de tests en mars 2013.

Si on compare des tests lancés sur le Nexus 4 et un émulateur, ce dernier met seulement 65% du temps pour finir le test. Finalement, il semblerait qu'un bon émulateur aie enfin réglé le problème des tests automatisés. Mais il reste encore un obstacle majeur. Les tests automatisés utilisent l'API d'Instrumentation d'Android et ces appels sont faits dans un thread différent de celui de l'UI. Du coup, tester l'interface utilisateur peut mener à de sérieux problèmes de concurrence menant à des résultats de tests erratiques. La solution de Google est Espresso : un framework de tests qui permet d'effectuer des tests d'UI correctement, dans un environnement multi-threads et qui permet de s'affranchir d'une bonne partie du code redondant lorsqu'on écrit des tests. Espresso marche sur de nombreux terminaux mobiles dont les téléphones, les téléviseurs, les lunettes à réalité augmentée, les voitures, etc, et fonctionne pour différentes résolutions d'écran, configurations mémoires, versions des API et types de réseaux. Selon l'équipe à l'origine d'Espresso, leur solution permet de détecter 99% des bugs dans les applications Android, n'en laissant que peu à tester à la main sur de véritables terminaux, réduisant ainsi l'effort global de test.

Un exemple de test vérifiant qu'une vue ne s'affiche pas pourrait ressembler à cela avec Espresso:

onView(withId(R.id.bottom_left)).check(matches(not(isDisplayed())));

D'autres exemples de tests sont disponibles ici.

Actuellement, Espresso est disponible en version "preview" et accessible sur Google Code mais à terme, l'idée est de l'intégrer dans le SDK Android lorsque le framework sera suffisamment mature et stable. Espresso est déjà utilisé par Google pour tester plus de 30 de leurs applications, dont Google+, Maps et Drive.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT