Гибкий отличающийся от TDD? Раз так, каковы основные отличия? [закрытый]

7
задан GBackMania 29 June 2010 в 05:57
поделиться

4 ответа

http://en.wikipedia.org/wiki/Agile_software_development

http://en.wikipedia.org/wiki/Test-driven_development

Короче говоря, TDD и Agile действительно сосредоточены на разных аспектах и не исключают друг друга.

  • TDD очень сфокусирован на том, как пишется код (и, таким образом, имеет тенденцию быть направленным исключительно на рабочие циклы отдельных или небольших групп разработчиков).

  • Agile действительно сосредоточен на общем процессе разработки, а не только на том, как код пишется и тестируется (и, таким образом, уделяет много внимания управлению проектами и группами разработчиков, в отличие от того, как именно конкретный разработчик пишет код).

8
ответ дан 6 December 2019 в 08:14
поделиться

Я сыграю адвоката дьявола и скажу: да. TDD и Agile - это одно и то же, только в разных масштабах.

Потерпите меня, здесь.

Во-первых, TDD побуждает вас иметь план того, чего вы хотите достичь, прежде чем вы его достигнете. Вы не думаете о , как вы собираетесь этого достичь. Вы просто думаете о том, как продемонстрировать ценность того, что вы собираетесь написать, и решаете, как вы это знаете. Это очень похоже на то, как идеально подбираются проекты и собираются требования в Agile-методологиях.

Затем вы делаете минимум, необходимый для получения отзыва о работе. В TDD это означает красную или зеленую полосу. На более высоком уровне методологии Agile побуждают вас продемонстрировать и получить обратную связь от заинтересованных сторон или (предпочтительно) выпустить в производство и посмотреть, работает ли это и использует ли кто-нибудь.

Затем вы решаете, что делать дальше, и пишете следующую часть плана.

Agile-методологии также могут использовать оценку и расстановку приоритетов, но в основном они связаны с назначением бюджетов и выяснением того, стоит ли делать эту работу в первую очередь - что разработчики, естественно, делают в небольших масштабах.

Гибкие методологии являются итеративными, то есть периоды планирования, реализации, доставки и обратной связи цикличны. То же самое и TDD, с теми же шагами.

Гибкие методологии обычно делают упор на общение, беседу и легкую документацию.TDD также можно использовать как форму документации, особенно если вы превратите имена тестов в осмысленные предложения и используете тот же язык, который использует бизнес, вместе с реалистичными примерами. Это также может стимулировать общение и беседу.

Гибкие методологии поощряют размышления и извлечение уроков из прошлого. У TDD есть эта прекрасная красная полоса, которая поможет вам сделать это очень быстро.

Если вы увеличите TDD, вы получите приемочные испытания или сценарии в стиле BDD. Далее вы начинаете изучать внедрение функций и другие формы анализа на основе видения. Еще дальше вы смотрите на то, сохранит ли выпущенный проект вашу долю рынка, или предоставит ли вам желаемые варианты в будущем, или достигнет того, что было его первоначальным видением. Тесты становятся больше, но процесс написания достаточного количества, получения отзывов и непрерывного обучения остается прежним, независимо от методологии Agile.

Все правила, которые помогают Agile добиться успеха в большом масштабе, могут быть применены к TDD в малых масштабах, и наоборот. (Я очень стараюсь придумать какие-либо исключения из этого и не могу).

Итак, нет. Agile не отличается от TDD. Это просто TDD-сделано-больше.

3
ответ дан 6 December 2019 в 08:14
поделиться

Agile - это все, что соответствует перечисленным здесь значениям - http://agilemanifesto.org/

XP ( Extreme Programming ) - методология что квалифицируется как Agile. Есть и другие (Scrum, Crystal, и т. Д.)

TDD (Test Driven Development) - это особая инженерная практика из XP, которая представляет собой способ написания кода + дизайна накопителя инкрементными порциями. Сначала вы пишете тест, проходите его с помощью простейших возможных изменений, а затем проводите рефакторинг для улучшения структуры / дизайна. Вы делаете это в цикле, пока не закончите.

9
ответ дан 6 December 2019 в 08:14
поделиться

Различия огромны, потому что я думаю, что есть очень простое различие:

Agile - это философия, тогда как TDD - это особая методология.

Существует множество гибких способов работы, но в целом вы либо используете TDD, либо нет.

Вы можете быть гибким, не используя TDD (или его вариант), и вы можете использовать TDD, не будучи гибким (хотя я был бы несколько удивлен).

2
ответ дан 6 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: