2010-11-25 4 views
2

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

Что вы думаете?

ответ

4

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

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

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

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

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

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

2

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

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

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

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

0

К сожалению, функция - это сильно перегруженное слово в этом пространстве, а функция огурца - это совсем другое дело для полноценной функциональности.

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

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

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