BDD / TDD против JAD? - PullRequest
       18

BDD / TDD против JAD?

6 голосов
/ 07 января 2011

Я предлагал, чтобы мое рабочее место внедрило Behavior-Driven-Development, написав высокоуровневые спецификации в формате сценария, и таким образом, чтобы можно было представить написание теста для него.

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

Однако трудно доказать ценность этого для бизнеса.

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

Итак, они спрашивают, почему разработчики должны работать с тестовыми примерами, созданными тестерами? Они предназначены для проверки и основаны на высокоуровневых спецификациях, созданных командой UX, с которыми разработчики в настоящее время работают.

Они говорят, что этого достаточно для разработчиков, и нет необходимости менять способ написания спецификаций.

Кажется, у них есть смысл.

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

Ответы [ 4 ]

3 голосов
/ 10 января 2011

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

Что происходит в вашей ситуации, и вы думаете, что это улучшится?

Основное преимущество BDD заключается в улучшении взаимодействия между заинтересованными сторонами и разработчиками.

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

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

2 голосов
/ 16 ноября 2011

Это отличный вопрос, на самом деле это вопрос "нижней строки", когда речь идет о BDD.Одна из главных проблем TDD или написания юнит-теста заключается в том, что разработчики никогда не получают более широкой картины и бизнес-перспективы.Упражнение по написанию спецификаций и созданию модульных тестов для проверки реальных «бизнес-сценариев» помогает разработчикам подняться над «мастерством» и понять перспективы бизнеса.Проверьте это сообщение для более подробной информации,

http://codingcraft.wordpress.com/2011/11/12/bdd-get-your-tdd-right/

1 голос
/ 13 января 2011

Это может помочь думать о BDD в его самой легкой форме; как дискуссии вокруг конкретных сценариев.

У вас есть варианты использования. У вас есть свои требования. Теперь вы хотите убедиться, что вы действительно хорошо понимаете их. Итак, кто-то - может быть, разработчик, может быть, тестер - говорит: «Хорошо. Просто чтобы убедиться, что я понимаю ... учитывая, что мы начинаем с , когда пользователь делает , тогда должно произойти . не так ли? "

И тестер скажет: «Да, все верно».

Тогда UX или аналитик говорит: «Ну, это правильно, если <этот другой контекст не существует>».

При обсуждении сценариев время, затрачиваемое на то, чтобы у всех было общее понимание, резко сокращается. Обычно мы скрываем очевидные сценарии и фокусируемся на крайних случаях; на новых предметных терминах, понятиях, которые различаются между отделами, сложные взаимодействия с унаследованными системами.

Разработчики на самом деле не работают над тест-кейсами. Они работают исходя из требований и критериев приемлемости точно так же, как и всегда. Тестовые случаи просто становятся примером того, чего они могут ожидать; сценарии, в которых пользователи получают выгоду или передают ценность системы. Автоматизация этих тестовых случаев может быть полезна, поскольку усилия по тестированию увеличиваются примерно пропорционально размеру базы кода.

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

0 голосов
/ 06 декабря 2011

Я только что натолкнулся на этот вопрос и подумал, что смогу взвесить, потому что это действительно очень интересный вопрос.

Методология нарушается, только если вся команда чувствует, что она сломана, и если конечный результатнеудачный проект.

Если существующая система работает хорошо, тогда вам действительно нужно спросить себя: «Могу ли я так работать, даже если я предпочитаю BDD / TDD?».Если ваш ответ отрицательный, и вы чувствуете, что, возможно, недовольны работой с какой-либо другой системой, то, возможно, это указывает на то, что вашей карьере нужно перейти в другое место.Если да, то обними систему.

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

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

: -)

...