Презентация возможностей автоматизированного рабочего места диетолога "Everyday Studio"
Доклад Ильи Кудинова на DevConf 2013. "Организация...
-
Upload
badoo-development -
Category
Technology
-
view
514 -
download
2
description
Transcript of Доклад Ильи Кудинова на DevConf 2013. "Организация...
![Page 1: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/1.jpg)
Организация Организация автоматизированного тестированияавтоматизированного тестирования
в схеме Continious Integrationв схеме Continious Integration
Кудинов Илья, QA Engineer,Badoo Development
![Page 2: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/2.jpg)
Зачем нам это всё нужно?Зачем нам это всё нужно?
- Максимально быстрый релиз новых фич;
- Скорейшее реагирование на ошибки;
- Очень большой поток задач – маленькими порциями с ними справляться гораздо проще;
- Разработчики и менеджеры видят результат своей работы практически сразу;
![Page 3: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/3.jpg)
Немного цифр:Немного цифр:● 2 релиза в день
● >40 задач в день
● ≈70 разработчиков
● ≈20 QA инженеров
● ≈180 миллионов пользователей
● ≈750 тысяч пользователей онлайн в среднем
● ≈1.2 миллиона пользователей онлайн в пике
![Page 4: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/4.jpg)
Нам нужен крутой и мощный flow Нам нужен крутой и мощный flow контроля качества!контроля качества!
- Тестирование не должно затягиваться;
- Как можно больше кейсов;
- Проверка как задач по отдельности, так и релиза в целом;
- Минимизация “человеческого фактора” при тестировании и деплое;
![Page 5: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/5.jpg)
Без автоматизированного Без автоматизированного тестированиятестирования
![Page 6: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/6.jpg)
С автоматизированным С автоматизированным тестированиемтестированием
![Page 7: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/7.jpg)
ТеорияТеория..Сухой и лаконичный флоу.
![Page 8: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/8.jpg)
Этапы контроля качестваЭтапы контроля качества
1. ???
2. ???
3. ???
4. ???
5. ???
![Page 9: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/9.jpg)
1. Code Review
2. ???
3. ???
4. ???
5. ???
Этапы контроля качестваЭтапы контроля качества
![Page 10: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/10.jpg)
1. Code Review
2. Тестирование на девелоперском сервере
3. ???
4. ???
5. ???
Этапы контроля качестваЭтапы контроля качества
![Page 11: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/11.jpg)
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. ???
5. ???
Этапы контроля качестваЭтапы контроля качества
![Page 12: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/12.jpg)
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. ???
Этапы контроля качестваЭтапы контроля качества
![Page 13: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/13.jpg)
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 14: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/14.jpg)
Скучно?Скучно?
Исправляем!Исправляем!
![Page 15: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/15.jpg)
![Page 16: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/16.jpg)
![Page 17: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/17.jpg)
Постулаты:Постулаты:
- Задачи делаем максимально атомарными;
- Любую большую задачу разбиваем на отдельные части;
- Каждой задаче – свой тикет в Jira;
- Каждой задаче – своя ветка в Git;
![Page 18: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/18.jpg)
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 19: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/19.jpg)
Коммит-хуки gitКоммит-хуки git
● Корректность имени ветки● Проверка валидности кода (phpcf!)● Проверка прав на мерж● Обновление тикетов● … и многое другое, всего около 40
![Page 20: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/20.jpg)
Code ReviewCode Review
![Page 21: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/21.jpg)
Code ReviewCode Review
![Page 22: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/22.jpg)
1. Code Review
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 23: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/23.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 24: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/24.jpg)
Автоматическое тестирование Автоматическое тестирование веткиветки
![Page 25: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/25.jpg)
Многопоточная ПускалкаМногопоточная Пускалка
● Сбор статистики по тестам● Оптимальное распределение по потокам● Красивый вывод в консоль● Формирование отчёта для TeamCity● 18 000 юнит-тестов за 3-4 минуты!● Going OpenSource — stay tuned!
http://habrahabr.ru/post/181488/
![Page 26: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/26.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 27: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/27.jpg)
● 2 платформы — эмуляция продакшна● Собственная база данных● Свой sandbox для каждого девелопера● Общие для всех sandbox'ов демоны
Девелоперское окружениеДевелоперское окружение
![Page 28: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/28.jpg)
Ручной запуск юнит-тестов и Ручной запуск юнит-тестов и интеграционных тестовинтеграционных тестов
![Page 29: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/29.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 30: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/30.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 31: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/31.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
3.5. Автоматическое тестирование релиза
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 32: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/32.jpg)
Знакомьтесь: АидаЗнакомьтесь: Аида
![Page 33: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/33.jpg)
Automated Interactive Deploy Automated Interactive Deploy AssistantAssistant
● Деплой задач на препродакшн● Automerge● Запуск автоматических тестов● Рассылка уведомлений (jira, mail, jabber...)● … и многое другое!
http://habrahabr.ru/post/169417/
![Page 34: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/34.jpg)
Автоматическое тестирование Автоматическое тестирование релизарелиза
● Smoke-тесты при мерже ветки● Юнит-тесты● Интеграционные тесты● Selenium-тесты
![Page 35: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/35.jpg)
Code CoverageCode Coverage
- Благодаря нашим оптимизациям, теперь считается за 2 часа, а не за 40;
- Высокий CC всего нового кода (задача без юнит-тестов не пройдёт QA);
- Постепенно повышаемый CC легаси-кода;
![Page 36: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/36.jpg)
А если в новом релизе падают А если в новом релизе падают тесты?тесты?
![Page 37: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/37.jpg)
Deploy DashboardDeploy Dashboard
● Список текущих релизов● Список задач в каждом релизе● Список активных шотов
● Патчи к текущему релизу!
![Page 38: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/38.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
3.5. Автоматическое тестирование релиза
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 39: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/39.jpg)
Р Е Л И З !
![Page 40: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/40.jpg)
1. Code Review
1.5. Автоматическое тестирование ветки
2. Тестирование на девелоперском сервере
3. Тестирование в шоте
3.5. Автоматическое тестирование релиза
4. Тестирование на препродакшене
5. Тестирование на продакшене
Этапы контроля качестваЭтапы контроля качества
![Page 41: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/41.jpg)
Постоянный мониторингПостоянный мониторинг
- Логи ошибок со всех серверов;
- Всевозможная статистика;
- Сотни графиков разной степени полезности (от обычной до чрезвычайной!);
- Умный и натренированный отдел мониторинга;
![Page 42: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/42.jpg)
Итог:Итог:
- До 70% задач попадают на продакшн в день выполнения;
- Практически исключено попадание некачественного кода на продакшн;
- Любые просочившиеся ошибки очень быстро локализуются и устраняются;
- QA инженеры довольны и (по большей части) спокойны.
![Page 43: Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестирования в схеме Continious Integration".](https://reader034.fdocuments.in/reader034/viewer/2022042521/557cf792d8b42a57118b4abf/html5/thumbnails/43.jpg)
badoo.com
vk.com/badoocomfb.com/BadooMoscowtwitter.com/BadooDev
habrahabr.ru/company/badoo/
vk.com/relzegfb.com/relzeg