SlideShare a Scribd company logo
1 of 12
Quality Assurance в условиях
тотального A/B тестирования
Наталия Голодюк. Luxoft, Hotwire
A/B тестирование
- Тестируем страницы
Image source: https://visualwebsiteoptimizer.com/ab-testing/images/what-is-ab-testing.png
Мультивариантное
тестирование
- Тестируем элементы на странице
Image source: http://conversionxl.markitektou.netdna-cdn.com/wp-content/uploads/2013/05/multivariate-testing-conversionxl.jpg
Жизненный цикл теста
Гипотеза
Уточняем/аргументируем
ожидаемое улучшение
Готовим две-три версии
формы
«Если добавить опцию поиска
эко-отелей,
конверсия возрастет.»
«Количество людей, желающих
приобрести номер в эко-
отеле, возросло на 10% за
последние полгода. Если мы
упростим поиск таких отелей на
нашем сайте, это может увеличить
количество бронирований на 2-
7%.»
«Версия 1: текущее состояние
формы поиска – без этой опции;
Версия 2: опция в виде чекбокса;
Версия 3: ссылка на список всех
эко-отелей.»
Жизненный цикл теста
Релизим
Анализируем результаты
Оставляем версию, что
принесла больше
пользователей/денег
«Отдел аналитиков говорит, что
общее количество проданных
отелей возросло на 5%, именно
благодаря всплеску продаж комнат
в эко-отелях.»
«Версия Б – опция в виде чекбокса
– в жизнь на 100%.»
Как тестировать мультивариантный
функционал?
Главный вопрос
Как тестировать?
Image source: http://blog.utest.com/wp-content/uploads/2013/05/Keep_Calm_And_Test.png
Нужен переключатель вариантов:
vt.NBA=1 – включает первую версию элемента
vt.NBA=2 – вторую
vt.NBA=3 – третью
Что тестировать?
Что разработанные версии соответствуют требованиям
Что процентное соотношение траффика
корректно выставлено
Что версии отслеживаются
Тестировать все комбинации версий разных элементов на
странице
Не нужно
Что в рамках одной сессии пользователь видит только одну версию
элемента
Как автоматизировать?
Image source: http://blog.qatestlab.com/wp-content/uploads/2013/03/software-testing-company-1230.png
Сложно – добиться детерминистичности
тестов версионированого функционала
Вариант – разработка «выключателя»
версионности (vt.ALL=0)
Что автоматизировать?
Image source: http://blog.qatestlab.com/wp-content/uploads/2013/03/software-testing-company-1230.png
Контрольные версии
Или все версии – если они долгожители
Версию, что «победила» и
включается на 100%
Спасибо!
http://www.linkedin.com/pub/nataliya-holodiuk/26/a84/6ab
http://en.wikipedia.org/wiki/Multivariate_testing
http://en.wikipedia.org/wiki/A/B_testing
https://www.optimizely.com/resources/multivariate-test-vs-ab-test

More Related Content

Viewers also liked

Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самИнструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самSQALab
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаSQALab
 
VIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаVIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаSQALab
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиSQALab
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советыSQALab
 
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисовSQALab
 
Миссия тест-менеджера
Миссия тест-менеджераМиссия тест-менеджера
Миссия тест-менеджераSQALab
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестированииSQALab
 
Первоклассное тестирование
Первоклассное тестированиеПервоклассное тестирование
Первоклассное тестированиеSQALab
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияSQALab
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеSQALab
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаSQALab
 
Тест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьТест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьSQALab
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...SQALab
 

Viewers also liked (14)

Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самИнструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного цикла
 
VIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаVIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллекта
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщиками
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
 
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисов
 
Миссия тест-менеджера
Миссия тест-менеджераМиссия тест-менеджера
Миссия тест-менеджера
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестировании
 
Первоклассное тестирование
Первоклассное тестированиеПервоклассное тестирование
Первоклассное тестирование
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестирования
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применение
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионала
 
Тест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьТест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писать
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Quality Assurance в условиях тотального A/B тестирования

Editor's Notes

  1. A/B тестирование очень эффективный маркетинговый инструмент, который позволяет хорошо изучить целевую аудиторию сайта; то, что  побуждает их покупать и что, наоборот, отталкивает. Поэтому много продуктоводов с удовольствием используют его,  что, в свою очередь,вносит свою спейифику в роботу разработкиков и qa-ев на этих проектах.Давайте представим, что мы работаем над интернет-магазином. У нас есть идея новой страницы билинга, немного измененной. Но мы не уверены, что она понравится пользователям больше, чем текущая.Что же делать в таком случае? Если просто заменить страницу на новую, это может отпугнуть часть  давних клиентов, которые уже привикли в существующей, к тому же не факт, что это понравится новым пользователям. В таком случае, чтобы  потестировать (тоесть проверить действительно ли понравится новая страница пользовтаелям, и принесет ли это прибыль магазину) мы просто выкативаем ее как версию. Тоесть 50% случайно выбраных пользователей будут видеть старую билинг страницу, а другие 50% будут перенаправлятся на новую.
  2. Думаю, всем понятно, что версионировать таким образом можно не только сами страницы, но и элементы на них.Причем одновременно можно тестировать не только один элемент, а несколько. Такое тестирование называется мультивариантным.И сейчас самое время возвратиться к теме нашей презентации и немножко уточнить ее, поскольку речь пойдет именно о мультивариантном тестировании.Термин «A/B тестирование» был вынесен в название, поскольку большинство знакомы именно с ним и под A/B тестированием часто подразумевают и мультивариантное.Но главное о чем я собираюся с вами поговорить, это как же тестировать в условиях, когда заказчик увлекается такими маркетинговыми исследованиями. Если тестируюся страницы – это не страшно. Но если для 50% элементов на одной странице в одно и то же время создаются по несколько вариантов для каждого – мануальное тестирование, равно как и автоматизация превращаюся в сущий ад для QA. Но чтобі понять, что и когда нужно тестировать, нужно знать полній цикл жизни версий.
  3. Как вы уже, думаю, поняли, все начинается с гипотезы.Для примера рассмотрим сферический сайт для бронирования отелей.К примеру, Продукт Овнер видит новый тренд в сфере тревел сайтов - все больше людей из целевой  аудитории  предпочитают бронировать еко-отели, отели где все материалы натуральные, экологически чистые. В связи с этим он предполагает, что если на сайт в форме поиска добавить опцию поиска еко-отелей, количество бронирований возрастет. И если ожидаемый прирост бронирований достаточно выгодный, чтобы начать разработку версий, он ставит цели, обозначает, в каком случае мультивариантное тестирование сможет считаться успешным, и дает задание на разработку версий и процентное распределения траффика.Разработчики реализируютфичу «Опция поиска эко-отелей» версиониррованой согласно требованиям. Версия 1– текущее состояние формы поиска – без этой опции;Версия 2– опция в виде чекбокса;Версия 3 – линка на список всех эко-отелей.Изначальное распределение траффика:Версия 1 – 50%Версия 2 – 25%Версия 3 – 25%Здесь нужно понимать, что очень часто бизнесу нужен гибкий механизм изменения процентного распределения траффика, поэтому нужно это учитывать при разработке такой версионнированойфичи или фреймворка для версионнирования функционала.
  4. Ну и после того, как сплит-тест готов, протестирован (об этом позже), он идет в продакшин. Релиз.Как же узнать, какой из пользователей какую версию уведел?Кто из них нашел, что искал и купил, а кто нет?Анализирование результатов вершин-тестов тоже требует дополнительных усилий разработчиков.Самый популярный способ – етоиньекцияджаваскриптовых тегов в код страницы.Тег навешивается на элемент или событые – например, когда пользователь отмечает чекбокс поиска «эко-отель». Тогда в спецальные параметры записываются версия теста , данные сессии, и то, как она заканчивается – покупкой или нет. В результате данных, собранные благодаря тегам, анализируются. Статистика говорит за себя. Если версия с чекбоксом, принесла ожидаемый рост покупок, ее включают на 100%. Тоеть превращают в простую фичу, без вариантов. Другие удаляют. Итак, все в общем достаточно прозрачно и понятно. Но, как вы уже поняли, мануальное.атоматизированое тестирование функционала с такими маркетинговымы версиями, имеет свои особенности.
  5. Поэтому возвращаемся к главному вопросу этой презентации: как же эффективно тестировать мультивариантный функционал?
  6. Давайте рассмотрим следующий кейс. В это раз нам дано сферический интернет-магазин – страница, на которой представлена информация о продукте, его цена, количество, и отзывы.У нас есть вершин тест для блока с ценой.В 40% случаев этот блок имеет дизайн А (цена обычным шрифтом)В 50% он имеет дизайн Б (одна цена зачеркнута, под ней другая цена)И для остальных 10% - он отсутствует. Вместо него появляется надпись «Зарегистрируйтесь, чтобы увидеть цену»Итак, три версии. И представим, что на той же странице, еще 5 других елементов тоже вершин тестируется. Тоесть, если мы зайдем на ту же страничку с десяток раз, есть вероятность, что в каждый раз мы получим новый вид, и каждый раз страница будет отличаться от предыдущей. Всего – более 200 комбинацииКак же и что тестировать в таких условиях?
  7. От этом, нужно думать еще на етапе разработки. Для версий ВСЕГДА должен быть своего рода переключатель.  У меня на проэкте этот механизм реализирован  на уровне изменения ЮРЛа страницы. Версию элемента можна изменить путем добавления кодовго имени и номером версии как ЮРЛ параметра.Например:Если на странице я добавлю параметр vt.NBA=1 – получу первую версия фичи (тоесть блок «Обычная Цена».)Если  vt.NBA=2 – вторую версию, где одна цена зачеркнута.
  8. Итак, наличие такого механизма позволяет протестировать:а) Собственно сам вершин-тест. Что разработанные версии соответствуют требованиям (1-ая - это постая цена, 2ая - ето зачеркнутая, а не наоборот)б) Что версии отслеживаются. Что когда пользователь видит зачеркнутую цену, в параметры сессии пишется версия 2. Кроме того, нужно убедитсяа) Что процентное соотношение траффика корректно выставленоб) И  Что в рамках одной сессии пользователь видит только одну версию элементаКак показувает опыт, тестировать комбинации каждой из версий с другими элементами на странице не нужно.
  9. Ну и еще – как и что автоматизировать? Стоит ли тратить усилия на регрессионное автоматизирование функционала, что вполне вероятно «проживет» месяц-два?Есть автоматизаторы, что пишут крайне сложные и комплексные решения, - тесты, что рассчитывают на любую из версий элемента. Исходя из текущей версии, извлекается соответствующий PageObject, и логика теста меняется соответствующим образом. Такие тесты совсем не детерминистичны и разобраться в них очень сложно.Автоматизированный кейс должен проходить четко заданные шаги, и проверять ожидаемый результат, а не один из ожидаемых.Но как же добиться детериминистичности в этой ситуации?При каждом вершин тесте, один из вариантов является контрольным, то есть основным.Это значит, что если вы выключите вершин тест, вы увидите именно этот вариант.1. Очевидно, что начинать автоматизировать можно те сценарии, что не зависят от версионированных элементов2. Но Если кейс предполагает использование версионированного элемента, или нескольких элементов, заметьте, - не проверку, - то нужно чтобы авто тест всегда получал именно эти контрольные варианты.Лучший способ для этого – выключалка для вершин тестов. Какая то проперти, или тоже параметр для урла, что будет выставлять все вершин тесты в контрольную версию.
  10. 3. Понятно что версию, которая выиграла маркетинговое тестирование и включается на 100%, нужно покрывать авто тестами.Но бывают случаи, когда нужна автоматизация всех версий фичи.а) как показывает практика иногда версии живут годами. Тогда нужно удостовериться что любой вариант, что может увидеть пользователь, будет корректно работать.