• 6 hours
  • Easy

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 5/2/24

Découvrez d’autres bugs grâce aux tests exploratoires

Identifiez l’usage des tests exploratoires

Les tests exploratoires permettent d’aller au-delà des tests du cahier de recette. Ils correspondent à une approche de test de logiciel qui consiste à explorer le système de manière informelle et à identifier les problèmes et les anomalies.

Ils sont généralement utilisés en complément des tests du cahier de recette, qui couvrent les fonctionnalités du système de manière formelle et structurée.

Les tests exploratoires sont préconisés dans les cas suivants :

  • lorsque les spécifications sont rares ou non adéquates ; 

  • lorsqu’il existe une contrainte sévère de temps :

    • Il est toujours plus rapide de faire un test directement plutôt que de lire chaque étape et de faire les vérifications manuellement ;

  • pour compléter d’autres méthodes de test plus formelles et détecter davantage de défauts difficilement détectables par des approches plus formelles.

Les tests exploratoires sont des actions simultanées d’apprentissage, de conception et d’exécution des tests.

Pourquoi parle-t-on d’apprentissage et de conception ici ?

Les tests exploratoires sont en opposition avec ceux du cahier de recette qui sont préconçus en amont de l’exécution des tests. Les tests exploratoires sont une phase d’apprentissage car vous découvrez au fur et à mesure de vos tests le site web.

Ils permettent de :

  • trouver des défauts qui ne pourraient pas être découverts par des tests formels et améliorer l’efficacité des tests planifiés : en tant que testeur, avec l’expérience, vous arriverez à utiliser votre temps de manière plus efficace en vous concentrant sur les domaines du logiciel qui sont les plus susceptibles de poser des problèmes ;

  • identifier des problèmes inattendus : en explorant le logiciel de manière flexible, vous pouvez trouver des problèmes qui n’ont pas été identifiés par les tests planifiés. Les tests exploratoires peuvent être particulièrement utiles pour identifier des problèmes de qualité qui pourraient être difficiles à identifier par des méthodes de test plus conventionnelles ;

  • améliorer l’utilisabilité et la stabilité du site ou de l’application ;

  • trouver de nouvelles idées, fonctionnalités et les ajouter au backlog ;

  • développer votre créativité dans les tests : les tests exploratoires peuvent vous encourager à développer votre créativité et à essayer des approches différentes pour tester le logiciel. Cela peut conduire à une plus grande variété de tests, qui peuvent identifier des problèmes que des tests plus conventionnels n’auraient pas identifiés ;

  • trouver des anomalies sur les exigences et la conception, car ces tests ne sont pas basés sur les documents (cahier de recette ou spécifications) ;

  • s’adapter à tous les cycles de vie. Ils ne sont pas réservés seulement à l’Agile ;

  • éviter le paradoxe du pesticide (car deux campagnes de test exploratoires sont toujours différentes) ;

  • diminuer fortement le temps alloué à l’écriture et à la conception des tests ;

  • exécuter un plus grand nombre de tests. 

Effectuez des tests exploratoires

Bien que les tests exploratoires soient plus libres et moins structurés que les tests basés sur des cas de test, il y a tout de même de bonnes pratiques à suivre pour s’assurer de leur efficacité et de leur qualité.

En général, ils sont basés sur des chartes de test et des heuristiques. Expliquons ces deux notions.

D’après Elisabeth Hendrickson, une charte de test pourrait s’écrire de cette façon :

Explorer une “story”, une fonctionnalité, un système avec des ressources, des contraintes, des heuristiques ou persona pour découvrir des informations.

Voici deux exemples de charte de test :

  1. Explorer l’édition de profil avec des “script injections” pour découvrir les vulnérabilités de sécurité.

  2. Explorer l’édition de profil avec différents types d’utilisateurs pour découvrir les interactions entre l’édition de profil et les rôles.

Les chartes de test sont utilisées lors de sessions de tests exploratoires pour cadrer les sessions.

L’organisation d’une session de tests exploratoires répond aux principes suivants :

  • organisation en sessions minutées et limitées par la charte ;

  • pilotage par les chartes de test, une charte = une guideline à respecter ;

  • exécution et description sont faites en même temps ;

  • documentation de toutes les actions ;

  • capture des résultats de test ;

  • les résultats du test précédent guident le test suivant ;

  • utilisation d’outils : heuristiques, persona… ;

  • création d’un rapport permettant de partager les résultats (observations, commentaires, anomalies).

Après la session :

  • discussion des bugs trouvés et consolidation des spécifications (s’il y a besoin).

Voici quelques exemples d’heuristiques de test :

  • Heuristique de comparaison : comparer les résultats obtenus avec les résultats attendus pour s’assurer que les fonctions du logiciel sont correctes.

  • Heuristique de configuration : tester différentes configurations système pour s’assurer que le logiciel fonctionne correctement dans toutes les situations.

  • Heuristique de détection : chercher des signes d’erreurs ou de défauts dans le comportement du logiciel pour trouver les bugs.

  • Heuristique de diversité : tester une grande variété de scénarios pour s’assurer que le logiciel fonctionne correctement dans toutes les situations possibles.

  • Heuristique de l’expérience utilisateur : tester le logiciel du point de vue de l’utilisateur pour s’assurer qu’il est convivial et facile à utiliser.

  • Heuristique de la fiabilité : tester le logiciel pour s’assurer qu’il est fiable et qu’il ne tombe pas en panne.

  • Heuristique de la performance : tester les performances du logiciel pour s’assurer qu’il est réactif et qu’il ne ralentit pas avec l’utilisation.

  • Heuristique de la sécurité : tester le logiciel pour s’assurer qu’il est sécurisé et qu’il ne présente pas de risques pour les utilisateurs.

Il existe de nombreuses autres heuristiques de test. Avec l’expérience, vous choisirez celles qui conviennent le mieux aux spécifications de votre projet. Les heuristiques de test peuvent également être combinées pour créer des approches de test plus complètes et plus efficaces.

Pour vous donner un exemple plus concret d’utilisation, vous pourriez utiliser les heuristiques web suivantes :

Navigation

  • Utiliser la touche Retour

  • Rafraîchir la page

  • Ajouter dans les favoris

  • Hacker l’URL (modifier/supprimer des paramètres…)

  • Plusieurs instances du navigateur ouvertes

Données

  • HTML/JavaScript/SQL Injection

  • Entrées de texte : longue, caractères accentués, asiatiques, spéciaux…

Préférences

  • Javascript Off

  • Cookies Off

  • Sécurité Haute

  • Différents navigateurs

  • Redimensionner la fenêtre du navigateur

  • Changer la taille de la police

Déterminez les limites des tests exploratoires

Intéressons-nous maintenant aux limites des tests exploratoires.

Nous avons vu précédemment que les tests exploratoires ont beaucoup d’avantages mais ils ne sont pas sans inconvénients

  • ils sont très fortement dépendants du testeur : deux testeurs sur une même session et avec la même charte de test ne testeront pas de la même façon et auront des résultats différents ;

  • de même, deux campagnes de tests exploratoires ne sont jamais identiques (même si c’est la même personne qui exécute les campagnes) ; 

  • ils ne sont pas aussi rigoureux et structurés que les tests fonctionnels ;

  • ils sont souvent exécutés de manière informelle et ne couvrent pas toutes les fonctionnalités du système de manière équilibrée ;

  • ils ne sont pas automatisables ;

  • ils ne sont pas suffisants. Ils viennent en complément de l’ensemble des outils déjà à disposition des testeurs. 

À vous de jouer

Pour cette activité, je vous propose de réaliser des tests exploratoires sur deux fonctionnalités. Vous vous limiterez à la validation de ces deux fonctionnalités pour effectuer les tests exploratoires sur le site Jardin Actuel.

Instructions :

  • accédez au site Jardin Actuel ;

  • basez-vous sur les deux fonctionnalités suivantes : 

    • “formulaire de contact”, 

    • “boutons de partage sur les réseaux sociaux” ;

  • exécutez les tests exploratoires pour chacune des deux fonctionnalités. Notez tous les comportements inattendus, les bugs ou les erreurs que vous rencontrez dans le template (tests exploratoires en format .xlxs ou tests exploratoires en format .ods) : un tableau par fonctionnalité ;

  • pour chaque anomalie découverte, documentez-la dans le même template en précisant la description, les étapes de reproduction et les données de test utilisées.

En résumé

  • Les tests exploratoires ne sont pas aléatoires. Ils sont cadrés pour apporter un maximum de résultats.

  • Les tests exploratoires sont exécutés en session et sont basés sur des chartes de test.

  • Une heuristique de test est une méthode de résolution de problèmes qui se base sur une liste de principes, de règles ou de directives existantes pour guider les tests.

  • Les tests exploratoires ont des limites et ne peuvent pas suffire en tant que tels.

Maintenant que vous avez vu les différents types de tests possibles pour découvrir des anomalies, nous allons passer à l’analyse de celles-ci.

Example of certificate of achievement
Example of certificate of achievement