Tests exploratoires en Agile

Les tests exploratoires sont une activité importante dans un environnement agile car ils peuvent aider les testeurs de logiciels à suivre le rythme de développement rapide des projets logiciels agiles.

Tout d'abord, une brève introduction sur la méthodologie agile et les tests exploratoires:

Dans la méthodologie agile, le logiciel est publié en petites itérations. Chaque itération passe par la planification, l'estimation, le développement, l'intégration, les tests et la publication. En raison des versions fréquentes, l'automatisation des tests devient de plus en plus importante car les développeurs doivent obtenir des commentaires rapides sur l'état de l'application. Les contrôles automatisés servent de tests de régression pour s'assurer qu'à chaque version, le logiciel n'a pas régressé.


Les tests exploratoires sont définis comme l'apprentissage simultané, la conception de tests et l'exécution de tests. C'est une approche de test qui valorise le testeur comme partie intégrante du processus de test et partage les mêmes valeurs que le Manifeste Agile:

  • Individus et interactions sur les processus et les outils
  • Logiciel de travail sur une documentation complète
  • Collaboration client sur la négociation de contrat
  • Répondre au changement plus de suivre un plan

Les tests exploratoires sont également complémentaires de l'automatisation des tests; c'est-à-dire que pendant que les contrôles automatisés vérifient les problèmes de régression, les tests exploratoires se concentrent sur les nouvelles fonctionnalités qui ont été développées. Ceci est important car chaque sprint ne dure généralement que quelques semaines, ce qui ne laisse pas suffisamment de temps pour créer des scripts de cas de tests et les exécuter ultérieurement sur l'application. D'autre part, les tests exploratoires dans un environnement agile permettent aux testeurs de se familiariser avec le domaine et l'application et à chaque itération, cette compréhension est améliorée et donc les testeurs deviennent plus efficaces.


Selon Quadrant de test de Brian Marick , il y a deux côtés aux tests, ceux qui prennent en charge la programmation, c'est-à-dire prennent en charge l'écriture de code (tests unitaires) ou fournissent une indication du moment où le programmeur pourrait avoir terminé (tests d'acceptation) et ceux qui critiquent le produit, c'est-à-dire «regarder un fini produit dans le but de découvrir les insuffisances. » C'est ici, dans le domaine de la critique du produit, que les tests exploratoires peuvent jouer un rôle majeur dans un projet agile.

Dans les projets agiles, les tests qui prennent en charge la programmation sont principalement effectués par les développeurs et sont presque toujours automatisés et sont une indication de la réalisation du point de vue du programmeur, tandis que les tests exploratoires visent à trouver des problèmes possibles qui vont au-delà des tests de programmeurs automatisés. Les testeurs exploratoires se concentrent sur les domaines dans lesquels les tests automatisés existants peuvent être insuffisants.

Les testeurs exploratoires efficaces travaillant sur des projets agiles utilisent les tactiques de tests exploratoires pour aider à informer l'équipe de projet des problèmes possibles avec le produit. Leurs tests peuvent être non structurés et freestyle ou être gérés à l'aide de chartes et de sessions de test. En outre, en raison des courts intervalles de développement, les tests deviennent intrinsèquement fondés sur les risques et les tests exploratoires peuvent se concentrer sur les zones à haut risque pour trouver des problèmes potentiels.

Les méthodologies agiles et les tests exploratoires sont des méthodes complémentaires qui, lorsqu'elles sont utilisées ensemble, peuvent créer une excellente synergie au sein de l'expérience de test.