SlideShare a Scribd company logo
Behavior Driven Development
Дмитрий Айзенберг
• Спецификация примером
• Язык Gherkin
• Инструменты BDD
• Критика BDD
Спецификация примером
Спецификация примером
Зачем?
Как?
Проще определить
до реализации
Сложнее определить
до реализации
Цель проекта
Детали реализации
Баг
Спецификация примером
Зачем?
Как?
Цель проекта
Стратегия проекта
Функциональное требование
Сценарий использования
Приемочный критерий
Детали реализации Баг
Проще определить
до реализации
Сложнее определить
до реализации
Спецификация примером
Зачем?
Как?
Менеджер проекта
Владелец продукта
Разработчик
Цель проекта
Стратегия проекта
Функциональное требование
Сценарий использования
Приемочный критерий
Детали реализации Баг
Проще определить
до реализации
Сложнее определить
до реализации
Спецификация примером
Зачем?
Как?
Менеджер проекта
Владелец продукта
Разработчик
Цель проекта
Стратегия проекта
Функциональное требование
User storyСценарий использования
Приемочный критерий
Детали реализации Баг
Проще определить
до реализации
Сложнее определить
до реализации
Спецификация примером
• Text
Как посетитель магазина
Я хочу накапливать свои покупки в корзине
Чтобы оформить их одним заказом
В корзину можно добавить покупки
Из корзины можно удалить покупки
Изначально корзина пуста
Одну покупки можно добавлять многократно
Спецификация примером
• Text
Как посетитель магазина
Я хочу накапливать свои покупки в корзине
Чтобы оформить их одним заказом
В корзину можно добавить покупки
Из корзины можно удалить покупки
Изначально корзина пуста
Одну покупки можно добавлять многократно
Спецификация примером
• Text
Как посетитель магазина
Я хочу накапливать свои покупки в корзине
Чтобы оформить их одним заказом
В корзину можно добавить покупки
Из корзины можно удалить покупки
Изначально корзина пуста
Одну покупки можно добавлять многократно
Given my shopping cart is empty
When I add “Harry Potter” to my
shopping cart
Then my shopping cart should have 1
copy of “Harry Potter”
Спецификация примером
Спецификация примером
Спецификация примером
Спецификация примером
Спецификация примером
Общее
понимание
Регрессионное
тестирование
Документация
Язык Gherkin
Язык Gherkin
Demo
Инструменты BDD
Инструменты BDD
Test
runner
Script
parser
Clicker
• NUnit
• xUnit
• MSTest
etc
Инструменты BDD
Test
runner
Script
parser
Clicker
• Gherkin:
• Cucmber
• SpecFlow
• Другие:
• StoryQ
• NSpec
Инструменты BDD
Test
runner
Script
parser
Clicker
• Web:
• Selenium
• WatiN
• Desktop:
• MS UI Automation
• AutoIt
Критика BDD
Критика BDD
Habrahabr: Тестирование в стиле TSA
• Тесты не бесплатны
• «Но что плохого в избыточном тестировании, Фил, разве ты
не хочешь, чтобы твой код был безопасным? ...» Из-за таких
вот рассуждений мы и получили TSA и то как они сливают
миллиарды на ощупывание яиц и конфискацию книпсеров.
Критика BDD
Алексей Баранцев: Почему я не люблю
огурцы и фитнес
• ... и не приѐмочное, и не тестирование. Для тестирования это
слишком просто, «программирование в табличках» — адская
пытка, паттерн given-when-then не даѐт возможности сделать
хоть сколько-нибудь сложные автоматизированные тесты, а при
ручном тестировании он и вовсе не нужен
• идея автоматизировать приѐмку вообще слабо вписывается в
концепцию agile: если «приѐмочные тесты» будут пройдены,
а product owner недоволен — продукт будет считаться успешно
сданным или нет?
Критика BDD
ROI: (manual cost) – (automation cost)
Manual cost = выполнение;
Automation cost = создание тестов +
поддержка тестов

More Related Content

PDF
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
PDF
Применение CQRS и EventSourcing в DDD-проекте
PDF
18.10.19 - WebPromo SEO day - Фазовый переход между стратами
PPTX
Переход от монолитной архитектуры к распределенной
PDF
IT Brunch - SpecFlow and Gherkin by Example
PDF
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
PDF
Владислав Моргун
PPTX
Sql saturday azure storage by Anton Vidishchev
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Применение CQRS и EventSourcing в DDD-проекте
18.10.19 - WebPromo SEO day - Фазовый переход между стратами
Переход от монолитной архитектуры к распределенной
IT Brunch - SpecFlow and Gherkin by Example
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
Владислав Моргун
Sql saturday azure storage by Anton Vidishchev

Viewers also liked (7)

PPTX
Object-2-Object mapping, как приправа к вашему проекту
PPTX
PPTX
Microsoft Office 2013 новая модель разработки приложений
PPTX
Patterns of parallel programming
PPTX
Deep Dive C# by Sergey Teplyakov
PPTX
Async clinic by by Sergey Teplyakov
PPTX
Object-2-Object mapping, как приправа к вашему проекту
Microsoft Office 2013 новая модель разработки приложений
Patterns of parallel programming
Deep Dive C# by Sergey Teplyakov
Async clinic by by Sergey Teplyakov
Ad

Similar to Bdd by Dmitri Aizenberg (20)

PPTX
О фреймворках Backend conf 2016
PDF
О фреймворках / Роман Ивлиев (Банки.ру)
PPT
5 лекция. презентация
PPTX
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
PDF
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
PDF
Алексей Лустин. Непрерывная проверка качества кода.
PDF
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
PPTX
Code review как средство обеспечения качества программного обеспечения
PDF
Тестирование осень 2013 лекция 3
PDF
RTB DSP на языке Go: укрощение buzzwords
PDF
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
PPTX
Лучшие практики на практике
PPT
PDF
MLSDev: Game development process: infinite story about efficiency with no risks
PPTX
Gradle. Новый уровень автоматизации для Android
PDF
TК°Conf. Организация разработки Frontend. Виталий Слободин.
PPTX
Automation Overview
PPTX
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
PDF
Распространенные ошибки применения баз данных (Сергей Аверин)
О фреймворках Backend conf 2016
О фреймворках / Роман Ивлиев (Банки.ру)
5 лекция. презентация
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
Алексей Лустин. Непрерывная проверка качества кода.
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Code review как средство обеспечения качества программного обеспечения
Тестирование осень 2013 лекция 3
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
Лучшие практики на практике
MLSDev: Game development process: infinite story about efficiency with no risks
Gradle. Новый уровень автоматизации для Android
TК°Conf. Организация разработки Frontend. Виталий Слободин.
Automation Overview
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
Распространенные ошибки применения баз данных (Сергей Аверин)
Ad

More from Alex Tumanoff (20)

PPTX
Sql server 2019 New Features by Yevhen Nedaskivskyi
PPTX
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
PPTX
Azure data bricks by Eugene Polonichko
PPTX
Sdlc by Anatoliy Anthony Cox
PPTX
Kostenko ux november-2014_1
PPTX
Java 8 in action.jinq.v.1.3
PPT
"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас...
PPTX
Spring.new hope.1.3
PPTX
Navigation map factory by Alexey Klimenko
PPTX
Serialization and performance by Sergey Morenets
PPTX
Игры для мобильных платформ by Алексей Рыбаков
PDF
Android sync adapter
PPTX
Неформальные размышления о сертификации в IT
PPTX
Разработка расширений Firefox
PPTX
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
PPTX
Lambda выражения и Java 8
PPTX
XP практики в проектах с тяжелой наследственностью
PPTX
Anti patterns
PPTX
Первые шаги во фрилансе
PPTX
Spring Web Flow. A little flow of happiness.
Sql server 2019 New Features by Yevhen Nedaskivskyi
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis Reznik
Azure data bricks by Eugene Polonichko
Sdlc by Anatoliy Anthony Cox
Kostenko ux november-2014_1
Java 8 in action.jinq.v.1.3
"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас...
Spring.new hope.1.3
Navigation map factory by Alexey Klimenko
Serialization and performance by Sergey Morenets
Игры для мобильных платформ by Алексей Рыбаков
Android sync adapter
Неформальные размышления о сертификации в IT
Разработка расширений Firefox
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...
Lambda выражения и Java 8
XP практики в проектах с тяжелой наследственностью
Anti patterns
Первые шаги во фрилансе
Spring Web Flow. A little flow of happiness.

Bdd by Dmitri Aizenberg