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

Post on 16-Apr-2017

3.757 views 3 download

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

Планка

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

53

• Ownership

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

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

54

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

кармой)

ASAP

Никита Макаровnikita.makarov@odnoklassniki.ru