Разработка на основе поведения (Behavior-driven development, BDD)

Разработка на основе поведения или разработка через поведение (Behavior-driven development, BDD) — это подход к разработке программного обеспечения, целью которого является улучшение взаимодействия и взаимопонимания между разработчиками, тестировщиками и другими заинтересованными сторонами, не являющимися техническими специалистами. Данный подход фокусируется на определении поведения системы с точки зрения ее целей, прикладной функциональности и ожидаемых результатах, а не просто на указании ее входных и выходных данных. BDD акцентируется на совмещении в процессе разработки чисто технических интересов и интересов бизнеса, позволяя тем самым менеджерам и разработчикам говорить на одном предметно-ориентированном языке.

Ключевые принципы BDD

  1. Спецификации поведения: в BDD используется предметно-ориентированный язык для формулирования требований и обычно применяются стандартизированные шаблоны для их описания. Требования в формате спецификации поведения включают в себя описание и сценарии. Описание содержит в себе цели и задачи заинтересованных лиц, а сценарии описывают желаемое поведение системы. Одним из часто используемых языков для составления спецификаций в BDD является Gherkin. BDD призывает все заинтересованные стороны работать вместе, чтобы определить поведение системы. Сюда входят разработчики, тестировщики, бизнес‑аналитики, менеджмент и конечные пользователи.
  2. Автоматизация и непрерывная интеграция. BDD полагается на автоматическое тестирование, чтобы гарантировать, что система работает должным образом. Автоматизированные тесты должны быть написаны в ясном, кратком и удобочитаемом формате. BDD поощряет команды часто интегрировать свой код и запускать автоматические тесты для каждой интеграции. Это помогает выявить дефекты на ранней стадии и избежать дорогостоящих задержек.
  3. Ориентация на бизнес: BDD ориентирована на создание ценности для бизнеса. Это означает, что любое поведение должно определяться с точки зрения его влияния на бизнес, а не с точки зрения технических требований.

Преимущества BDD

Одним из ключевых преимуществ BDD является то, что оно позволяет гарантировать, что разрабатываемое программное обеспечение соответствует потребностям бизнеса. Сосредоточив внимание на поведении, а не на технических требованиях, BDD побуждает бизнес более чётко формулировать желаемые цели, а разработчикам даёт возможность глубже задуматься о проблеме, которую они пытаются решить.

Еще одним преимуществом BDD является то, что он способствует сотрудничеству между разработчиками и тестировщиками. Работая вместе над определением поведения системы, разработчики и тестировщики могут выявить дефекты на ранних этапах процесса разработки. Разработку на основе поведения можно также рассматривать как расширение разработки через тестирование (TDD). Использование для описания требований к поведению системы предметно-ориентированного языка — это отличный способ преодолеть разрыв между сбором требований и тестированием.

Выводы

Разработка, основанная на поведении, — это мощная методология разработки программного обеспечения, которая может помочь командам создавать высококачественное программное обеспечение, отвечающее потребностям бизнеса. Сосредоточив внимание на целевом поведении, а не на технических аспектах, BDD позволяет обеспечить продуктивное сотрудничество между разработчиками, тестировщиками и бизнесом. Если вы еще не используете BDD в своей команде, то об этом определенно стоит подумать.

методологии разработки
Статья опубликована в 2023 году

Тематические статьи

Agile — гибкие методологии разработки

Гибкие методологии или Agile — это итеративный и ориентированный на людей подход к разработке программного обеспечения, который сфокусирован на сотрудничестве, гибкости и реагировании на изменения. Эта методология направлена на предоставление высококачественного работающего программного обеспечения короткими шагами или итерациями.

цифровизация
методологии разработки
управление продуктами
управление проектами
Статья опубликована в 2023 году

TDD — разработка через тестирование

TDD, test-driven development или разработка через тестирование — это методология разработки ПО, повышающая надёжность и сопровождаемость проектов.

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

автоматизированное тестирование
тестирование
TDD
методологии разработки
Статья опубликована в 2014 и обновлена в 2023 году

Экстремальное программирование, Extreme Programming / XP

Extreme Programming, экстремальное программирование, также известное как XP — это методология разработки программного обеспечения, которая относится к гибким (agile) и подчеркивает важность удовлетворения потребностей клиентов посредством непрерывной поставки высококачественного программного обеспечения.

методологии разработки
управление продуктами
управление проектами
Статья опубликована в 2023 году

Водопадная модель разработки

Водопадная модель разработки программного обеспечения — это процесс разработки, в котором все необходимые этапы проходят строго последовательно.

Разработка ПО по водопадной модели начинается со сбора и анализа требований, затем следует фаза проектирования и прототипирования. После завершения полного проектирования начинается этап программной реализации. После завершения этапа программирования разработанный продукт тестируется на соответствие требованиям. Затем осуществляется интеграция и запуск, после чего проект переходи в фазу поддержки и сопровождения.

управление проектами
управление продуктами
Статья опубликована в 2019 году

Итеративная модель разработки

Итеративная (итерационная, инкрементная или эволюционная) модель разработки программного обеспечения — это процесс, который осуществляется небольшими этапами, в ходе которых ведется анализ полученных промежуточных результатов, выдвигаются новые требования и корректируются предыдущие этапы работы.

Жизненный цикл проекта при итерационной разработке разбит на последовательность итераций. Каждая из этих итерации, по сути, является водопадным проектом в миниатюре, то есть включает в себя все ключевые процессы разработки ПО и результатом работы по каждой итерации обычно является пригодная для использования версия продукта.

управление продуктами
управление проектами
Agile
Статья опубликована в 2019 и обновлена в 2022 году

Модель ветвления Trunk Based Development (TBD)

Trunk Based Development (TBD) или транковая разработка — модель ветвления системы управления версиями, при которой все разработчики работают в одной ветке. Эта модель имеет значительные преимущества с точки зрения совместной работы, качества кода и скорости доставки изменений.

методологии разработки
Статья опубликована в 2023 году

Модель ветвления GitFlow

GitFlow — модель ветвления системы управления версиями, разработанная для структурированного управления изменениями в коде и повышения качества совместной работы разработчиков.

методологии разработки
Статья опубликована в 2023 году

Флаги функций (Feature Flags)

Флаги функций позволяют отделить развертывание функций от развертывания кода, обеспечивают возможности для A/B-тестирования и предоставляют механизм быстрого отключения проблемных функций

методологии разработки
Статья опубликована в 2023 году

GIT — система управления версиями

GIT — распределённая система управления версиями, созданная Линусом Торвальдсом для управления разработкой ядра Linux и в настоящее время получившая очень широкое распространение в среде разработчиков программного обеспечения.

веб-разработка
бэкенд
фронтенд
системы контроля версий
Статья опубликована в 2014 году

Наши услуги