SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
DSC2016
УПРАВЛЯЕМ
ЭВОЛЮЦИЕЙ
НА ЛЕТУ
Немного о себе
• Дадеркин Максим
• Ведущий инженер-
программист
в компании EPAM Systems
Эволюция
Естественный
отбор
А/В
кампания
Естественный
отбор
==
Термины
• A/B-кампания (эксперимент)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
• Цель
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
• Цель
• A/B-тестирование
Зачем нужно проводить
A/B-тестирование?
Как внедрить
A/B-тестирование
в проект?
Простейшее приложение
Front End
Back End
DB
Mobile
1. Добавляем метрики
Внедряем A/B тестирование
Добавляем метрики
Front End
Back End
DB
Mobile
Метрика
Метрика
Front End
Back End
DB
Mobile
Метрика
Метрика
Метрика
Что измерять? (Примеры метрик)
• Время работы сервисов (Performance)
• Начало/конец отрисовки контента (WEB)
• Количество JS-скриптов
• Количество картинок
• …
Можно использовать
• Google Analytics
• Yandex Metrika
• Ваша библиотека*
1. Добавляем метрики
2. Изменяем компоненты
Внедряем A/B-тестирование
Требования к приложению
• Архитектура должна быть гибкой
• Компоненты должны быть легко заменяемы
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
Кто использует
Google Analytics и (или)
Яндекс Метрика
вместе с A/B-тестированием?
Google Analytics
• Просто интегрировать
• Различные цели для
тестирования
• Широкий список
элементов для
тестирования
• Позволяет создавать
специализированные
отчёты
Яндекс Метрика
• Функционал похож на
Google Analytics
• A/B-тестирование не
присутствует в явном
виде
• Выбрать сервер для обработки запроса
• Запустить A/B-кампанию в мобильном
приложении
• Генерировать случайные значения
Что GA/YM не умеют?
• Модуль: ngx_http_split_clients_module
• Пример конфигурации:
• Real-Time база данных
• Удаленная конфигурация (Remote Config)
• Библиотека, позволяющая проводить
эксперименты над полями.
• Пример:
button_color = uniformChoice(choices=["red",
"green"], unit=userid);
button_text = "Ok";
is_change_text = bernoulliTrial(p=0.3,
unit=userid);
if (is_change_text) {
button_text = "Apply";
}
Многорукий бандит
(Multi-armed bandit)
MAB
“Многорукий Бандит”– это эксперимент, в
рамках которого:
• Ставится цель определить оптимальное
или наиболее прибыльное действие
• Распределение трафика по вариантам
можно изменить в ходе эксперимента
• Позволяют быстрее получить результат
• Трафик распределяется на наиболее
перспективный вариант
• Трафик распределяется постепенно
MAB
А что улучшать?
Найти решение мне помогла
программа интуитивного типа,
специально созданная для изучения
определенных сторон человеческой
души. Меня можно назвать отцом
Матрицы, а ее без преувеличения —
матерью.
Архитектор
Что такое машинное
обучение?
Что-то
на входе
Что-то
на выходе
Что-то
на входе
Что-то
на выходе
𝑥 + 𝑎 𝑛
=
𝑘=0
𝑛
𝑛
𝑘
𝑥 𝑘
𝑎 𝑛−𝑘
Машинное обучение
• Машинное обучение – область обучения,
которая дает компьютерам возможность
учиться не будучи явно
запрограммированными.
Задачи машинного обучения:
• Регрессия (ответ - числа, задачи
прогнозирования)
• Классификация
• Ранжирование (поисковые системы)
Машинное обучение
Как определить метрики,
важные для вашего
приложения?
Постановка задачи
• У нас есть страница, которую мы хотим
улучшить.
• Цель: пользователь совершает покупку.
Метрики страницы (Бинарные)
• наличие или отсутствие определенного
элемента на странице
• совершил пользователь покупку или нет
• использование http(s)
• http/2
• мобильный клиент
• планшет
• …
• время ответа сервера
• время загрузки страницы (DOM ready)
• разрешение экрана
• …
Метрики страницы (Количественные)
Случайный лес
Random Forest
Набор средств
• TensorFlow
• Apache Spark Mlib
• Microsoft CNTK
• …
Итоги
Вопросы?

Contenu connexe

Similaire à Управляем эволюцией на лету

Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
Sergey Xek
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
HighLoad2009
 
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ontico
 
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
Vladislav Morgun
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
WRider
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
Igor Pozumentov
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
 

Similaire à Управляем эволюцией на лету (20)

Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
 
BDD
BDDBDD
BDD
 
Автоматизация тестирования. Глобализация
Автоматизация тестирования. ГлобализацияАвтоматизация тестирования. Глобализация
Автоматизация тестирования. Глобализация
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Метрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцахМетрики автоматизированного тестирования на пальцах
Метрики автоматизированного тестирования на пальцах
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестирование
 
Jubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation Tool
 
Usability testing methods overview (SQA Days’13)
Usability testing methods overview (SQA Days’13)Usability testing methods overview (SQA Days’13)
Usability testing methods overview (SQA Days’13)
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективы
 
Анна Книжник
Анна КнижникАнна Книжник
Анна Книжник
 
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
 
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Обзор методов юзабилити-тестирования
Обзор методов юзабилити-тестированияОбзор методов юзабилити-тестирования
Обзор методов юзабилити-тестирования
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Data Mining in RTB
Data Mining in RTBData Mining in RTB
Data Mining in RTB
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 

Plus de Vitebsk DSC

Микросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudМикросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring Cloud
Vitebsk DSC
 

Plus de Vitebsk DSC (20)

Community-Z
Community-ZCommunity-Z
Community-Z
 
How to exceed Customer's expectations by delivery complicated ML+RPA project
How to exceed Customer's expectations by delivery complicated ML+RPA projectHow to exceed Customer's expectations by delivery complicated ML+RPA project
How to exceed Customer's expectations by delivery complicated ML+RPA project
 
Аджайл майндсет. Что разрушает вашу команду?
Аджайл майндсет. Что разрушает вашу команду?Аджайл майндсет. Что разрушает вашу команду?
Аджайл майндсет. Что разрушает вашу команду?
 
Микросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudМикросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring Cloud
 
Тестирование больших данных
Тестирование больших данныхТестирование больших данных
Тестирование больших данных
 
Amazon SQS или не все костыли одинаково бесполезны
Amazon SQS или не все костыли одинаково бесполезныAmazon SQS или не все костыли одинаково бесполезны
Amazon SQS или не все костыли одинаково бесполезны
 
Amazon Athena overview
Amazon Athena overviewAmazon Athena overview
Amazon Athena overview
 
Typical BA Mistakes ​in documentation
Typical BA Mistakes ​in documentationTypical BA Mistakes ​in documentation
Typical BA Mistakes ​in documentation
 
Boring is Fun!
Boring is Fun!Boring is Fun!
Boring is Fun!
 
На пути к совершенному инжинирингу
На пути к совершенному инжинирингуНа пути к совершенному инжинирингу
На пути к совершенному инжинирингу
 
Чего же ты хочешь, человек?
Чего же ты хочешь, человек?Чего же ты хочешь, человек?
Чего же ты хочешь, человек?
 
Растем вместе с eKIDS
Растем вместе с eKIDSРастем вместе с eKIDS
Растем вместе с eKIDS
 
Технологии беспилотных автомобилей
Технологии беспилотных автомобилейТехнологии беспилотных автомобилей
Технологии беспилотных автомобилей
 
Оптимизация потребления памяти в Java - делаем уборку правильно
Оптимизация потребления памяти в Java - делаем уборку правильноОптимизация потребления памяти в Java - делаем уборку правильно
Оптимизация потребления памяти в Java - делаем уборку правильно
 
Жизнь после promises
Жизнь после promisesЖизнь после promises
Жизнь после promises
 
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчейВыбираем стратегию создания бранчей
Выбираем стратегию создания бранчей
 
Reactive programming для успеха вашего стартапа
Reactive programming для успеха вашего стартапаReactive programming для успеха вашего стартапа
Reactive programming для успеха вашего стартапа
 
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java DriverЭкстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java Driver
 
Проблемы с производительностью приложений на AngularJS и способы их решения
Проблемы с производительностью приложений на AngularJS и способы их решенияПроблемы с производительностью приложений на AngularJS и способы их решения
Проблемы с производительностью приложений на AngularJS и способы их решения
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практике
 

Управляем эволюцией на лету