Уместно ли для сценариев BDD иметь специфичность стиля «нажмите здесь»?
Я читал множество примеров, в которых сценарии описываются так, чтобы избежать какого-либо конкретного взаимодействия с пользовательским интерфейсом, но такие инструменты, как SpecFlow, по-видимому, требуют такого уровня детализации.
Уместно ли требовать от БА написать историю, содержащую сценарии на высоком уровне, а затем проработать их до более технического (и специфического для элементов) уровня на этапе 3 amigos?
Например, уместно ли это:
Given the user is on /search
And the "Jeff" is entered into the field "searchinput"
When the "Search" button is clicked
Then the page displayed is /results/Jeff
And the fields displayed include "Name"
And the second field displayed is "Post Code"
Пример истории и пример инструмента на этой странице кажутся несовместимыми, если мы пытаемся перейти от одного к другому (игнорируя тот факт, что они находятся в очень разных бизнес-процессах): https://en.wikipedia.org/wiki/ Развитие, управляемое поведением
Ваш уровень поведения правильный. Большинство практиков (включая меня) порекомендовали бы вам сформулировать его таким образом, который менее специфичен для реализации. Например:
Given the user is on the search page
When the user searches for "Jeff"
Then the results page is displayed
And the "Name" field is displayed with the value "Jeff"
And the "Post Code" field is displayed with the value "80273"
Это не зависит от реализации, что означает, что вам не нужно заранее знать реализацию, и вы можете более легко решать несколько реализаций (например, веб и мобильные).
Я также изменил формулировку, чтобы ее было легче автоматизировать. Если тест пишет PO или какой-то другой нетехнический человек, я не ожидаю, что они узнают о некоторых из этих изменений. Я ожидаю, что разработчики признают их и помогут там. В частности, последние две строки теперь представляют собой один и тот же шаблон, и их легче автоматизировать, и весь сценарий можно было бы запустить с большим количеством различных значений, подставленных для каждого из этих элементов в кавычках очень аккуратно.
Наконец, вы спросили в комментарии, как вы преодолеваете разрыв. Я рекомендую написать тестовый пример до того, как вы узнаете о реализации. Это заставляет вас в большей степени использовать этот язык, не зависящий от реализации.
АндрасЧаньи
Мэтт В.
АндрасЧаньи