Tomasz Wegrzanowski, développeur logiciel à Londres, a publié récemment un billet de blog critiquant la dégradation de la qualité des tests unitaires.
« Il était une fois, avant que le testing soit devenu généralisé, je croyais que les tests unitaires amélioraient considérablement la qualité des logiciels » déclare-t-il, « il était extrêmement évident combien était horrible le code qui ne possédait pas de tests unitaires, et le code qui en avait était généralement beaucoup plus organisé. Quelques années plus tard, une fois que les tests ont commencé à devenir la nouvelle orthodoxie, je commençais à remarquer quelque chose de nouveau : du code raisonnablement couvert par des tests unitaires, mais qui était de l’intérieur un désordre total ».
Le problème selon lui est que les tests automatisés protègent le code des bugs selon le modèle du 80:20. En d’autres termes : 20% des tests permettent de capturer 80% des problèmes, ce qui implique que 80% des tests ne capturent que les 20% des bugs restants. Ceci pousse donc Wegrzanowski à considérer les tests uniquement pour les parties de base du code, ce qui permet selon lui de couvrir « la majorité des cas courants » avec « seulement une fraction de temps pour écrire et maintenir les tests ».
Un autre problème selon lui -hormis le fait que les tests unitaires ne permettent pas de découvrir les bugs graves tels que les failles de sécurité- c’est qu’ils ne permettent pas de tester un composant individuel s’il ne peut pas être isolé de l’ensemble du système. Ceci obligeait donc les programmeurs à réécrire leurs codes d’une façon « démêlée » ce qui améliorerait grandement la qualité du code selon Tomasz Wegrzanowski, jusqu’à ce que « quelqu’un inventa le Mocking et fasse tout casser ».
Selon lui, les Mocks ne « testent pas grand-chose et donnent une fausse confiance ». Ces objets simulés qui reproduisent le comportement d'objets réels ne peuvent pas faire de mal s’ils sont utilisés avec réserve déclare l’auteur du billet, mais cela nécessite « beaucoup de discipline » selon lui puisqu’on est tenté de se dire « bon, je pourrais tester ceci correctement, mais le Mocking est plus facile, je vais donc juste écrire quelques faux tests sous pression ».
Pour Wegrzanowski les Mocks souffrent du même problème que le C ++ : « quasiment chaque fonctionnalité ajoutée était là pour une raison. Mais ça n'a pas d'importance, car le résultat final de l’ajout le toutes ces fonctionnalités sans distinction était un désastre total ».
Source : TAW’s Blog
Et vous ?
Êtes-vous d’accord avec l’avis de Tomasz Wegrzanowski ?
Que pensez-vous de l’utilisation des Mocks dans les tests unitaires ?
Les Mocks détériorent-ils les tests unitaires ?
Selon un développeur, le testing se portait mieux avant
Les Mocks détériorent-ils les tests unitaires ?
Selon un développeur, le testing se portait mieux avant
Le , par Amine Horseman
Une erreur dans cette actualité ? Signalez-nous-la !