Ozon Tech 2023Snapshot-ы в тестированиидизайн-системыДарья Поснова, старший специалист по тестированию
View Slide
Что такое snapshot-тестирование2
Какие компоненты дизайн-системы мы можем тестировать с помощью snapshot-тестовЧто такое snapshot-тестирование3ЦветаСтилиСостоянияШрифтыКнопкиИконкиИзображенияИндикаторы
Что такое snapshot-тестирование4Как мытестировалидизайн системубез snapshot-тестов?• Тесты на экраны приложения• Ручные прогоны• Могли пропустить баги• Не все элементы дизайн-системыуже были использованы вприложении, мы не могли ихувидеть
Что такое snapshot-тестирование5Нужныsnapshot-тестына дизайн-систему.Почему?• Быстро масштабируются• Можно контролировать покрытиетестами всех элементов дизайн-системы• Проходят быстрее чем обычныеавтотесты и ручные прогоны• Нагляднее
Что такое snapshot-тестирование6Что для этогонужно?• Понимание DS• Структурирование тестов• Интеграция в процесс разработки
Контракты и макетыПонимание дизайн-системы7
Структурирование8Папка с тестомБылоСтало
Обновление9
Интеграция в процесс разработки10
Как мы работаемсо snapshot-тестами
Что мы используем12
Немного статистики13700+ snapshot-тестов,из них 150+ на атомы DSПрогон тестовна 1 платформе занимаетпримерно 20 минутSnapshot-тест на экранприложения за 2 секундыОдин snapshot-тестна атом дизайн-системыпроходит примерно за секунду
Подготовка мока141. Покрываем много комбинаций2. Проводим грумминги, чтобы подсветить опасныесочетания3. Для иконок достаточно одного теста
Пример мока и эталона15
Пример мока и эталона16
Пример snapshot-теста17
Автогенерация моков для иконок18
Про фермы19
Отчет, как это было20
Отчет, как это стало21
22Отчет, как это стало
23Как и что мы планируем улучшать?👍
24Отойти отфиксированногосимулятора/эмулятора
25Сделатьавтогенерациюмоков из proto-файлов
26Внедрить запуск snapshot-тестовдо влития фича-ветки в эпик,чтобы как можно раньшеотловить баги
27Выводы• Snapshot-тесты — обязательный пункт притестировании дизайн-системы, так как глазами невсегда можно отловить изменения• Изменения видны мгновенно• Тесты легко поддерживать и масштабировать
[email protected]Спасибо за вниманиеДарья Поснова, старший специалист по тестированию