117 votes

TDD vs tests unitaires

Mon entreprise est assez nouveau à l'unité de test de notre code. J'ai lu à propos de TDD, tests unitaires et pour un certain temps et je suis convaincu de leur valeur. J'ai tenté de convaincre les membres de notre équipe qui TDD vaut la peine de faire l'effort d'apprendre et de changer les mentalités sur la façon dont nous programme, mais c'est une lutte. Ce qui m'amène à ma question(s).

Il existe de nombreux sur le TDD de la communauté qui sont très religieux sur l'écriture de l'essai, puis le code (et je suis avec eux), mais pour une équipe qui est aux prises avec le TDD n'est un compromis tout de même apporter des avantages supplémentaires?

Je peux probablement réussir à amener l'équipe à écrire des tests unitaires une fois que le code est écrit (peut-être comme une exigence pour la vérification dans le code) et mon hypothèse est qu'il y a encore de la valeur dans l'écriture de ces tests unitaires.

Quelle est la meilleure façon d'apporter des difficultés de l'équipe en TDD? Et, à défaut, est-il encore utile d'écrire des tests unitaires, même si c'est après le code est écrit?

MODIFIER

Ce que j'ai pris à l'écart de tout cela qu'il est important pour nous de commencer les tests unitaires, quelque part dans le processus de codage. Pour les personnes dans l'équipe qui pickup le concept, commencer à se déplacer de plus en plus vers TDD et les tester en premier. Merci pour tous les commentaires.

SUIVI

Nous avons récemment lancé un nouveau petit projet et une petite partie de l'équipe a utilisé le TDD, le reste a écrit les tests unitaires après le code. Après nous avons enveloppé le codage de la partie du projet, ceux de l'écriture de tests unitaires après le code ont été surpris de voir le TDD codeurs déjà fait et avec de solides code. C'était une bonne façon de gagner plus sceptiques. Nous avons encore beaucoup de douleurs de croissance à l'avance, mais la bataille de volontés semble terminée. Merci pour tous ceux qui ont offert des conseils!

76voto

Justin Niessner Points 144953

Si l’équipe se débat à mettre en œuvre des TDD, mais ils n’étaient pas en train de créer les Tests unitaires avant... puis redémarrez-les au large de la création de Tests unitaires après leur code est écrit. Même des tests unitaires rédigés après le code valent mieux qu’aucun des Tests unitaires à tous !

Une fois qu’ils sont compétents pour les tests unitaires (et tout ce qui vient avec elle), alors vous pouvez travailler sur incitant à créer des tests des première... et deuxième du code.

27voto

Kaleb Brasee Points 25776

Il est absolument encore utile d'écrire les tests unitaires après le code est écrit. C'est juste que parfois c'est souvent plus difficile parce que votre code n'a pas été conçu pour être testable, et vous ont peut-être trop compliqué.

Je pense qu'une bonne façon pragmatique à une équipe en TDD est de fournir la méthode alternative de "test-au cours du développement" dans la période de transition, ou éventuellement dans le long terme. Ils devraient être encouragés à TDD sections de code qui semble naturelle. Cependant, dans les sections de code qui semble difficile à l'approche de test ou lors de l'utilisation d'objets qui sont prédéterminés par un non-agile A&D, les développeurs peuvent l'être compte tenu de la possibilité d'écrire un petit article du code, puis d'écrire des tests pour couvrir ce code, et en répétant ce processus. L'écriture des tests unitaires pour le code immédiatement après l'écriture de ce code est mieux que de ne pas écrire des tests unitaires.

16voto

asbjornu Points 5042

C’est à mon humble avis mieux avoir 50 % couverture de test avec « code tout d’abord, essai après » et une bibliothèque à 100 %, que la couverture de test de 100 % et d’une bibliothèque de 50 % ont terminé avec TDD. Après un certain temps, vos collègues développeurs je l’espère trouveront ludiques et pédagogiques pour écrire des tests pour l’ensemble de la `` code, écrivent-ils, alors TDD va se faufiler son chemin dans leur routine de développement.

12voto

Aaron Digulla Points 143830

Je viens de lire sur un calendrier: "Chaque règle, exécuté à son extrême, devient ridicule, voire dangereux." Donc, ma suggestion est de ne pas être religieux à ce sujet. Chaque membre de votre équipe doit trouver un équilibre entre ce qu'ils se sentent "à droite" quand il s'agit de tester. De cette façon, chaque membre de votre équipe sera la plus productive (au lieu de, disons, en se disant "pourquoi dois-je écrire cette ist**** test??").

Si certains tests sont mieux que rien, des tests d'après le code sont mieux que quelques essais et les tests avant le code est mieux que après. Mais chaque étape a ses propres mérites, et vous ne devriez pas froncer les sourcils sur, même de petites étapes.

12voto

Diego Dias Points 6879

TDD est à propos de la conception! Donc si vous l'utilisez, vous serez sûr d'avoir une testable de la conception de votre code, le rendant plus facile d'écrire vos tests. Si vous écrivez des tests après que le code est écrit qu'ils sont toujours précieuses mais à mon humble avis, vous aurez perdu de temps puisque vous n'aurez probablement pas avoir une conception testable.

Une suggestion que je puisse vous donner, à vous d'essayer de convaincre votre équipe à adopter TDD est l'utilisation de certaines des techniques décrites sur Marie Linn et Linda Hausse du livre : les Motifs de l'Introduction de nouvelles Idées

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X