Le monkey testing

xpeho
4 min readDec 16, 2021

--

Chez XPEHO nous aimons la mobilité. Nous avons donc monté notre équipe actuellement constituée de développeurs passionnés par le développement mobile.

Comme dit dans notre dernier article ( https://medium.com/@xpeho.mobile/xpeho-a-testé-jetpack-compose-7c6493673cd2 ), nous nous lançons dans le partage de connaissances à travers des meetups, des publications de vidéos ou encore des articles.

Et aujourd’hui nous avons décidé de vous parler de monkey testing !

A quoi ça sert ?

Le monkey testing est une méthode de test de logiciels ( applications mobiles, sites web, etc… ) dans laquelle un testeur ( humain ou automatisé ) appelé le “singe” va effectuer une série d’événements aléatoires pour voir s’il est possible de créer des réactions non souhaitées ( bugs, crashs, etc… ).

Par qui c’est fait ?

Le monkey testing a été réalisé pour la première fois en 1983 par Apple afin de tester les applications MacWrite et MacPaint sur Macintosh.

A l’époque, l’équipe de Steve Capps a souhaité mettre en place un programme qui générerait des événements ( utilisation des menus, événements de fenêtre, interactions avec d’autres applications, etc… ) aléatoirement et plus rapidement qu’un être humain, tel un singe qui viendrait taper de manière répétée sur un clavier.

De là naquit le monkey testing.

Aujourd’hui, il existe différentes manières de faire du monkey testing, vous pouvez tout simplement effectuer les tests vous-mêmes ou mettre en place des scripts qui le feront pour vous. Mais il existe aussi des scripts tout préparés, des sites web pouvant en attaquer un autre, ou encore plusieurs outils Android utilisables via adb.

Les avantages et désavantages connus :

Avantages :

  • Le monkey testing est une bonne méthode pour découvrir de nouveaux bugs/crashs qu’une personne connaissant son logiciel, et effectuant des scénarios bien précis dont il a l’habitude ne pourrait voir
  • Le monkey testing ne demande presque aucune ressource pour être effectué ( un device, un outil, un logiciel ), ce qui le rend peu coûteux
  • C’est une méthode très simple d’utilisation, aucune compétence technique n’est requise
  • C’est facile à mettre en place, comme les événements sont aléatoires, il n’est donc pas nécessaire d’imaginer des scénarios précis pour les tests

Désavantages :

  • Les événements étant aléatoires, il est parfois difficile de reproduire un bug/crash qui s’est produit
  • Il est possible qu’un événement ne soit jamais réalisé dû à l’aléatoire, ce qui peut nous faire manquer des bugs/crashs
  • Si l’on cherche à tester une partie précise d’un logiciel, cela peut prendre du temps comme nous ne définissons pas de scénarios précis

Les différents types de tests :

Avec le monkey testing, nous pouvons identifier 3 types de tests ou plutôt 3 types de “singes” :

Le singe “stupide”

  • Il ne connaît rien du logiciel testé
  • Il ne connait pas l’impact de ses actions
  • On ne peut prévoir la fiabilité de ses tests

Le singe “intelligent”

  • Il sait à quoi sert le logiciel testé
  • Il sait ce qu’il peut/ne peut pas faire sur le logiciel
  • Il tente des évènements plus logiques que le singe “stupide”

Le singe “brillant”

  • Il connaît parfaitement le logiciel testé
  • Il connaît l’impact de ses actions
  • Il sait comment les utilisateurs ont l’habitude de se servir du logiciel

Le plus simple et rapide à mettre en place étant le singe “stupide”.

Comment lancer un test mobile ?

Dans notre cas, nous sommes une équipe qui s’intéresse à la mobilité, nous allons donc vous montrer comment tester une application mobile.

Pour effectuer nos tests, nous utiliserons notre application YouCompose qui a été développée pour la réalisation de notre article sur jetpack compose.

Notre article jetpack compose

https://medium.com/@xpeho.mobile/xpeho-a-testé-jetpack-compose-7c6493673cd2

L’application

https://github.com/XPEHO/YouCompose

Le test

Premièrement, connectez votre device afin de pouvoir utiliser adb.

Afin de vérifier si votre device est bien connecté, vous pouvez utiliser la commande :

adb devices

Une fois votre device prêt, assurez-vous que votre application soit correctement installée.

Il ne reste plus qu’à lancer le test en renseignant le package de l’application à tester avec la commande :

adb shell monkey -p your.package.name -v 500

Dans notre cas :

adb shell monkey -p fr.piotrfleury.youcompose -v 500

L’option -v permet de définir le nombre d’évènements que vous souhaitez effectuer, vous pourrez trouver d’autres informations via ce lien :

https://developer.android.com/studio/test/monkey

Et voilà ! Il ne vous reste plus qu’à admirer le singe s’amuser avec votre application.

Faites tout de même attention à votre device, nous conseillons d’utiliser un device de test à la place d’un device personnel, le singe pouvant déclencher divers événements que l’on ne sait pas toujours comment annuler.

D’autres tests similaires

Dans cet article, nous parlons principalement de monkey testing, mais il existe d’autres concepts similaires tels que le gorilla testing et le adhoc testing.

Le gorilla testing est exactement le même que le monkey testing mais il se basera sur une partie précise d’un logiciel là où le monkey testing se base sur l’entièreté du système.

Quant à l’adhoc testing, le testeur va venir séparer les différentes parties du logiciel et les tester séparément.

Conclusion

Pour plus d’informations, vous pouvez aller regarder notre vidéo sur le sujet :

https://youtu.be/f4RUaYmL0HA

Merci d’avoir pris le temps de lire cet article, on se retrouve plus tard !

Notre site officiel: https://xpeho.fr/

A propos de l’auteur

Nathan Vande Perre

Article rédigé par :

Nathan Vande Perre

Développeur mobile chez XPEHO

https://xpeho.fr/

--

--