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

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

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

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

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

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

• О нас• Про что это все• Начало• Хронология• Что и как работало

План

План

2

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

• 300+ человек (150 tech), • 10 лет на рынке, • в топ-3 сайтов в России (ex-USSR)• в топ-100 в мире (топ-10)

Что такое OK

Что такое OK

3

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

• Сообщения • Видео• Музыка• Игры• Фото• Подарочки • Live-streaming

Что такое OK

Сервисы

4

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

• 8500 серверов, 4 ДЦ + CDN

• 85 сервисов

• 6М конкурентных пользователей в пике

• Traffic ~ 1 Тбит/с

• 326М просмотров видео в сутки

Что такое OK

Под капотом

5

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

• Самая прибыльная соц.сеть рунета• 2014 - 4 млрд. выплатили издателям

игр• 12,4 млрд - доход Social Media за 2014

(без ВК)• Ядро аудитории - 25-35 лет• Max session - 41 минута на сайте• 73М MAU

Что такое OK

Деньги

6

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

Про что это все

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

Трансформация

Трансформация

8

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

Почему и зачем

Почему и зачем

9

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

• Пользовательский продукт

• Они учат тестировщиков программировать

• Atlassian

• Quality at Speed• Quality Assurance to Quality Assistance

Ссылки

Душеспасительное

10

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

Внимание

Внимание!

11

SUCCESS

FAILUREJUST

STORY

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

Начало

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

Илья

апрель, 2010 год

13

Илья Широков новый General Manager

одноклассники.ru

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

Антон

осень, 2011 год

14

Антон Федчин новый CTO

одноклассники.ru

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

Хронология

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

• 1 релиз в неделю

• Under Construction + Downtime

• ночью, 6-8 часов, Dev+Admin+2*Test

• Результат не гарантирован

• +20 тестировщиков за 2011 год

• Никаких автотестов

2011

Жизнь в далеком 2011-м

16

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

• обычно 2 релиза в неделю (web,бизнес-

логика)

• без Downtime, без Under Construction

• проверяются автотестами + 1

тестировщик

• только 1 релиз ночью

2016

Жизнь в 2016

17

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

• Разделили отделы

• Цель - понять можно ли вообще ?

• задача - автоматизировать Smoke-testing

2012

2012

18

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

Особенности

Окружения

19

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

• Q1 - увеличили покрытие в 5 раз

• Q2 - увеличили покрытие в 2 раза от Q1

• Утонули в поддержке автотестов

• заложили инфраструктуру на 2 года

2012

Результаты 2012

20

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

• Just keep going!!!

• Автотесты на API

• Инфраструктура

• Эксперименты с процессом

2013

2013

21

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

• Так жить нельзя!

• Обучение тестировщиков

• программированию (весна-осень)

• автоматизации тестирования (осень->)

2013

Результаты 2013

22

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

• Тестировщики начали писать автотесты

• Цель - покрыть функциональное

тестирование

• вторая группа обучается

2014

2014

23

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

• тестировщики удвоили количество

автотестов

• июль 2014 - мы можем релизить опираясь

на автотесты

• до 100 запусков тестов в день

2014

Результаты 2014

24

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

• Покрываем автотестами мобильную

версию

• Покрытие функциональными тестами

более 85% (бизнес-логика)

• Тестировщики пишут тесты на API

2015

2015

25

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

• июль 2015 - поддержка автотестов

передана тестировщикам

• большинство тестировщиков умеет

писать автотесты

• полностью перестроили инфраструктуру

автоматизации

• Full Test ~ 10 min

2015

Результаты 2015

26

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

• Автотесты на Android

• Автотесты на iOS

• Автотесты на админки

• Continuous Delivery Pipeline для ряда

проектов

2016

2016

27

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

Ингридиенты

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

2012

Startup mode

29

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

2012

SCRUM

30

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

2012

No legacy

31

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

• Простой workflow задачи на

автоматизацию тестирования:• ToDo• In Progress• Review• Done

• Одноуровневое ревью

• Весь код в мастере

• Поддержка автотестов без бюрократии

KISS

Keep it simple

32

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

• Bare metal minimum:

• Java

• WebDriver

• TestNG+ReportNG

• Maven

• Selenium Grid

• Jenkins

Велосипеды

Минимум стандартных инструментов

33

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

История

Начало (02-2012)

34

Jenkins

Se

SeSe Se

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

История

+ Revolver

35

Jenkins

Se

SeSe Se

Revolver

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

История

+Content Generators

36

Jenkins

Se

SeSe Se

RevolverContent Generators

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

История

+Node Utils

37

Jenkins

Se

Se+ASe+A Se+A

RevolverContent Generators

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

История

+Mnemonic, -Revolver (2013)

38

Jenkins

Se

Se+ASe+A Se+A

MnemonicContent Generators

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

История

+StoreKeeper

39

Jenkins

Se

Se+ASe+A Se+A

MnemonicContent Generators

Storekeeper

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

История

+Watson (2013)

40

Jenkins

Se

Se+ASe+A Se+A

MnemonicContent Generators

StorekeeperWatson

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

История

+Registrator (2014)

41

Jenkins

Se

Se+ASe+A Se+A

MnemonicContent Generators

StorekeeperWatson Registrator

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

История

+Holmes (01-2015)

42

Jenkins

Se

Se+ASe+A Se+A

MnemonicContent Generators

StorekeeperWatson Registrator

Holmes

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

История

+Berrimor (05-2015)

43

Jenkins

Se

Se+ASe+A Se+A

MnemonicContent Generators

StorekeeperWatson Registrator

Holmes

Berrimor

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

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

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

Сейчас

+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

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

• Все велосипеды - от ограничений

• Миграции и редизайн неизбежны

Велосипеды

Про велосипедостроение

46

Про наши велосипеды

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

• Что будет если автотестов станет вдвое

больше ?

• Что будет если запусков автотестов

станет в 5 раз больше?

• Насколько стабильно по времени

работают тесты ?

Capacity

Capacity planning a.k.a. преждевременная оптимизация

47

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

• Непосредственное участие CTO

• Четкие цели и дэдлайны

• Понимание профита

• Выделение ресурсов

Политическая воля

Воля

48

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

• Самый мощный инструмент (ever seen)

• Бесплатно, open source :)

• По окончании итерации/раз в 1-2 месяца

Ретроспективы

Ретроспективы

49

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

Обучение - это ад

Обучение

50

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

• Программированию

• полгода - Java Crash Course

• Автоматизации тестирования

• 4 месяца

• 2-3 воркшопа каждый месяц

• git, selenium, code review, infra, etc.

Real life

Обучение

51

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

Планка

Поднимаем планку

53

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

• Ownership

Поддержка автотестов

Поддержка автотестов

54

• Публичность• Дайджесты (долгие тесты, тесты с плохой

кармой)

ASAP