Как научить людей общаться с помощью Spec By Example

43
Спецификация на примерах или как научить людей общаться Ребров Андрей

Transcript of Как научить людей общаться с помощью Spec By Example

Page 1: Как научить людей общаться с помощью Spec By Example

Спецификация на примерах или как научить людей общаться

Ребров Андрей

Page 2: Как научить людей общаться с помощью Spec By Example
Page 3: Как научить людей общаться с помощью Spec By Example

История об одной команде

Page 4: Как научить людей общаться с помощью Spec By Example

Тестировщик

Page 5: Как научить людей общаться с помощью Spec By Example

Аналитик

Page 6: Как научить людей общаться с помощью Spec By Example

Разработчик

Page 7: Как научить людей общаться с помощью Spec By Example

Их ждала работа

Page 8: Как научить людей общаться с помощью Spec By Example

Много работы

Page 9: Как научить людей общаться с помощью Spec By Example

А тут еще и заказчик негодует

Page 10: Как научить людей общаться с помощью Spec By Example

И что с ними

стало?

Page 11: Как научить людей общаться с помощью Spec By Example
Page 12: Как научить людей общаться с помощью Spec By Example

На практике• 15000 требований•Постоянные переделки• Рассогласование требований, тестирования и разработки

Page 13: Как научить людей общаться с помощью Spec By Example

Делаем первые шаги в правильном направлении

Page 14: Как научить людей общаться с помощью Spec By Example

Story Mapping

• Формируем бэклог релиза• Определяем объем задач• Определяем архитектурные

изменения

Page 15: Как научить людей общаться с помощью Spec By Example

Начало

Page 16: Как научить людей общаться с помощью Spec By Example

Препланирование

• 2 раза в неделю• Участвует вся команда• Длительность 1 час• Что не успели, то не

успели

Page 17: Как научить людей общаться с помощью Spec By Example

Промежуточные итоги

• Стало меньше багов• Стало меньше переделок• Демо стало проходить

успешно

Page 18: Как научить людей общаться с помощью Spec By Example

Но!

Page 19: Как научить людей общаться с помощью Spec By Example

Три источника правды• Требования• Тест-кейсы• Код

Page 20: Как научить людей общаться с помощью Spec By Example

SPEC BY EXAMPLE

Page 21: Как научить людей общаться с помощью Spec By Example

Используем Impact mapping

Page 22: Как научить людей общаться с помощью Spec By Example

Зачем•Проверяем на соответствие бизнес целям релиза•Ищем альтернативные пути решения• Четко формулируем пользовательские истории

Page 23: Как научить людей общаться с помощью Spec By Example

Например

Импорт данных в CRM через шину

Продажа услуг через CRM

Продажник

Повышение эффективности отдела продаж

Импорт данных в CRM из XML

Page 24: Как научить людей общаться с помощью Spec By Example

Парная работа тестировщика и аналитика

Page 25: Как научить людей общаться с помощью Spec By Example

Что они делают

• Подготовка 1 - 2 примеров с точки зрения пользователя

• Представление данных в виде таблицы

• Описание всей терминологии

Page 26: Как научить людей общаться с помощью Spec By Example

НапримерРегион Существ

ует категория

Данные услуги

Услуга Адрес

Юрлицо

Поволжье Да ID1АдресРога и копыта

ID1 Адрес

Рога и копыта

Поволжье Нет ID1АдресРога и копыта

ID2 Адрес

Рога и копыта

Page 27: Как научить людей общаться с помощью Spec By Example

Меняем препланирования

Page 28: Как научить людей общаться с помощью Spec By Example

Новый формат• Тестировщик и

аналитик объясняют примеры

• Проводим Diverse & Merge

Page 29: Как научить людей общаться с помощью Spec By Example

Diverse & Merge• Разбиваем команду на

группы• Хотя бы 1 группа без

тестировщика и аналитика, которые прорабатывали требования

• Даем 15-20 минут на проработку своих примеров

• По окончании сводим все таблицы в одну

Page 30: Как научить людей общаться с помощью Spec By Example

Что на выходеРегион Существ

ует категория

Найдена услуга

Данные услуги

Услуга

Адрес

Адрес доставки

Юрлицо

Поволжье Да Да ID1АдресРога и копыта

ID1 Адрес

Адрес

Рога и копыта

Поволжье Нет Да ID1АдресРога и копыта

ID2 Адрес

Адрес

Рога и копыта

Page 31: Как научить людей общаться с помощью Spec By Example

Уменьшаем размеры

Page 32: Как научить людей общаться с помощью Spec By Example

Что делаемУменьшаем количество строк/столбцов в таблице• Вводим параметрические

обозначения• Сливаем схожие сценарии

в один• Убираем лишние данные• Выделяем новые

пользовательские истории

Page 33: Как научить людей общаться с помощью Spec By Example

Как былоРегион Существ

ует категория

Найдена услуга

Данные услуги

Услуга

Адрес

Адрес доставки

Юрлицо

Поволжье Да Да ID1АдресРога и копыта

ID1 Адрес

Рога и копыта

Поволжье Нет Да ID1АдресРога и копыта

ID2 Адрес

Рога и копыта

Page 34: Как научить людей общаться с помощью Spec By Example

Как сталоСуществует категория

Найдена услуга

Данные услуги

Услуга Данные услуги

Да Да Услуга Обновляем

Копируем

Нет Да Услуга Создаем Копируем

Page 35: Как научить людей общаться с помощью Spec By Example

Требования =

Тест-кейсы

Page 36: Как научить людей общаться с помощью Spec By Example

Время автоматизации

Page 37: Как научить людей общаться с помощью Spec By Example

Behavior Driven Development (BDD)

• Разбиваем пользовательскую историю на шаги• Каждый шаг имеет трансляцию в код• Входные данные – таблицы с предыдущего этапа

Page 38: Как научить людей общаться с помощью Spec By Example

Пример

Page 39: Как научить людей общаться с помощью Spec By Example

Подведем итоги

Page 40: Как научить людей общаться с помощью Spec By Example

Что сделали• Impact mapping• Совместная работа QA

+ BA• Diverse & Merge• Оптимизация данных• BDD

Page 41: Как научить людей общаться с помощью Spec By Example

Чего добились• Однозначная трассировка

требований в код• Однозначное понимание

требований всей командой• Упрощение оценки требований• Экономия времени

тестировщиков• Стало проще готовить и

проводить демо

Page 42: Как научить людей общаться с помощью Spec By Example

Twitter@andrebrov

[email protected]

Skyperebrov.andrey

Вопросы?

Page 43: Как научить людей общаться с помощью Spec By Example

Приглашаю на тренинги

Построение культуры DevOps Москва, 12 – 13 июня

Тестирование в AgileМосква, 8 – 10 июля