7
votes

Est agile différent de TDD? Si oui, quelles sont les principales différences?

est agile vraiment différent de TDD? Si oui, quelles sont les principales différences?


1 commentaires

TDD est un développement spécifique, tandis qu'Agile fait référence davantage au style de projet (bien que je reçois ce que vous demandez). TDD peut être une excellente pratique de développement lorsqu'elle est utilisée correctement. Utilisez TDD depuis le début avec la cascade et incorporez-la à la fin de Agile. En plus, regardez BDD car il y a plusieurs fois quand il dépassera TDD


4 Réponses :


8
votes

http://fr.wikipedia.org/wiki/agile_software_Développement

http://fr.wikipedia.org/wiki/test-driven_development < / p>

En bref, TDD et agile se concentrent vraiment sur différents aspects et ne sont pas mutuellement exclusives les uns des autres.

  • TDD est très concentré sur la manière dont le code est écrit (et tend ainsi à viser les cycles de travail de différents groupes de développeurs exclusivement).

  • agile est vraiment axé sur le processus de développement global, et non seulement la manière dont le code est écrit et testé (et concentre donc beaucoup la gestion de projet et les groupes de développeurs, par opposition à la manière dont un développeur donné écrit le code) .


0 commentaires

3
votes

Les différences sont énormes car je pense qu'il y a une distinction très simple:

Agile est une philosophie, tandis que TDD est une méthodologie spécifique.

Il y a un nombre de façons que vous puissiez travailler qui sont agiles, mais que vous faites du TDD ou que vous n'êtes pas.

Vous pouvez être agile sans utiliser TDD (ni une variante de celle-ci) et vous pouvez utiliser TDD sans être agile (bien que je sois un peu surpris).


0 commentaires

9
votes

Agile est tout ce qui est en ligne avec les valeurs énumérées ici - http://agilemeifesto.org/

XP ( Programmation extrême ) est une méthodologie qui qualifie d'agile. Il y en a d'autres aussi (Scrum, Crystal, etc.)

TDD (développement axé sur les tests) est une pratique d'ingénierie spécifique de XP - qui est un moyen d'écrire du code + des conceptions de conduite dans des morceaux incrémentiels. Vous écrivez d'abord un test, faites-la passer avec le changement le plus simple possible, puis le refacteur pour améliorer la structure / la conception. Vous faites cela dans une boucle jusqu'à ce que vous ayez terminé.


0 commentaires

3
votes

Je vais jouer à l'avocat du diable et dire oui. TDD et agile sont la même chose, juste à différentes échelles.

supporter avec moi, ici.

Tout d'abord, TDD vous encourage à avoir un plan de ce que vous voulez réaliser, avant de le réaliser. Vous ne pensez pas comment vous allez y parvenir. Vous pensez simplement comment démontrer que la chose que vous serez sur le point d'écrire est précieuse et que vous entraînez la façon dont vous savez. Ceci est très similaire à la manière dont les projets sont idéalement captivés et les exigences sont rassemblées dans des méthodologies agiles.

Ensuite, vous faites le minimum nécessaire pour obtenir des commentaires sur le travail. Avec TDD, cela signifie une barre rouge ou verte. À un niveau supérieur, les méthodologies agiles vous encouragent à mettre en valeur et à obtenir des commentaires des parties prenantes ou (de préférence) libérer à la production et de voir si cela fonctionne et si quelqu'un l'utilise.

Ensuite, vous travaillez à quel point le prochain travail à faire est et vous écrivez le prochain bit du plan.

Les méthodologies agiles peuvent également utiliser l'estimation et la hiérarchisation, mais elles sont principalement liées à l'attribution de budgets et à déterminer si le travail vaut la peine de faire en premier lieu - quels devs sont naturellement à une petite échelle.

Les méthodologies agiles sont itératives - c'est-à-dire que les périodes de planification, de mise en œuvre, de livraison et de rétroaction sont cycliques. Donc, TDD, avec exactement les mêmes étapes.

Les méthodologies agiles mettent généralement l'accent sur la communication, la conversation et la documentation légère. TDD peut également être utilisé comme une forme de documentation, en particulier si vous effectuez les noms de test dans des phrases significatives et utilisez la même langue que l'entreprise utilise avec des exemples réalistes. Cela peut également encourager la communication et la conversation.

Les méthodologies agiles encouragent la réflexion et l'apprentissage du passé. TDD a ce charmant barre rouge qui peut vous aider à le faire très rapidement.

Si vous échelez sur TDD, vous obtenez des tests d'acceptation ou des scénarios de style BDD. Plus vous commencez à vous lancer dans une injection de fonctionnalités et d'autres formes d'analyse axée sur la vision. Plus loin, vous envisagez de savoir si le projet publié conserve votre part de marché ou fournit les options que vous souhaitez avancer ou atteindre quelle que soit sa vision initiale. Les tests deviennent plus gros, mais le processus d'écriture suffisante, de recevoir des commentaires et d'apprendre continuellement est toujours le même, peu importe la méthodologie agile.

Toutes les règles qui aident qu'Agile à réussir à une grande échelle peuvent être appliquées à TDD à une petite échelle et inversement. (J'essaie d'avoir du mal à penser à des exceptions à cela et que vous ne pouvez pas).

Alors, non. Agile n'est pas différent de TDD. C'est juste TDD-FAIT-FAIT-GRAND.


3 commentaires

+1, malgré un type de désaccord. Vous faites un très bon cas. Mais il y a des aspects d'agiles que TDD et d'elle-même ne touche pas vraiment - je pense principalement aux particuliers et aux interactions sur les processus et les outils; TDD est très un processus et ne fait que peu dans le royaume interpersonnel, seul - bien qu'il coule vraiment bien avec le jumelage, qui est tout à propos de I & I. Toujours - vous faites un bon cas.


Eh bien, je suis plus dans BDD, qui est une variante de TDD que les Tdders décrivent comme "TDD bien fait". Dans BDD, nous utilisons la langue de l'entreprise dans l'ordre pour améliorer la conversation et encourager la communication, et nous l'apprécions plus que nos outils. Je fais quelques sessions à Agile 2010 en fonction de cela, alors merci pour les encouragements!


Vous faites de bonnes arguments, mais vous vous trompez - si seulement pour la raison que vous n'avez pas à faire de TDD pour être agile ou d'être agile pour utiliser TDD. Le cas que vous faites est que TDD est un bon exemple de méthodologie agile et que est absolument vrai, mais de dire que les deux sont identiques est trompeuse - ce qui est, je suppose que cette question se pose en premier lieu.