Rehia, le blog

Old and recent learnings and thoughts

Tests unitaires et TDD : Aidez moi ! Je suis bloqué !

09 May 2012

Les 24 et 25 mai prochains, j’animerai une session pas tout à fait comme les autres, que j’ai intitulée : « Tests unitaires et TDD : Aidez moi ! Je suis bloqué ». Lors de cette session, je proposerai au public quelques situations que j’ai rencontrées dans ma démarche d’apprentissage du TDD, voire du BDD, et d’écriture de tests unitaires, et que je ne sais toujours pas très bien résoudre…

Vous l’avez compris, ce n’est pas moi qui apporterai la matière, c’est-à-dire les réponses possibles à ces situations, mais le public ! Une session que je souhaite participative. Bien que je n’aie jamais ni organisé ni même participé à ce type de session, je me suis lancé. Un peu dans la lignée de mes derniers billets de blog sur l’importance de l’échec, j’expérimente, je prend un risque, je me mets en danger… Car si effectivement, il n’y a que peu de monde pour essayer de donner quelques éclairages, la session risque de ne pas durer très longtemps 🙂

Mais soit, depuis un certain temps je note quelques situations que j’aimerais présenter. Mon but n’est pas de les exposer ici. Et si vous avez l’occasion de vous rendre à Agile France, et participer à cette expérience, vous pourrez les découvrir. De toutes façons, il n’y a rien d’extraordinaire, et la session est au niveau Ha de Shu-Ha-Ri (c’est-à-dire moyen).

J’ai aussi prévu de demander au public de soumettre quelques situations qui leur viendraient à l’esprit. Le risque de cette session étant de ne pas avoir suffisamment de situations à proposer, je me suis dit que vous faire participer, vous lecteurs de ce blog, pouvait être une bonne idée ! Cela vous permettrait d’obtenir une ou plusieurs réponses à des questions que vous devez certainement vous poser comme moi, dans votre démarche d’apprentissage. Donc allez-y ! C’est ouvert !

Je ne vous promets pas de tout retenir, simplement parce que mon backlog n’est pas vide, et qu’il faut également que je m’approprie votre problème pour le restituer au mieux le jour de la conférence. Si c’est le cas, nous pourrons travailler sur un exemple qui mettra votre problème en situation et ainsi recueillir éventuellement des éclairages de participants. Pour vous lâcher, vous pouvez utiliser les commentaires, par mail, twitter, etc. Je ne manquerai pas, évidemment, de vous faire un retour une fois Agile France passé.

Edit : Comme me le suggère Xavier dans les commentaires, voici un ou deux exemples de situations que je vais proposer. Je ne vous révèle pas tout, sinon la session perd de son intérêt. Et si d’aventure vous avez des solutions ou simplement des avis, merci de les mettre de côté  pour la session ou pour un peu plus tard :).

  • Méthode « passe-plat » : j’ai par exemple une façade F, avec une méthode A qui encapsule simplement l’appel à une méthode B d’un collaborateur C, B ayant un nom différent de A, mais, admettons, les mêmes paramètres. Dois-je écrire un test unitaire pour A si je suis censé faire du TDD ?
  • J’ai le sentiment qu’une classe B sera nécessaire pour réaliser un traitement. La classe B sera utilisée par A, qui existe et doit donc évoluer. Dois-je d’abord ajouter des tests à A et faire émerger B ? ou directement créer B en TDD puis le faire utiliser par A ?

Alors à vos contributions et merci de votre participation !