1. Развитие процессов тестирования в
Badoo за три года,
или как мы думали, что всё хорошо, а оказалось, что
можно лучше.
Кудинов Илья, Badoo Development
2. Немного цифр — как обычно
● 2 серверных релиза в день
● Еженедельные релизы приложений
● ~80 => ~150 разработчиков
● ~20 => ~50 QA-инженеров
● 180 => 300+ миллионов пользователей
● 0.6 => 1+ миллиона пользователей онлайн
3. Разные QA-флоу
● Web / mobile app server
● С daemons
● Mobile flows
– iOS
– Android
– Windows
– Mobile Web
4. 5 (или около того) этапов контроля качества
1. Code Review
2. Тестирование на девеле
3. Тестирование в шоте
4. Тестирование на стейджинге
5. Верификация на продакшне
30. Совсем ручное тестирование
● Регистрируем пользователя для каждого теста
● Заливаем и модерируем фотографии
● Подготавливаем тестовые данные
31. Совсем ручное тестирование
● Регистрируем пользователя для каждого теста
● Заливаем и модерируем фотографии
● Подготавливаем тестовые данные
● Сложновоспроизводимые кейсы
32. Совсем ручное тестирование
● Регистрируем пользователя для каждого теста
● Заливаем и модерируем фотографии
● Подготавливаем тестовые данные
● Сложновоспроизводимые кейсы
● Не забываем удалять
37. QAAPI
● Быстрая регистрация пользователя
● Заполнение любых данных
● Изменение нередактируемых параметров
● Ускорение автотестов
38. QAAPI
● Быстрая регистрация пользователя
● Заполнение любых данных
● Изменение нередактируемых параметров
● Ускорение автотестов
● QAAPI сценарии
39. QAAPI
● Быстрая регистрация пользователя
● Заполнение любых данных
● Изменение нередактируемых параметров
● Ускорение автотестов
● QAAPI сценарии
● Недоступно для внешних пользователей
61. Автоматическое тестирование релиза
● Смоук-тесты при каждом обновлении релизной ветки
● Постоянно гоняющиеся юнит- и селениум-тесты
● Сигнализация о каждой ошибке
62. Автоматическое тестирование релиза
● Смоук-тесты при каждом обновлении релизной ветки
● Постоянно гоняющиеся юнит- и селениум-тесты
● Сигнализация о каждой ошибке
● Возможность быстрой пересборки билда при ошибке
68. Локализуем проблему
● Смотрим логи тестов
● Запускаем там, где не
запускались
● Находим тикет, в
котором всё сломалось
69. Локализуем проблему
● Смотрим логи тестов
● Запускаем там, где не
запускались
● Находим тикет, в
котором всё сломалось
● Помогает не всегда —
приходится искать
самим :(