Развитие, обусловленное поведением
-
Основы BDD
- BDD — это методология разработки программного обеспечения, основанная на тестировании поведения, а не на тестировании функций.
- BDD фокусируется на тестировании бизнес-процессов и взаимодействии с пользователями, а не на тестировании отдельных функций.
- BDD использует специальные инструменты для документирования и тестирования поведения, а не только для написания тестов.
-
История и принципы BDD
- BDD возникла из практики разработки программного обеспечения в 2000-х годах и была популяризирована Кентом Беком.
- BDD основана на принципах TDD, но фокусируется на тестировании поведения, а не на тестировании функций.
- BDD включает в себя написание историй пользователей, которые описывают бизнес-процессы и взаимодействие с пользователями.
- Истории пользователей содержат предварительные условия, триггеры и ожидаемые результаты, которые могут быть обработаны инструментами BDD.
-
Инструменты BDD
- Инструменты BDD, такие как JBehave и RBehave, позволяют разработчикам тестировать поведение программного обеспечения, используя формализованный язык.
- JBehave и RBehave основаны на шаблонах, которые помогают разработчикам создавать тесты, соответствующие истории пользователей.
- Существуют также инструменты, такие как Fitnesse, которые используют таблицы принятия решений для реализации BDD.
-
Сравнение с TDD и спецификациями
- BDD дополняет TDD, фокусируясь на тестировании поведения, а не функций.
- Инструменты спецификации, такие как RSpec, используют функциональные спецификации для тестирования, а не истории пользователей.
- Тестирование спецификаций часто рассматривается как альтернатива модульному тестированию и выполняется на более низком уровне, чем тестирование на основе историй.
-
Обсуждение и примеры
- «Три друга» — это встреча, на которой обсуждаются требования в форме спецификации.
- Обсуждение помогает выявить недостающие спецификации и улучшить требования.
- В статье также упоминаются другие инструменты и фреймворки BDD, такие как Behat, Cynefin, Concordion, Sensor, Jasmine и Squish GUI Tester.