BDD, в чем особенность? - PullRequest
8 голосов
/ 13 июля 2010

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

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

У меня вопрос, должна ли функция "Должен быть список товаров" быть функцией?

Спасибо!

Ответы [ 7 ]

5 голосов
/ 13 июля 2010

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

  • Пользователь должен иметь возможность получить обзор предлагаемых продуктов
  • Пользователь должен иметь возможность заказывать и переупорядочивать продукты по названию, цене, доступности..
2 голосов
/ 13 июля 2010

Довольно сложно начать заниматься BDD.Единственное, что помогает чувствовать уверенность в своих силах и в целом подходе, - это писать тестовые сценарии и код, который их выполняет.Я бы предложил вам не усложнять и без того сложную и запутанную ситуацию.Выберите любую задачу, которую вам нужно реализовать, откройте пустой текстовый файл и попробуйте объяснить с помощью простых предложений поведение.Каждое предложение должно начинаться с одного из трех ключевых слов: дано , , когда и , тогда .Используя ваш любимый BDD-фреймворк, напишите код, который будет анализировать эти предложения и стимулировать приложение к переходу в начальное состояние (задано), выполнять некоторые команды (когда) и утверждать переходное состояние (затем).Код приложения может начинаться с простого макета.Постепенно заменяйте эти макеты постепенно создаваемым кодом и расширяйте свое приложение с более высоким уровнем достоверности и качества.

1 голос
/ 22 июня 2014

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

для структуры BDD см. http://kernowcode.wordpress.com

1 голос
/ 03 декабря 2013

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

  • Выберите продукт для просмотра из списка продуктов
  • Выберите x продуктов для сравнения из списка продуктов
  • Другие
1 голос
/ 19 апреля 2013

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

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

1 голос
/ 20 ноября 2011

Пользовательская история - это особенность. Что-то, что можно выразить в формате:

  • Как Роль
  • Я бы хотел сделать что-то
  • Так что цель

1017 * Е.Г. *

  • как пользователь
  • Я бы хотел сравнить продукты
  • Чтобы я мог выбрать продукт, который наилучшим образом соответствует моим потребностям

  • В качестве гостя

  • Я бы хотел оформить заказ в корзине
  • чтобы я мог совершить покупку

Каждая функция, конечно же, должна подтверждаться серией сценариев «когда да».

0 голосов
/ 20 июня 2014

Чтобы определить, является ли требование явной особенностью / пользовательской историей, вы можете использовать рекомендации по проектированию / документации на основе задач (например, http://www.sprez.com/articles/task-documentation-design.html).). Такие концепции признают, что пользователь системы хочет достичь определеннойКак правило, знание чего-либо (например: какие продукты доступны) - это только шаг в процессе покупки / продажи / строительства / и т. д. Хорошей отправной точкой в ​​BDD является написание тем, которые вы бы использовали в качестве глав в своем документе.Руководство пользователя. Эти темы, как правило, представляют собой функции, которые вы собираетесь предоставить в своем программном решении. Хорошая среда, поддерживающая такой подход спецификации в отдельных примерах, - Concordion (http://concordion.org).. Пожалуйста, ознакомьтесь с описанием«Приемочные испытания на простом английском языке» (http://gojko.net/2009/09/01/acceptance-testing-in-plain-english-with-concordion-net/).

...