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