Как автотесты ускоряют релизы в OK.ru
-
Upload
badoo-development -
Category
Technology
-
view
3.757 -
download
3
Transcript of Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
• О нас• Про что это все• Начало• Хронология• Что и как работало
План
План
2
• 300+ человек (150 tech), • 10 лет на рынке, • в топ-3 сайтов в России (ex-USSR)• в топ-100 в мире (топ-10)
Что такое OK
Что такое OK
3
• Сообщения • Видео• Музыка• Игры• Фото• Подарочки • Live-streaming
Что такое OK
Сервисы
4
• 8500 серверов, 4 ДЦ + CDN
• 85 сервисов
• 6М конкурентных пользователей в пике
• Traffic ~ 1 Тбит/с
• 326М просмотров видео в сутки
Что такое OK
Под капотом
5
• Самая прибыльная соц.сеть рунета• 2014 - 4 млрд. выплатили издателям
игр• 12,4 млрд - доход Social Media за 2014
(без ВК)• Ядро аудитории - 25-35 лет• Max session - 41 минута на сайте• 73М MAU
Что такое OK
Деньги
6
Про что это все
Трансформация
Трансформация
8
Почему и зачем
Почему и зачем
9
• Пользовательский продукт
• Они учат тестировщиков программировать
• Atlassian
• Quality at Speed• Quality Assurance to Quality Assistance
Ссылки
Душеспасительное
10
Внимание
Внимание!
11
SUCCESS
FAILUREJUST
STORY
Начало
Илья
апрель, 2010 год
13
Илья Широков новый General Manager
одноклассники.ru
Антон
осень, 2011 год
14
Антон Федчин новый CTO
одноклассники.ru
Хронология
• 1 релиз в неделю
• Under Construction + Downtime
• ночью, 6-8 часов, Dev+Admin+2*Test
• Результат не гарантирован
• +20 тестировщиков за 2011 год
• Никаких автотестов
2011
Жизнь в далеком 2011-м
16
• обычно 2 релиза в неделю (web,бизнес-
логика)
• без Downtime, без Under Construction
• проверяются автотестами + 1
тестировщик
• только 1 релиз ночью
2016
Жизнь в 2016
17
• Разделили отделы
• Цель - понять можно ли вообще ?
• задача - автоматизировать Smoke-testing
2012
2012
18
Особенности
Окружения
19
• Q1 - увеличили покрытие в 5 раз
• Q2 - увеличили покрытие в 2 раза от Q1
• Утонули в поддержке автотестов
• заложили инфраструктуру на 2 года
2012
Результаты 2012
20
• Just keep going!!!
• Автотесты на API
• Инфраструктура
• Эксперименты с процессом
2013
2013
21
• Так жить нельзя!
• Обучение тестировщиков
• программированию (весна-осень)
• автоматизации тестирования (осень->)
2013
Результаты 2013
22
• Тестировщики начали писать автотесты
• Цель - покрыть функциональное
тестирование
• вторая группа обучается
2014
2014
23
• тестировщики удвоили количество
автотестов
• июль 2014 - мы можем релизить опираясь
на автотесты
• до 100 запусков тестов в день
2014
Результаты 2014
24
• Покрываем автотестами мобильную
версию
• Покрытие функциональными тестами
более 85% (бизнес-логика)
• Тестировщики пишут тесты на API
2015
2015
25
• июль 2015 - поддержка автотестов
передана тестировщикам
• большинство тестировщиков умеет
писать автотесты
• полностью перестроили инфраструктуру
автоматизации
• Full Test ~ 10 min
2015
Результаты 2015
26
• Автотесты на Android
• Автотесты на iOS
• Автотесты на админки
• Continuous Delivery Pipeline для ряда
проектов
2016
2016
27
Ингридиенты
2012
Startup mode
29
2012
SCRUM
30
2012
No legacy
31
• Простой workflow задачи на
автоматизацию тестирования:• ToDo• In Progress• Review• Done
• Одноуровневое ревью
• Весь код в мастере
• Поддержка автотестов без бюрократии
KISS
Keep it simple
32
• Bare metal minimum:
• Java
• WebDriver
• TestNG+ReportNG
• Maven
• Selenium Grid
• Jenkins
Велосипеды
Минимум стандартных инструментов
33
История
Начало (02-2012)
34
Jenkins
Se
SeSe Se
История
+ Revolver
35
Jenkins
Se
SeSe Se
Revolver
История
+Content Generators
36
Jenkins
Se
SeSe Se
RevolverContent Generators
История
+Node Utils
37
Jenkins
Se
Se+ASe+A Se+A
RevolverContent Generators
История
+Mnemonic, -Revolver (2013)
38
Jenkins
Se
Se+ASe+A Se+A
MnemonicContent Generators
История
+StoreKeeper
39
Jenkins
Se
Se+ASe+A Se+A
MnemonicContent Generators
Storekeeper
История
+Watson (2013)
40
Jenkins
Se
Se+ASe+A Se+A
MnemonicContent Generators
StorekeeperWatson
История
+Registrator (2014)
41
Jenkins
Se
Se+ASe+A Se+A
MnemonicContent Generators
StorekeeperWatson Registrator
История
+Holmes (01-2015)
42
Jenkins
Se
Se+ASe+A Se+A
MnemonicContent Generators
StorekeeperWatson Registrator
Holmes
История
+Berrimor (05-2015)
43
Jenkins
Se
Se+ASe+A Se+A
MnemonicContent Generators
StorekeeperWatson Registrator
Holmes
Berrimor
2015
-Selenium Grid (09-2015)
44
Jenkins
MnemonicContent Generators
StorekeeperWatson Registrator
Holmes
Berrimor
Se+ASe+ASe+A
NodeManager
Se+ASe+ASe+A
NodeManager
Se+ASe+ASe+A
NodeManager
Сейчас
+Coordinator, AdminUtils, Dashboard (2016)
45
Jenkins
MnemonicContent Generators
StorekeeperWatson Registrator
Holmes
Berrimor
Se+ASe+ASe+A
NodeManager
Se+ASe+ASe+A
NodeManager
Se+ASe+ASe+A
NodeManager
Coordinator
Dashboard AdminUtils
• Все велосипеды - от ограничений
• Миграции и редизайн неизбежны
Велосипеды
Про велосипедостроение
46
Про наши велосипеды
• Что будет если автотестов станет вдвое
больше ?
• Что будет если запусков автотестов
станет в 5 раз больше?
• Насколько стабильно по времени
работают тесты ?
Capacity
Capacity planning a.k.a. преждевременная оптимизация
47
• Непосредственное участие CTO
• Четкие цели и дэдлайны
• Понимание профита
• Выделение ресурсов
Политическая воля
Воля
48
• Самый мощный инструмент (ever seen)
• Бесплатно, open source :)
• По окончании итерации/раз в 1-2 месяца
Ретроспективы
Ретроспективы
49
Обучение - это ад
Обучение
50
• Программированию
• полгода - Java Crash Course
• Автоматизации тестирования
• 4 месяца
• 2-3 воркшопа каждый месяц
• git, selenium, code review, infra, etc.
Real life
Обучение
51
Геймификация
Геймификация
52
Геймификация на Coursera
Планка
Поднимаем планку
53
• Ownership
Поддержка автотестов
Поддержка автотестов
54
• Публичность• Дайджесты (долгие тесты, тесты с плохой
кармой)
ASAP