Les tests exploratoires (TE) sont issus d’une approche dans laquelle les testeurs sont impliqués à la planification des tests en se basant sur une charte qui définit les objectifs d’une session TE. Dans un projet agile, ils sont indispensables en raison du temps très court lié au sprint de courte durée pour l’analyse des tests et des user stories.

 

Processus de test exploratoire

 

Les tests exploratoires ont un processus tridimensionnel. On teste un produit logiciel et on  évalue sa qualité en utilisant plusieurs techniques.

Il existe deux types de TE, les tests exploratoires libres et les tests exploratoires gérés par session.

  • Le test exploratoire libre (Freestyle Exploratory Testing) : Ce type de test se fait sur des sessions munies d’une charte. La charte est basée sur des sessions qui décrivent  les tests et identifient les techniques associées lors de leurs exécutions. Le rapport de test, fourni à la fin de la session, présente les bugs détectés au cours de l’exécution.
  • Les tests exploratoires gérés par session (Session Based Test Management SBTM) : C’est une approche structurée de TE pour contrôler le TE libre. La SBTM se base sur la planification et la répartition des sessions. Chaque session est identifiée par une charte qui décrit la mission de test à exécuter. La granularité de détails de chaque charte varie selon leur importance de risque et de la difficulté de la mission. Le rôle de SBTM est le contrôle et la mesure sur le TE libre tout en gardant les aspects essentiels tels que  l’improvisation, l’exploration et la créativité.

Figure: Processus du SBTM(Session Based Test Management)

Les compétences nécessaires pour les tests exploratoires :

 

La pensée latérale

La pensée latérale traite les problèmes avec un esprit créatif et indirect.

La créativité et cette pensée  sont cruciales pour réussir les tests exploratoires. Il est presque impossible de trouver des bugs et d’autres problèmes sans sortir des sentiers battus.

Esprit critique

La réflexion d’une manière critique met en valeur la capacité du testeur à réfléchir en utilisant un raisonnement d’une manière rationnelle. Cette manière facilite la découverte des relations cachées entre les différentes variables et par la suite elle augmente la possibilité de trouver des bugs de degré de risque important par rapport à l’esprit conventionnel qui ne  les révélerait pas.

Avec l’esprit critique, le testeur propose divers arguments pour justifier les explications et les codes ce qui conduit à de nouvelles hypothèses.

Compétences d’investigation   

Ces compétences sont essentielles pour les tests exploratoires dont l’objectif est d’enquêter et de trouver des bugs . Les compétences d’investigation fournissent une méthodologie que les testeurs exploratoires peuvent utiliser pour découvrir et reproduire les bugs. Les testeurs peuvent mettre en place un plan d’attaque lors de la recherche de bugs et ils seront familiarisés avec les signes indiquant que la méthode choisie nécessite des ajustements.

Compétences en narration

Les tests exploratoires nécessitent la capacité de raconter l’histoire de l’application ou du site web que vous testez. Lors de l’examen de l’application, on crée des comptes rendus des différentes utilisations du logiciel. Ensuite on transforme ces histoires en réalité en suivant les étapes.Ce qui entraînerait soit une utilisation conforme soit la découverte de bugs. Si on trouve un bug, c’est un point culminant de l’histoire qui nécessite une résolution par l’équipe de dev.  

Compétences en communication

Le testeur exploratoire doit avoir la capacité de communiquer avec les différents membres de l’équipe. Cette coordination assure que le testeur ne néglige aucun détail de l’application. S’il  trouve un bug, le testeur doit décrire les étapes qui ont conduit à la reproduction de l’anomalie, d’une manière précise et détaillée,afin de guider les développeurs pour trouver la cause et la corriger.

Compétences techniques

Les tests exploratoires nécessitent des compétences assez approfondies pour comprendre les programmes et utiliser le codage, car ces tests traitent l’ensemble de la pile de l’interface utilisateur aux couches logicielles sous-jacentes. 

 

Les avantages de l’utilisation des Tests exploratoires

  • Aide à explorer les problèmes critiques.
  • Nécessite une planification minimale et les testeurs décident en permanence de leur prochaine étape de test.
  • Un grand nombre de bugs peuvent être découverts.
  • Garanti le test à de nouveaux environnements en temps limité en cas d’exigences instables.

En conclusion les tests exploratoires (TE) ne sont pas exécutés d’une manière aléatoire, mais ils sont complémentaires aux tests fonctionnels, les tests manuels et les tests automatisés dont le but est de livrer un produit de qualité.