Могу ли я отослать вас к посту, который я написал совсем недавно на Критерии принятия против сценариев ?Я думаю, что пример может быть более ярким, если вы используете что-то, напоминающее конкретное использование механизма рабочего процесса, а не общее.Например, это фальшивый зоомагазин , который я использую, чтобы опробовать инструмент автоматизации.Затем я написал сценарии вокруг зоомагазина , вместо того, чтобы пытаться указать общие проблемы автоматизации.
Если ваши клиенты, например, иногда работают в сфере здравоохранения, подберите поддельный инструмент диагностики, которыйиспользует ваш движок и напишите сценарий вокруг этого.Для начала может показаться, что это небольшая работа, но я обнаружил, что она очень быстро окупается.
Story: A doctor diagnoses black death
Scenario: The doctor starts the diagnosis
Given I am doctor with rights to use the system
And I've added a workflow called "diagnosis"
When I choose the "diagnosis" workflow
Then it should tell me that it's not started.
Это то преимущество, которое вы ищете - пользователь получает некоторую информацию, не то, что что-то хранится в базе данных.Насколько это возможно, сценарий должен настаивать на конечной ценности!Так что, возможно, следует даже сказать что-то вроде:
Story: A doctor diagnoses Black Death
Scenario: The doctor starts the diagnosis
Given I am doctor with rights to use the system
And I want to diagnose a patient
When I choose "Diagnosis"
Then the system should prompt me to start diagnosing.
Given that all the symptoms match Black Death
When I perform the diagnosis
Then I should be able to diagnose the patient with Black Death.
Любые более мелкие шаги, необходимые для того, чтобы сделать это простым и эстетичным, действительно являются проблемами юзабилити.Не используйте среды BDD для описания проблем с юзабилити (хотя они могут пройти через них, давая вам ваши регрессионные тесты).Вместо этого попробуйте это вручную.BDD не заменяет ручное тестирование, оно просто немного помогает.
Если вы можете создать неопределенно реалистичное использование движка рабочего процесса, это поможет вам подумать о сценариях, которые вы можете пропустить.Например, сейчас я понятия не имею, как этот рабочий процесс может быть связан с конкретным пациентом.Я нахожу конкретные образные примеры, которые, как правило, помогают людям визуализировать другие сценарии более, чем что-то расплывчатое, универсальное и всеобъемлющее.
Кроме того, попробуйте сформулировать это на том же языке, который может использовать бизнес, думая о результатах бизнеса, которыеВы действительно хотите.Постарайтесь не думать о том, как реализовать сценарий - просто напишите его.Это будет намного, намного проще , если вы действительно пойдете и поговорите со своими деловыми людьми или клиентами о сценариях, о которых они могут подумать!
Любая сложность, необходимая для запуска сценария, затем переходит ккод, который легче поддерживать и реорганизовать.
В качестве дополнительного преимущества, выявляя конкретных клиентов с особыми потребностями, вы можете помочь вашему клиенту избежать ловушки, позволяющей использовать все возможные функции вмеханизм рабочего процесса «на случай, если это кому-то нужно».Обсуждая реальные сценарии с реальными людьми, они смогут помочь определить, кто нуждается в том, какие функции наиболее важны, сократив охват и помогая вам доставить как можно большую ценность.