Le test EST la spec ... đŸ€”

L’idĂ©e est Ă  la mode, depuis Agile. Soutenue frĂ©quemment par les meilleurs.

Prenons l’implĂ©mentation d’une password policy comme exemple, et voyons de quoi il retourne si l’on accepte que la suite de tests EST la spec.

1ïžâƒŁ Pas de test = pas de spec.

Tous les mots de passe sont admis, ou tous interdits. On ne sait pas,... mais on saura quand on aura testé, promis.

2ïžâƒŁ Ajouter des tests incrĂ©mentalement (p.ex. TDD) c’est changer la spec.

Il n’y a pas une password policy, il y en a autant que d’incrĂ©ments. Autrement dit, la password policy change au fur et Ă  mesure qu’on la teste.

3ïžâƒŁ Les bugs n’existent pas.

Un bug c’est un Ă©cart entre la spec et l’implĂ©mentation. Si les tests sont la spec, alors aucun bug n’existe quand les tests sont verts. Dites-le donc aux utilisateurs pour voir (« dĂ©solĂ©, c’est pas un bug, tous les tests passent »).

👉 DĂ©solĂ©, ça tient pas đŸ€·â€â™‚ïž

La pensĂ©e Test = Spec vient du BDD/TDD. Ces techniques bien utiles permettent de dĂ©couvrir la spec par induction. Quitte Ă  s’arrĂȘter en chemin et de conclure "rien ne sert d’aller plus loin, disons que ma suite de tests est ma spec, jusqu'Ă  preuve du contraire".

đŸŽ¶ La spec nous Ă©chappe. Soit. Elle ne s’exprime jamais autant que quand elle nous rattrape đŸŽ¶

Le développement logiciel est affaire de pensée précise. Confondre des concepts logiques est une pente glissante...

Si par exemple vous avez pensĂ© "ben oui" aux points 1ïžâƒŁ, 2ïžâƒŁ, ou 3ïžâƒŁ vous confondez sans doute la Spec et votre ImplĂ©mentation.

Rien n’est plus dangereux en vrai.
Relisez tout cela calmement.

#SoftwareEngineering

Retour