Организация Организация автоматизированного тестированияавтоматизированного тестированияв схеме непрерывной интеграциив схеме непрерывной интеграции
Кудинов Илья, Badoo Development
Не автоматизированное тестированиеНе автоматизированное тестирование
Автоматизированное тестированиеАвтоматизированное тестирование
Немного цифр:Немного цифр:
● 2 релиза в день● >40 задач в день● ≈70 разработчиков● 22 QA инженера
● ≈180 миллионов пользователей● 600 тысяч пользователей онлайн
Этапы контроля качестваЭтапы контроля качества
1. ???
2. ???
3. ???
4. ???
5. ???
1. Code Review
2. ???
3. ???
4. ???
5. ???
Этапы контроля качестваЭтапы контроля качества
1. Code Review
2. Тестирование на девелоперском сервере
3. ???
4. ???
5. ???
Этапы контроля качестваЭтапы контроля качества
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. ???
5. ???
Этапы контроля качестваЭтапы контроля качества
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. ???
Этапы контроля качестваЭтапы контроля качества
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
Скучно?Скучно?
Исправляем!Исправляем!
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
Code ReviewCode Review
Коммит-хуки gitКоммит-хуки git
● Корректность имени ветки● Проверка валидности кода (phpcf!)● Проверка прав на мерж● Обновление тикетов● … и многое другое, всего около 40
Code ReviewCode Review
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
Автоматическое тестирование веткиАвтоматическое тестирование ветки
Многопоточная ПускалкаМногопоточная Пускалка
● Сбор статистики по тестам● Оптимальное распределение по потокам● Красивый вывод в консоль● Формирование отчёта для TeamCity● 17'000 юнит-тестов за 3-4 минуты!● Going OpenSource — stay tuned!
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
● 2 платформы — эмуляция продакшна● Собственная база данных● Свой sandbox для каждого девелопера● Общие для всех sandbox'ов демоны
Девелоперское окружениеДевелоперское окружение
Ручной запуск юнит-тестов и Ручной запуск юнит-тестов и интеграционных тестовинтеграционных тестов
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
3.5 Автоматическое тестирование релиза
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
Знакомьтесь: АидаЗнакомьтесь: Аида
Automated Interactive Deploy AssistantAutomated Interactive Deploy Assistant
● Деплой задач на препродакшн● Automerge● Запуск автоматических тестов● Рассылка уведомлений (jira, mail, jabber...)● … и многое другое!
Автоматическое тестирование релизаАвтоматическое тестирование релиза
● Smoke-тесты при мерже ветки● Юнит-тесты● Интеграционные тесты● Selenium-тесты
А если в новом релизе падают тесты?А если в новом релизе падают тесты?
Deploy DashboardDeploy Dashboard
● Список текущих релизов● Список задач в каждом релизе● Список активных шотов
● Патчи к текущему релизу!
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
3.5 Автоматическое тестирование релиза
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
Р Е Л И З !
1. Code Review
1.5 Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
3.5 Автоматическое тестирование релиза
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
badoo.com
vk.com/badoocomfb.com/BadooMoscowtwitter.com/BadooDev
habrahabr.ru/company/badoo/
vk.com/relzegfb.com/relzeg
Top Related