Slide 1

Slide 1 text

Аналитик и разработчик в одном лице Михаил Белов Software Engineering Conference Russia 2018 October 12-13 Moscow Опыт применения BDD в стартапе

Slide 2

Slide 2 text

Познакомимся? • .NET, SQL, JavaScript • Desktop и Web приложения • Работал в Microsoft • Сооснователь стартапа 2

Slide 3

Slide 3 text

Крупная корпорация • Приоритеты определены • Задачи описаны • Есть спецификации • Есть аналитики • Есть поставленный процесс QA • Есть документация 3

Slide 4

Slide 4 text

Стартап • Переполненный бэклог • Поверхностная формулировка • Нет спецификаций • Нет документации • Ресурсоемкое регрессионное тестирование • Сам себе тестировщик 4

Slide 5

Slide 5 text

Без BDD 5 Уточнить требования Изменить прототип Сделать прототип Сформулировать требования

Slide 6

Slide 6 text

Результат • Ушло много времени • Забыли про некоторые сценарии • Некоторые сценарии ломают обратную совместимость в UX • Баги, баги, баги 6

Slide 7

Slide 7 text

Behavior Driven Development Приемочные тесты пишут • До начала разработки (как в TDD) • На естественном языке • Составляют люди из бизнеса и разработки • Описывают поведение системы с помощью S.M.A.R.T.* – критериев *Specific – конкретный Measurable – измеримый Achievable – достижимый Relevant – актуальный Time-bound – ограниченный по времени 7

Slide 8

Slide 8 text

Given When Then 8 Given When Then

Slide 9

Slide 9 text

Покрытие • Комбинаторно перемножаем Given * When • В результате получается набор приемочных тестов 9

Slide 10

Slide 10 text

Светофор Given: • Горящий цвет: красный, желтый зеленый • Зеленый мигающий • Желтый мигающий • Стрелки • Оставшиеся секунды 10 When: • Срабатывание таймера • Ручное управление • Кнопка • Датчик в асфальте • Маячки в спец. Транспорте • Камеры

Slide 11

Slide 11 text

Светофор Given When Then Красный Таймер Зеленый Зеленый Таймер Зеленый мигающий Зеленый мигающий Таймер Желтый Желтый Таймер Красный 11

Slide 12

Slide 12 text

Предметная область • Бухгалтерия • Бизнес-процессы 12

Slide 13

Slide 13 text

Нужно слегка поменять образ мыслей BDD поможет разработчикам 13

Slide 14

Slide 14 text

Проектная бухгалтерия • Проекты • Бюджеты проектов • Версии бюджетов 14

Slide 15

Slide 15 text

У вас еще нет ни одной записи. Создать? Да Нет 15

Slide 16

Slide 16 text

Анализировать до разработки, а не во время BDD поможет, если нет опыта 16

Slide 17

Slide 17 text

Сделать “так же, как там” 17

Slide 18

Slide 18 text

Мыслить действиями, а не объектами 18

Slide 19

Slide 19 text

Проектный субподряд 19 Компания А (заказчик) Компания B (исполнитель) Компания C (субподрядчик) Компания D (дочерняя от B)

Slide 20

Slide 20 text

1 тест – 1 триггер А не набор шагов 20

Slide 21

Slide 21 text

Усложним 21 Компания А (заказчик) Компания B (исполнитель) Компания C (субподрядчик) Компания D (дочерняя от B) USD GBP RUB AED

Slide 22

Slide 22 text

256 Клиент Исполнитель Субподрядчик Дочерняя компания USD USD USD USD USD USD USD GBP USD USD USD RUB USD USD USD AED USD USD GBP USD … … … … AED AED AED AED 22

Slide 23

Slide 23 text

8 Клиент – Исполнитель Исполнитель – Субподрядчик Субподрядчик – Дочерняя компания 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 23 * 0 – валюты разные 1 – валюты одинаковые

Slide 24

Slide 24 text

Не бояться комбинаторики • Задуматься, а все ли правильно? • Больше информации к размышлению • Защита от ошибок 24

Slide 25

Slide 25 text

Главное • С аналитиком лучше, чем без него • Разработчик тоже может анализировать • Анализировать до начала разработки, а не во время • Особенно там, где «и так все понятно» • Мыслить действиями, а не сущностями • Разбивать сложные сценарии на отдельные кейсы • Перебор всех вариантов помогает, а не мешает 25

Slide 26

Slide 26 text

Если есть вопросы mihail_belov [email protected] facebook.com/mikhail.belov.165 26

Slide 27

Slide 27 text

27