Что такое BDD

«Что такое BDD» — вопрос из категории Методологии разработки, который задают на 23% собеседований Менеджер Проектов. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

BDD (Behavior-Driven Development) — это методология разработки, фокусирующаяся на описании поведения системы через сценарии, понятные бизнесу и разработчикам. Основана на TDD, но использует естественный язык для спецификаций.

Ключевые аспекты:

  • Сотрудничество: Продукт-менеджеры, тестировщики и разработчики совместно формулируют требования.

  • Формат Given-When-Then:

    Given пользователь на странице входа  
    When вводит верные credentials  
    Then открывается dashboard  
  • Инструменты: Cucumber, SpecFlow, Behat (интеграция с кодом).

Пример на Python (pytest-bdd):

from pytest_bdd import scenarios, given, when, then  

scenarios('login.feature')  

@given('пользователь на странице входа')  
def open_login_page():  
    pass  

@when('вводит верные credentials')  
def enter_credentials():  
    pass  

@then('открывается dashboard')  
def check_dashboard():  
    pass  

Плюсы:

  • Четкие требования;
  • Автоматизированная документация;
  • Снижение недопонимания между командами.

Минусы:

  • Оверхеад на поддержку сценариев;
  • Сложность для legacy-систем.