Рівень 11. A/B-тестування та експерименти: основи й застосування

Рівень 11

A/B-тестування

Давай спробуємо дізнатися, що таке A/B-тестування.

Отже, A/B-тестування (англ. A/B testing, Split testing) — спочатку метод маркетингового дослідження, суть якого полягає в тому, що контрольну групу елементів порівнюють із набором тестових груп, у яких один або кілька показників було змінено, щоб з'ясувати, які із змін покращують цільовий показник. Прикладом може бути дослідження впливу кольорової схеми, розташування та розміру елементів інтерфейсу на конверсію сайту.

Та годі, не лякайся, зараз я тобі все докладно поясню.

Як працює A/B-тестування

Спочатку A/B (звучить як «а-бе») тестування придумали продакт-менеджери, щоб підвищити конверсію проєкту, дозволивши самим користувачам обрати оптимальний UI та функціонал. Наприклад, усі users, які заходять на сайт, розподіляються на дві фокус-групи (відсоткове співвідношення може бути будь-яким, наприклад 10% і 90%). У цьому випадку відбувається голосування гаманцем, адже виживе той функціонал, який принесе більше прибутку, кліків чи використань. Здавалося б, якщо це цікаво менеджерам, до чого тут тестувальники?

У моїй компанії 80% функціоналу виходить під a/b-тестом або експериментом, тож тестувальник має вміти з ними працювати.

Експерименти

Експерименти відрізняються від стандартного порівняльного (A/B) та мультиваріантного тестування.

Експеримент має лише одну нову версію, яка має замінити попередню.

Експерименти набули широкого застосування завдяки безпеці, яку вони дають розробникам. Коли на продакшені знаходять критичні вразливості (де був тестувальник?), набагато простіше закрити експеримент, ніж робити rollback версії. Експерименти над функціоналом стають єдиним порятунком під час великих релізів, адже лише так вдається порізати функціонал на фрагменти, кожен із яких за потреби можна вимкнути, не зачепивши інший новий функціонал. Далі ми розглянемо їх докладніше.

Приклад A/B-тесту

Ось так виглядає варіант B

Ось так виглядає варіант A

Я ж казав, це зовсім не складно, якщо рухатися до мети поступово. Гарна робота, тестувальнику!

A/B-тестування

Ці знання знадобляться тобі. Без них силу тестування не відчуєш ти, юний тестувальнику...

A/B-тестування — дуже ефективний маркетинговий інструмент, який дає змогу добре вивчити цільову аудиторію сайту: що спонукає її купувати, а що, навпаки, відштовхує.

Тому багато продакт-менеджерів із задоволенням його використовують, що, своєю чергою, вносить свою специфіку в роботу розробників і QA на цих проєктах.

Уявімо, що ми працюємо над інтернет-магазином. У нас є ідея нової сторінки білінгу, трохи зміненої. Але ми не впевнені, що вона сподобається користувачам більше, ніж поточна.

Що ж робити в такому разі? Якщо просто замінити сторінку на нову, це може відлякати частину старих клієнтів, які вже звикли до наявної, до того ж не факт, що нова сподобається користувачам. Тож, щоб протестувати (тобто перевірити, чи справді нова сторінка сподобається користувачам і чи принесе це прибуток магазину), ми просто викочуємо обидві версії одночасно. Тобто нехай 50% випадково обраних користувачів бачать стару сторінку білінгу, а решта 50% перенаправляються на нову. Числа та варіант спрацювання наведено для прикладу.

Тестуємо сторінки

Під час експлуатації a/b-тесту для сторінки білінгу з'ясувалося, що конверсія успішних покупок для варіанта дизайну «A» становила 23%, тоді як для варіанта «B» лише 11%. І дроїду зрозуміло, що для всіх користувачів відкриють дизайн A.

Мультиваріантне тестування

Нерідко A/B-тест не обмежується двома різними моделями дизайну чи поведінки. Тоді стани функціоналу можна описати як a/b/n... Крім того, можуть тестуватися різні компоненти на одній і тій самій сторінці. Таке тестування називається мультиваріантним. Воно відрізняється від a/b-тестів більшою кількістю варіацій і компонентів.

У мультиваріантному тесті може брати участь до десяти повноцінних версій однієї сторінки, для кожної з яких виділяється окремий URL, або ж експеримент вмикається якимось параметром (зазвичай це URL-параметр або запис у cookie)

Життєвий цикл A/B-тесту

Гіпотеза

«Якщо додати опцію пошуку екоготелів, конверсія зросте»

Уточнюємо й аргументуємо очікуване поліпшення

«Кількість людей, які хочуть придбати номер в екоготелі, зросла на 10% за останні півроку. Якщо ми спростимо пошук таких готелів на нашому сайті, це може збільшити кількість бронювань на 2-7%»

Готуємо дві-три версії однієї форми

«Версія 1: поточний стан форми пошуку – без цієї опції;

Версія 2: опція у вигляді чекбокса;

Версія 3: посилання на список усіх екоготелів»

Релізимо

Аналізуємо результати

«Відділ аналітиків каже, що загальна кількість проданих номерів зросла на 5% саме завдяки сплеску продажів кімнат в екоготелях»

Залишаємо версію, яка принесла більше користувачів/грошей

«Версія B – опція у вигляді чекбокса – у життя на 100%»

Як тестувати мультиваріантний функціонал?
  • Функціональне тестування ВСІХ нових версій
  • Регресійне тестування – усе, що може бути зачеплене a\b-тестом (тест увімкнено)
  • Після вимкнення тесту все функціонує нормально (випадок відкату)
  • Тестування звіту a/b-тесту (опційно)
Приклади a/b-тестування в інтернет-магазині

Червоним виділено ті блоки, які перебувають під a/b-тестуванням. Різні користувачі бачать різний дизайн цих блоків

Тригери a/b-тестів
  • Перша реєстрація
  • Країна користувача (ip-адреса)
  • Мова браузера
  • % від усіх зареєстрованих, тих, що увійшли, тих, що відвідали тощо.
  • Інші бізнес-параметри (наприклад, відсутність установленого платного застосунку)
Тестування:
  • Видалити/відредагувати cookies
  • Use VPN
  • Змінити мову
  • Метод спроб і помилок, науковий тик, скрипт

Попереду в нас ще багато запитань, у яких слід розібратися. Певен, що відповіді має знати кожен тестувальник, який поважає себе. А ти ж хочеш ним стати?

Де зберігається інформація про a/b-тест?
  • Запис у cookies
  • Backoffice-параметри
  • Параметр в URL
  • БД сервера (де завгодно на серверній частині)
Що тестувати?
  • Чи відповідають вимогам розроблені версії
  • Чи правильно виставлено відсоткове співвідношення трафіку
  • Чи відстежуються версії
  • Чи бачить користувач у межах однієї сесії лише одну версію елемента
Не потрібно
  • Тестувати всі комбінації версій різних елементів на сторінці
Навіщо потрібне A/B-тестування?

Щоб досягти хороших результатів, потрібна практика, практика і ще раз практика. Ну і, звісно ж, знання того, з чим ти працюєш. Хіба не цікаво дізнатися, навіщо тобі a/b-тестування?

  • A/B-тести застосовуються майже в усіх сучасних компаніях
  • Експерименти з кодом створюють гнучку й безпечну методику розробки.
  • На відміну від версії, експеримент можна вимкнути майже миттєво в разі невдалого деплою
  • За допомогою експериментів можна варіювати функціонал для різних цільових груп
Які мінуси?
  • Велика кількість експериментів змусить вас попітніти, перш ніж ви з'ясуєте, який саме з них конфліктує з вашою новою фічею
  • Якщо ви забули ввімкнути a/b-тест на 100% або він вийшов паралельно з вашою фічею, можливі неприємні сюрпризи
Експерименти

Експерименти — це майже те саме, що й A/B-тести, але в ролі варіанта A виступає поточний функціонал, а в ролі B — новий функціонал.

Навіщо це потрібно?

Щоб випробувати й протестувати новий функціонал із мінімальним впливом на активних користувачів. Експеримент зазвичай вмикається додатковим параметром у запиті на завантаження веб-сторінки:

http://editor.wix.com/html/editor/web/renderer/edit/c781446a-0938-46b7-9b96-61eefcb14974?metaSiteId=a79b49ad-a941-49fe-9b89-6fb3d712dead&editorSessionId=53CA23B0-A49D-4AEC-A739-413D52C61758&experiments=imageFilters

Після додавання цього параметра спрацьовує механізм відкриття коду, і ви бачите новий функціонал.

Експерименти залежать від версії. Зрозуміло, що новий код завантажується з новою версією, але активується він лише після ввімкнення цього експерименту.

Приклад:

Експеримент вимкнено
Експеримент увімкнено
Як тестувати?
  • Переконатися, що ваш експеримент справді ввімкнено. Ефект не завжди видно наочно, іноді доводиться порпатися в коді
  • Протестувати новий функціонал (відповідність вимогам, інтеграційне тестування тощо)
  • Регресійне тестування старого функціоналу з увімкненим експериментом
  • Взаємодія всіх поточних експериментів. Увімкнути всі активні та ті, що готуються до запуску, експерименти й провести регресійне тестування.
  • Можливість вимкнути експеримент без критичних наслідків (користувачі нічого не відчують)
Сюрпризи

Важливо домогтися статичності тестів і версіонованого функціоналу під час регресійного тестування та переконатися в цьому. Сім разів перевірте, з якою з версій ви маєте справу, перш ніж почати тестування. Дуже прикро усвідомити, що ви помилково протестували двічі одну й ту саму версію «A» замість «A», а потім «B». Або перевірили регресійно функціонал без вимкненого експерименту. Недостатньо просто ввести тригер перемикання, важливо на власні очі переконатися, що він працює (ви бачите старий чи новий функціонал або точно знаєте, що потрібні файли завантажилися, якщо експеримент неявний)

Варіант вирішення – застосування «вимикача» версійності функціоналу, тобто проведення тестування лише за одного ввімкненого експерименту: a/b tests > all to B

Що автоматизувати?
  • Контрольні версії
  • Версію, що «перемогла» і вмикається на 100%
  • Або всі версії, якщо вони довгожителі

Чудові новини, падаване, скоро в нас вечірка! І з цієї нагоди Магістр Обі-Ван вирішив відкрити свій онлайн-бар. Щоб дізнатися, яке меню більше сподобається відвідувачам, ми запустили a/b-тест із різними варіантами оформлення онлайн-замовлень.

Насолоджуйся міцними напоями:

У барі A

Або в барі B

Опис: у кожному з барів є онлайн-оформлення замовлень із доставкою. Бари мають бути ідентичними та відрізнятися лише дизайном замовлень.

Твоє завдання:

1. З'ясувати відмінності у функціоналі й описати їх у вільній формі

2. Знайти баги на кожному із сайтів. Тест-репорт необхідно заповнити за стандартом рівня 5, обов'язково вказавши версію.

3. Скласти баг-репорт, а також чек-лист проведених тестів (просто запиши, що тестувати для виявлення відмінностей, весь сайт описувати не потрібно)

Ми чекаємо на твої чудові баги! Надішли їх нам якнайшвидше через форму.

Форма

Про A/B-тестування майже все дізнався ти. Ось тобі тест, щоб довести це самому собі. Саме час зіткнутися з темними силами, переходь на 12 рівень після тесту.

Для переходу на рівень 12 необхідно набрати щонайменше 13,2 бала (60%) за завдання рівня 11.

Тест

Рівень 12