Программа курса:
Неделя 0. Вводная
Базовая практика и теория тестирования с pytest
О чём: Никита разберёт базу тестирования на pytest: как работает сбор и выполнение тестов, что такое фикстуры и параметризация, упомянет о хуках, плагинах, моках и стабах. Федя расскажет, как наличие хороших тестов снижает когнитивную нагрузку, развенчит миф, что без тестов быстрее и расскажет про главное отличие хорошего теста от плохого.
Какую проблему решаем: Выравниваем контекст.
На выходе: Поймем как написать и куда положить первый тест на проекте.
Неделя 1 «Читаемые тесты»
О чём: Про понятные тесты! Тесты – тоже код. Они, возможно, должны быть даже понятнее, чем код самого приложения. На занятии Никита покажет, как значительно упростить понимание любого теста: разделить данные и поведение. Рассмотрим основные инструменты и стратегии. А Федя расскажет, когда стоит и не стоит переиспользовать код приложения в тестах.
Какую проблему решаем: Когда падает непонятный тест — хочется его просто удалить, а не разбираться, что же имел ввиду его упоротый автор.
На выходе: Научимся готовить тестовую среду так, чтобы тесты были полезными — генерить разнообразные, но совместимые с вашим приложением тестовые сущности в читабельном виде.
Неделя 2 «Делаем тесты быстрыми и надежными»
О чём: Если тесты выполняются долго или работают ненадежно, то никто не будет их запускать. Никита покажет, как сделать тесты быстрыми и какими способами улучшить их надежность (спойлер: будет про сферического коня в вакууме).
Какую проблему решаем: Медленные тесты увеличивают feedback-loop,замедляют публикацию, а самое главное — программисты привыкают их ненавидеть, а значит — не писать новые.
На выходе: Научимся делать полезный и негромоздкий тестовый набор, который в будущем будет помогать, а не выращивать время билда до 30 минут.
Неделя 3 «Тесты и жизнь»
О чём: Одна из основных проблем тестирования – люди, которые мешают нам писать тесты. Нам нужно научиться работать с ними. Возможно, данный фактор даже важнее знаний внутренностей вашего тестового фреймворка. Никита и Федя расскажут, как они помогают командам начать (или продолжить) писать тесты и работать с людьми.
Какую проблему решаем: Даже с самыми кайфовыми тестовыми инструментами, вашу инициативу легко завалить пассивным сопротивлением. А если без подготовки поговорить о тестах с бизнесом — отказ вообще гарантирован.
На выходе: Получим понятный и исчерпывающий набор действий нужных, чтобы начать писать тесты. Поймём, как продавать тесты разным типам людей.