В чем разница между «особенностью» и «историей» в разработке, управляемой поведением? - PullRequest
2 голосов
/ 25 ноября 2010

Я работаю над продуктом и использую Pivotal Tracker для написания пользовательских историй, но я довольно плохо знаком с BDD и XP и новее для Cucumber. Так что я немного запутался в терминологии. В чем разница между историей и огурцом? Оба представляют собой простые описания, состоящие из трех частей - актер, действие и бизнес-ценность. Правильно? Так что, если у меня уже есть история, написанная в Pivotal Tracker, я должен просто скопировать ее прямо в функцию Cucumber? Может ли одна история иметь несколько функций?

Что ты думаешь?

Ответы [ 3 ]

4 голосов
/ 25 ноября 2010

Функция - это полноценная функциональность, готовая к запуску.Например, функция может быть профилем пользователя, дополненным страницей регистрации, проверкой, фотографиями и т. Д.

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

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

Возможно, вам будет интересно узнать о внедрении функций - BDD в области анализа.Мы довольно часто используем шаблон как для историй, так и для функций:

In order to <achieve a goal>
As <the stakeholder who wants the goal>
I want <something>

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

2 голосов
/ 25 ноября 2010

«История» - это серия задач по разработке, которые вместе достигают цели. Это устройство, используемое разработчиками.

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

BDD - это вариант TDD (Test Driven Development). Насколько я понимаю, семантика BDD менее ориентирована на реализацию, чем семантика TDD, в которой вы используете фразы, такие как «система должна загружать пользователя» вместо «пользовательский экземпляр не должен быть нулевым после загрузки DAO «- они описывают поведение системы (набор функций) в отличие от конкретных деталей фактической реализации. В конце концов, все они проверяют одно и то же, если все сделано правильно.

И, по сути, концепция истории действительно ортогональна BDD; Есть практики разработки, которые имеют Истории и не имеют БДД.

0 голосов
/ 13 декабря 2014

К сожалению, функция - это слово с большой перегрузкой в ​​этом пространстве, а функция Cucumber - это совсем не то, что полноценная функциональность.

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

Эта разница (ИМО) гораздо важнее, чем различия в гранулярности или размере.У вас может быть функция Cucumber, которая была вдохновлена ​​многими пользовательскими историями, и у вас может быть одна пользовательская история, которая имеет много функций Cucumber.

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

...