Что такое A/B-тестирование и как вы его проводите?

«Что такое A/B-тестирование и как вы его проводите?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

A/B-тестирование — это метод сравнения двух версий (A — контрольная, B — тестовая) одного элемента (страницы, кнопки, заголовка) для определения, какая из них лучше достигает поставленной цели (конверсия, кликабельность, вовлеченность).

Типовой процесс проведения:

  1. Формулировка гипотезы: Четкое и измеримое предположение (например, "Изменение цвета кнопки CTA с синего на зеленый увеличит конверсию на 5%").
  2. Определение метрики: Выбор ключевого показателя для оценки (конверсия, CTR, средний чек).
  3. Создание вариантов и разделение трафика: Равномерное (50/50) или иное распределение пользователей между версиями.
  4. Запуск теста и сбор данных: Накопление статистически значимого объема данных.
  5. Статистический анализ: Оценка результатов с помощью критериев (p-value, доверительные интервалы).

Пример анализа результатов на Python:

import numpy as np
from scipy import stats

# Данные конверсий: 1 — конверсия, 0 — нет конверсии
conversions_A = np.array([0, 1, 0, 1, 0, 0, 1, 0, 0, 1])  # Контрольная группа A
conversions_B = np.array([1, 0, 1, 1, 0, 1, 1, 0, 1, 0])  # Тестовая группа B

# Расчет конверсии
conv_rate_A = conversions_A.mean()
conv_rate_B = conversions_B.mean()
print(f"Конверсия A: {conv_rate_A:.1%}, Конверсия B: {conv_rate_B:.1%}")

# Проверка статистической значимости различий (t-тест)
t_stat, p_value = stats.ttest_ind(conversions_A, conversions_B)
print(f"p-value: {p_value:.4f}")

# Интерпретация
if p_value < 0.05:
    print("Разница статистически значима. Вариант B лучше.")
else:
    print("Статистически значимой разницы не обнаружено.")

Важно: Учитывать длительность теста для учета сезонности и избегать анализа промежуточных результатов (peeking).