Как автотесты ускоряют релизы в 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
FAILUR
EJUST
STOR
Y
Начало
Илья
апрель, 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
Revolver
Content
Generators
История
+Node Utils
37
Jenkins
Se
Se+ASe+A Se+A
Revolver
Content
Generators
История
+Mnemonic, -Revolver (2013)
38
Jenkins
Se
Se+ASe+A Se+A
Mnemonic
Content
Generators
История
+StoreKeeper
39
Jenkins
Se
Se+ASe+A Se+A
Mnemonic
Content
Generators
Storekeeper
История
+Watson (2013)
40
Jenkins
Se
Se+ASe+A Se+A
Mnemonic
Content
Generators
StorekeeperWatson
История
+Registrator (2014)
41
Jenkins
Se
Se+ASe+A Se+A
Mnemonic
Content
Generators
StorekeeperWatson Registrator
История
+Holmes (01-2015)
42
Jenkins
Se
Se+ASe+A Se+A
Mnemonic
Content
Generators
StorekeeperWatson Registrator
Holmes
История
+Berrimor (05-2015)
43
Jenkins
Se
Se+ASe+A Se+A
Mnemonic
Content
Generators
StorekeeperWatson Registrator
Holmes
Berrimor
2015
-Selenium Grid (09-2015)
44
Jenkins
Mnemonic
Content
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
Mnemonic
Content
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
Никита Макаров
nikita.makarov@odnoklassniki.ru

Как автотесты ускоряют релизы в OK.ru