Qu’est-ce que le monkey testing dans les tests de logiciels ?


Le test du singe est une technique de test logiciel où l’utilisateur teste l’application en fournissant des entrées aléatoires et en vérifiant le comportement (ou en essayant de faire planter l’application). La plupart du temps, cette technique est réalisée automatiquement, l’utilisateur saisissant des entrées invalides aléatoires et vérifiant le comportement.
Comme nous l’avons dit précédemment, il n’y a pas de règles ; cette technique ne suit pas de cas de test ou de stratégie prédéfinis et fonctionne donc selon l’humeur et l’intuition du testeur.
Souvent, cette technique est automatisée, ou plutôt je devrais dire que vous pouvez écrire des programmes/scripts qui peuvent générer des entrées aléatoires et les introduire dans l’application testée et analyser le comportement. Cette technique fonctionne très bien lors des tests de charge/stress lorsque vous essayez de casser votre application en fournissant des entrées aléatoires sans arrêt.
Avant de parler de ”Singe”, laissez-moi vous présenter le ”Cheval”.
Vous voyez une bride dans un cheval, n’est-ce pas ? Elle est utilisée pour diriger et contrôler le cheval afin qu’il ne perde pas son attention et se concentre uniquement sur la course en ligne droite sur la route.
De même, qu’il s’agisse de tests manuels ou automatisés, nous sommes comme un cheval dans les tests parce que nous sommes dirigés et conduits par les cas de test/plans et stratégies, et contrôlés par les mesures de qualité. Parce que nous avons une bride autour de nous, nous ne voulons pas détourner notre attention et nous concentrer strictement sur l’ensemble des cas de test et les exécuter docilement.
C’est très bien d’être un cheval, mais parfois, n’aimez-vous pas être un singe ?
Le test du singe consiste à ”faire ce que vous voulez, automatiquement”.
Cette technique de test est un peu chaotique car elle ne suit aucun modèle spécifique. Mais la question ici est


POURQUOI ?

Lorsque vous exposez une grande application web au monde, pouvez-vous imaginer le type d’utilisateurs auxquels vous destinez votre application ? Il y a certainement de bons utilisateurs, mais vous ne pouvez pas être sûr qu’il n’y aura pas de mauvais utilisateurs. Il y a un nombre ”n” de mauvais utilisateurs, qui sont aussi comme des singes et qui aiment jouer avec l’application et fournir des entrées étranges ou importantes ou casser les applications.
Par conséquent, pour tester ces lignes, nous, les testeurs, devons aussi devenir des singes, réfléchir et finalement tester l’application afin qu’elle soit à l’abri des méchants singes de l’extérieur.


Types de singes

Il y en a 2 : les smarts et les dumb


Smart Monkeys

Un smart monkey est identifié par les caractéristiques suivantes:
  • Il a une brève idée de l’application
  • Ils savent où les pages de l’application vont rediriger.
  • Ils savent que les entrées qu’ils fournissent sont valides ou invalides.
  • Ils travaillent ou se concentrent pour casser l’application.
  • Dans le cas où ils trouvent une erreur, ils sont assez intelligents pour déposer un bug.
  • Ils sont conscients des menus et des boutons.
  • C’est un bon moyen de faire des tests de stress et de charge.


Dumb Monkeys

Un dumb monkey est identifié par les caractéristiques suivantes :
  • Il n’a aucune idée de l’application.
  • Il ne sait pas si les entrées qu’il fournit sont valides ou non.
  • Il teste l’application de manière aléatoire et ne connaît pas le point de départ de l’application ni le flux de bout en bout.
  • Bien qu’ils ne connaissent pas l’application, ils peuvent eux aussi identifier des bogues tels qu’une défaillance de l’environnement ou du matériel.
  • Ils n’ont pas une grande idée de l’interface utilisateur et des fonctionnalités.


Le résultat :

Les bogues signalés à la suite des tests Monkey nécessitent une analyse détaillée. Comme les étapes de la reproduction du bug ne sont pas connues (la plupart du temps), recréer le bug devient difficile.
Je pense qu’il serait bon que cette technique soit utilisée à la fin de la phase de test, lorsque toutes les fonctionnalités sont testées et qu’il y a un certain niveau de confiance dans l’efficacité de l’application. Le faire au début de la phase de test serait plus risqué. Si nous utilisons un programme ou un script qui génère des entrées aléatoires valides et invalides, l’analyse devient un peu plus facile.


Avantages du test Monkey :

  • Peut permettre d’identifier certaines erreurs prêtes à l’emploi.
  • Facile à mettre en place et à exécuter
  • Peut être réalisé par des ressources ”moins qualifiées”.
  • Une bonne technique pour tester la fiabilité du logiciel.
  • Peut identifier des bogues qui peuvent avoir un impact plus important.
  • Pas coûteux


Inconvénients du test Monkey :

  • Cela peut durer des jours jusqu’à ce qu’un bogue ne soit pas découvert.
  • Le nombre de bogues est moindre
  • Reproduire les bogues (s’il y en a) devient un défi.
  • En dehors de certains bogues, il peut y avoir des résultats ”non attendus” d’un scénario de test, dont l’analyse devient difficile et prend du temps.


Conclusion

Bien que nous disions que le ”Test Monkeys” ou le ”Monkey testing” est chaotique, il est recommandé de le planifier et d’y consacrer du temps lors de la phase ultérieure.
Bien que dans les phases initiales de cette technique, il se peut que nous ne trouvions pas de bons bugs, nous pouvons finalement découvrir de très bons bugs comme des fuites de mémoire ou des plantages de matériel. Dans le cours normal de nos tests, nous ignorons normalement de nombreux cas en pensant que ”ce scénario” ne se produira jamais, mais s’il se produit, il peut avoir un impact sérieux (par exemple, un bug de faible priorité et de haute gravité).
Faire des tests de type ”singe” peut en fait permettre de découvrir ces scénarios. Si nous rencontrons une telle situation, je vous recommande de trouver du temps pour l’analyser et essayer de trouver une solution.
À mon avis, le meilleur moyen est d’avoir à la fois le ”cheval” et le ”singe”.
Grâce au ”cheval”, nous pouvons suivre une méthode de test bien planifiée, bien définie et sophistiquée, et grâce au ”singe”, nous pouvons découvrir des situations vraiment désagréables ; ensemble, ils peuvent contribuer à améliorer la qualité et la confiance dans le logiciel.