как обобщать истории BDD и ориентироваться в них, когда их так много?

У меня есть много историй / сценариев BDD (450+ и более), которые я унаследовал для существующей системы: дополнительная информация. Истории организованы с использованием папок файловой системы:

C:\specifications
   |
   + myproject
     |
     |- admin stories
     |  |- account_management.story
     |  +- finance_management.story
     |
     +- customer stories
        |- pay_bils.story 
        +- update_details.story

Существует так много историй, что пытаться понять функциональность, читая текстовые файлы историй, все равно, что пытаться понять техническую архитектуру системы, читая тысячи строк исходного кода.

Я пробовал использовать unix команды для обобщения историй, но это все еще не помогает мне ориентироваться в историях. Например, следующая команда распечатывает имя файла истории и повествование, даже если повествование занимает несколько строк:

find . -name *.story -exec ls "{}" \; -exec sed -n '/^Narrative/,/^$/p' {} \;

Производит результат, аналогичный:

...

./stories/basket/basket.story
Narrative:
In order to buy goods
As a customer
I want to add items to my basket

...

Этот вопрос похож на этот, но есть некоторые ключевые отличия:

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

person Chris Snow    schedule 19.01.2014    source источник


Ответы (3)


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

Так, например, у вас может быть:

  • оплатить счета. история
  • обновить аккаунт details.story
  • добавить товары в корзину.story

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

Администраторы могут:

  • создать новые учетные записи
  • банить аккаунты

Финансовые менеджеры могут:

  • напоминания о выпуске
  • отменять счета
  • переиздать заявления

Заказчики могут:

  • оплатить счета
  • обновить детали
  • складывать предметы в корзины
  • покупать предметы

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

person Lunivore    schedule 20.01.2014
comment
+1. Я группирую истории по характеристикам, например папка с именем Accounts, затем подпапка с именем Deleting Accounts (или один файл DeletingAccounts.feature, если этого достаточно) с таким количеством файлов .feature, сколько мне нужно, чтобы конкретизировать спецификации. - person Jason Evans; 20.01.2014

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

person Chris Snow    schedule 03.02.2014

Я создал суть для переформатирования моих тестов Gherkin. В нем я описываю, как мы располагаем наши структуры каталогов (что мне нравится):

https://gist.github.com/drmikecrowe/a3f8a31f2c7f2de1d078

person Community    schedule 06.03.2015