Разработка на основе поведения - Behaviour Driven Development

08.02.2012 15:38

В методологиях Agile, в целях получения и проверки требований продукта, бизнес-аналитики используют реальные примеры клиентов для общения с командой, в том числе заказчика. Реальные примеры служат мостом понимания клиента и того, как он видит соответствие продукта будущим потребностям. Анализ модели может быть одновременно разработан и подготовлен на основе этих же примеров. Модели могут быть полезными для команды, но примеры более конкретны для клиента. Методы используются многократно, чередуя примеры и анализ моделей для изучения многочисленных аспектов требований к продукту (например, роли пользователя, действия пользователя, данные, бизнес-правила). Это непрерывная практика, которая создает общекомандное понимание требований продукта для планирования и разработки. Эти методы привлекают клиентов для выявления требований, анализа и проверки.

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

 

Разработка на основе поведения

Цель

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

 

Описание

Традиционные методы анализа бизнеса часто связаны с анализом моделей, например, с помощью UML-моделей. В дополнение к анализу моделей, в методах Agile большее предпочтение отдается примерам, которые являются более конкретными для клиента. Многие люди чувствуют себя неловко с абстракциями и предпочитают работать с реальными примерами.

 

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

 

Например, вместо «компания, которая поддерживает несколько брендов для различных демографических сегментов», говорят «Disney Corporation снимает диснеевские фильмы для семейного отдыха, Miramax для более взрослых зрителей, и Marvel для рисунков супергероев».

 

Кроме того, примеры дают мягкость в подходе разработки на основе поведения/теста.

Элементы

Примеры

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

Разработка на основе поведения

Разработка на основе поведения предоставляет простой грамматический формат, который позволяет заполнить реальный сценарий. Это имеет следующий вид

  • ДАНО <контекст>
  • КОГДА <событие>
  • ЗАТЕМ <результат>

 

Например, банкомат

  • ДАНО: Я в кредите
  • КОГДА: Я запросил $20
  • ЗАТЕМ: Я получил $20
  • И: мой счет уменьшился на $20
  • И: моя карта вернулась
  • ДАНО: Я превысил ограничение
  • КОГДА: Я запросил $20
  • ЗАТЕМ: Я не получил денег
  • И: моя карта вернулась

 

Сценарии, написанные в формате разработки на основе поведения, указывают на проверяемые обстоятельства, условия и действия. Они могут служить критериями приемки для историй и служить в качестве тестов для разработки основанной на приемочных испытаниях (Acceptance Test Driven Development, ATDD), которые ведут к общему пониманию требований и будущих потребностей в продукте.

 

Тестирование

В настоящее время имеется ряд программных продуктов, которые используют примеры, описанные в этом формате, и позволяют им быть легко преобразованными в автоматизированные тесты, что позволяет более гибкую поставку продукта. Бизнес-анализ и тестирование могут быть более тесно связаны с полным набором примеров, которые могут быть выполнены как автоматизированные тесты.

--

Усилиями членов IIBA и экспертами сообщества Agile был разработан черновик The Agile Extension of the BABOK, описывающий роль бизнес-аналитика или владельца продукта, а также применяемые техники, в процессе разработки программного обеспечения с использованием методологий, производных от Agile.

 

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

 

Основной целью бизнес-анализа является понимание потребностей заказчика, пользователей программных продуктов, правильное и своевременное преобразование их в виде программного приложения, сервиса или продукта. Мы хотим познакомить пользователей DEVPROM с современными техниками в стиле Agile, которые они могут использовать для создания своих программных продуктов.

Еще интересные статьи на эту тему: