Deamonspace

Certifié dernier site avec un curseur custom

Pourquoi tester ?

| Aucun commentaire

C’est souvent la question qu’on évoque un peu sur le ton de la plaisanterie au démarrage d’un projet, au moment où on se dit que le chiffrage est un peu large, et qu’on cherche quoi faire sauter. Donc pour la prochaine fois où interviendra la grande question « Pourquoi tester ? », voici quelques éléments de réponse.

Régis

Reprenons l’exemple du distributeur de nourriture de mon article où je m’épanchais sur ma vie. J’y disais qu’un projet complexe est un projet qui a évolué. Et comment a-t-il pu évoluer ? Parce qu’à chaque itération, on s’est assuré que ce qui était en place fonctionnait toujours. Pour continuer sur cet exemple, vous avez défini un structure à compartiments pour votre machine, et au moment où votre collègue (appelons-le Régis) constructeur de distributeur ajoute la vitre. Il va y avoir deux scénarios :

  1. Vous avez des tests automatisés (spoiler : c’est le bon scénario) : vous vous rendez compte immédiatement que votre vitre bouche toute la première rangée des compartiments, parce que vous n’avez pas prévu assez d’espace entre eux et ladite vitre. Vous rajoutez de l’espace ou vous supprimez la rangée et vous revenez dans un cas nominal qui fonctionne.
  2. Vous n’avez pas de des tests automatisés : vous ne vous rendez pas compte que Régis a mis la vitre trop près. Mais ce n’est qu’à moitié sa faute, il ne savait pas forcément que les produits à vendre se situeraient si près, le test n’était pas là pour passer au rouge quand il l’aurait exécuté. Vous ne vous en rendrez compte que plus tard, au moment d’ajouter les produits du coup, et vous aurez à défaire une partie de ce que vous avez mis en place depuis.

Du coup, pourquoi tester, et bien :

  • Vous rendez possible un refactoring qui ne soit pas long et fastidieux, pour ne pas dire impossible. Un code testé à la main devient legacy, et c’est la raison pour laquelle certaines sociétés ont des projets appelés « Celui-là touche pas au code, sinon tu pètes tout » sur lesquels on se contente de faire des copier-coller de choses qui fonctionnent dans le temps.
  • Vous faites évoluer le projet sereinement. Un ensemble de tests (maintenus) verts, c’est l’assurance que tout ce que vous avez produit jusqu’ici est conforme au comportement attendus, du moins celui que vous avez implémenté. Si ce comportement doit changer (et il va changer !), vous en verrez immédiatement les impacts dans vos tests.
  • Vous aidez ceux qui devront travailler avec vous. Votre pote Régis là, s’il avait vu un test qui mesure la distance disponible devant la première rangée de produits, il aurait su que sa vitre devait se situer au-delà de cette distance. Bon il aurait pu lire les spécifications aussi, mais il aurait pu oublier ce détail, et le test le lui aurait rappelé.