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