
La communauté agile taraudée par un débat autour du TDD
« Le TDD est mort ? Ou pas ? » Telle est la question qui taraude l’esprit de la communauté agile en ce moment, vu l’importance du TDD (Test Driven Development – Développement piloté par les tests) dans l’une des méthodes agiles les plus réputées : la méthode XP.
À l’origine de ce débat houleux, David Heinemeier Hansson (DHH) auteur de Ruby on rails et fondateur du Basecamp et ses deux posts intitulés : « TDD is Dead – Long Live Testing » et « Test-induced design damage».
Dans les faits, DHH critique ouvertement le TDD en notant certaines mauvaises pratiques telles que :
- Concevoir le modèle de son application à partir des tests unitaires n’est pas bénéfique.
- Trop se focaliser sur les tests unitaires ne permet pas de concevoir de bons systèmes, de plus cela fait oublier généralement les tests systèmes.
- Les développeurs pensent que le développement logiciel est une science, alors que cela ressemble plus à de l’écriture et à la créativité.
Les critiques à son encontre n’ont pas tardé à fuser de toute part et dans tous les sens, mais une chose est sure, les réponses ont mis l’accent sur la nécessité d’appliquer le TDD de manière pragmatique.
À titre d’exemple, Robert Martin, développeur logiciel de renom, estime pour sa part que : « si l’on ne fait pas de TDD ou quelque chose d’aussi efficace, alors on devrait se sentir mal ». Il explique aussi pourquoi les développeurs ont recours au TDD :
- Le TDD se traduit par moins de débogage.
- Les tests font office de documentations exactes, précises et sans équivoque au plus petit niveau du système.
D’autres ont répondu à cette critique dans un nouveau post. C’est le cas de Gergely Brautigam qui a posté un article intitulé « TDDD is Dead – Not really ». Ce dernier explique que le TDD ne peut être mort avec autant d’adeptes et qu’à l’image d'autres concepts informatiques, cela ne peut avoir lieu. Il estime que le TDD pourrait évoluer vers quelques choses de nouveau, de mieux comme beaucoup d’autres concepts en informatique.
Aussi, pour Gergely Brautigam, il est important d’avoir des tests à différents niveaux même si de telles pratiques sont rarement appliquées vu le rythme de développement effréné et le stress que subissent les développeurs, ce qui donne lieu à des négligences en matière de qualité de code.
Enfin, un autre intervenant, Gil Zilberfeld, cite un passage du manifeste agile : « nous découvrons de meilleures façons de développer des logiciels en les faisant et en aidant les autres à le faire . Un passage lourd de sens, comme pour dire que le TDD n’est qu’un outil et une manière de faire parmi tant d’autres après tout.
Et vous ?


Vous avez lu gratuitement 9 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.