Tests automatisés : un terme qui prête à confusion.

Un cerveau biologique associé à une carte électronique.

On parle de tests automatisés mais ce terme prête à confusion. Ce que l’on automatise, ce sont des vérifications : des contrôles qui sont faits d’une manière algorithmique.

Le test, quant à lui, consiste en l’évaluation d’un produit par l’exploration et l’expérimentation. C’est une investigation qui peut impliquer, entre autres, l’analyse de risques, la créativité, le questionnement, l’adaptation, l’intuition ou encore la modélisation. Il nous permet de mieux connaître le produit et de capter de l’information pour aider à prendre des décisions quant aux améliorations à faire. Le testeur se construit un modèle mental du logiciel et il va confronter ce modèle au réel pour le réfuter et l’enrichir. Ce modèle mental va aussi permettre au testeur d’améliorer son intuition lorsqu’il teste puisqu’il sera en mesure de mieux reconnaître les patterns à l’œuvre.

Un test automatisé est un script qui va suivre un scénario précis avec un jeu de données connu. Ce script ne nous apprend rien de nouveau. Son objectif est de vérifier qu’un comportement attendu est toujours présent dans l’application d’une version à une autre. Pour construire ces contrôles le testeur se base sur une fraction du modèle mental qu’il a du produit à un instant T. Un script ne nous dit pas si on fait le bon logiciel mais permet de faire du fact-checking.

Les tests automatisés sont d’une aide précieuse pour maintenir dans le temps la stabilité du produit. Cependant, à eux seuls, ils ne sont pas suffisants pour concevoir un produit fiable et pertinent pour ses utilisateurs.

Il n’est pas question d’opposer l’automatisation et le test : l’automatisation vient en support des activités de test. A mon sens, associer le test exploratoire aux tests automatisés est un combo gagnant.