Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
BDD И РЕАКТИВЩИНА В 2ГИС
ЕВГЕНИЙ ТЮТЮЕВ
FDD
FDD, FORTUNE DRIVEN DEVELOPMENT
▸ Пишете код
▸ Надеетесь что он заработает
BDD, BEHAVIOUR DRIVEN DEVELOPMENT
▸ Берете сценарий
▸ Пишете на него тест
▸ Пишете код, чтобы этот тест прошел
О ЧЕМ
▸ Как пришел к разработке через тесты
▸ Внедрение BDD на проект 2ГИС под iOS
▸ Какой профит
▸ Как внедрить опыт в команду
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
ЧАСТЬ 1: ЧТО БЫЛО ДО ТЕСТОВ
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
XCTEST
▸Запутанный синтаксис
▸Мало возможностей
KIWI
▸Specs
▸Expectations
▸Mocks
▸Много примеров
▸Няшный синтаксис
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
ВЫВОД 1
▸ Чтобы хоть как то написать один тест на готовом
проекте вам понадобится максимум час времени.
ЧАСТЬ 2: ПЛОХИЕ ТЕСТЫ
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
▸ Тестировали все подряд
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
▸ Тестировали все подряд
▸ Писались уже на готовый код.
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
▸ Тестировали все подряд
▸ Писались уже на готовый код
▸ Модульность? не, не слышал.
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
ВЫВОД 2
▸ Даже если тесты плохие, но их достаточно много, они
помогут вам отловить критичные баги.
ЧАСТЬ 3: ПУТЬ К ТЕСТАМ ЧУТЬ ЛУЧШЕ
2ГИС
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
КАК НАЧАТЬ ПИСАТЬ ТЕСТЫ?
КАК НАЧАТЬ ПИСАТЬ ТЕСТЫ?
▸ Взять и написать один тест.
КАК НАЧАТЬ ПИСАТЬ ТЕСТЫ?
▸ Взять и написать один тест.
▸ Написать кучу хоть каких то тестов.
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
▸ Понимаете что они не очень
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
▸ Понимаете что они не очень
▸ Удаляете
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
▸ Понимаете что они не очень
▸ Удаляете
▸ Пишите тесты получше
КАК ОПРЕДЕЛИТЬ ЧТО ТЕСТ ХОРОШ?
ОДНО ПРЕДПОЛОЖЕНИЕ = ОДИН ТЕСТ
СЛЕДСТВИЕ
ОДИН ТЕСТ = МАЛО КОДА
Кто то там.
ВЫВОД 3
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
Удалить
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
ТЕСТ ДОЛЖЕН БЫТЬ НАСТОЛЬКО ТУП
И ПРОСТ, ЧТО ОБЪЯСНИТЬ ЕГО
МОЖНО ДАЖЕ ВАШЕЙ МАМЕ.
Кто то там.
ВЫВОД 4
ХОРОШИЕ ТЕСТЫ ≈ ХОРОШИЙ КОД
Кто то там.
ВЫВОД 5
ЧАСТЬ 4: ПУТЬ К НОРМАЛЬНЫМ ТЕСТАМ НА
РЕАКТИВНЫЙ КОД
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
▸ Тестируем то, что метод в сигнале вызывается
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
▸ Тестируем то, что метод в сигнале вызывается
▸ Тестируем метод в теле сигнала
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
▸ Тестируем то, что метод в сигнале вызывается
▸ Тестируем метод в теле сигнала
▸ Если метод большой, то разбиваем его на простые
методы и тестируем их.
ЧЕМ ХОРОШ ТАКОЙ ПОДХОД
ЧЕМ ХОРОШ ТАКОЙ ПОДХОД
▸ Локализует проблему при поломке
ЧЕМ ХОРОШ ТАКОЙ ПОДХОД
▸ Локализует проблему при поломке
▸ Меньше кода проще тестировать.
УПРАВЛЕНИЕ СЛОЖНОСТЬЮ — САМЫЙ ВАЖНЫЙ
ТЕХНИЧЕСКИЙ АСПЕКТ РАЗРАБОТКИ ПО.
ПО-МОЕМУ, УПРАВЛЕНИЕ СЛОЖНОСТЬЮ
НАСТОЛЬКО ВАЖНО, ЧТО ОНО ДОЛЖНО БЫТЬ
ГЛАВНЫМ ТЕХНИЧЕСКИМ ИМПЕРАТИВОМ
РАЗРАБОТКИ ПО.
С. Макконнелл
ЧТО ПОЛУЧИЛИ
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
▸ Протестированная часть разбита на модули
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
▸ Протестированная часть разбита на модули
▸ Новые фичи пишутся через тесты
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
▸ Протестированная часть разбита на модули
▸ Новые фичи пишутся через тесты
▸ Команда втягивается в процесс
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
▸ Ясность
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
▸ Ясность
▸ Предсказуемость
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
▸ Ясность
▸ Предсказуемость
▸ Нет регрессиям
БОНУС: МОТИВАЦИЯ КОМАНДЫ
БОНУС: МОТИВАЦИЯ КОМАНДЫ
▸ Как?
БОНУС: МОТИВАЦИЯ КОМАНДЫ
▸ Как?
▸ Никак
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
ТЕСТИРОВАТЬ - КРУТО
Ч. Норрис
ВОПРОСЫ?
▸ e.tyutyuev@2gis.ru

More Related Content

«Bdd и реактивщина в 2ГИС», Евгений Тютюев