A/B-тест технически почти неотличим от feature flag: пользователи детерминированно делятся на группы, и каждая видит свой вариант. Разница не в механике раскатки, а в цели — за вариантами закреплены метрики, а результат интерпретируется статистически, чтобы отделить реальный эффект от случайного шума.
Все начинается с гипотезы, а не с кнопки. Хорошая формулировка звучит как «изменение X увеличит метрику Y у сегмента Z, потому что…». Без заранее выбранной метрики успеха тест превращается в разглядывание графиков в поисках чего угодно хорошего — и почти всегда что-то «находится».
Инфраструктурно нужны три вещи. Первое — механизм распределения: тот же детерминированный rollout по проценту, что и у флагов, только на N вариантов. Второе — логирование экспозиции: факт «пользователь U увидел вариант B» нужно записать, иначе не с чем связывать поведение. Третье — связка «вариант ↔ метрика»: события (клик, покупка, удержание) должны сопоставляться с назначенным вариантом.
Дальше — статистика. Нужен заранее прикинутый размер выборки и срок теста: маленькая выборка даст «результат», который развалится на следующей неделе. Классическая ошибка — подглядывать в тест и останавливать его в момент, когда цифра случайно стала красивой (peeking). Решается фиксированным горизонтом или последовательными критериями.
Отдельно считают guardrail-метрики — показатели, которые не должны просесть, даже если основная метрика выросла: латентность, ошибки, отписки, выручка. Вариант, который поднял клики, но уронил удержание, — это не победа.
Стоит помнить про эффекты, которые искажают картину: novelty effect (на новое реагируют просто потому, что оно новое), сезонность и взаимное влияние одновременно идущих тестов. Поэтому эксперименты изолируют и не запускают десяток пересекающихся на одной аудитории.
На практике A/B-инфраструктура на базе Unleash дала командам инструмент принимать решения на данных, а не на мнениях и статусе того, кто громче спорит, — и подняла удовлетворенность пользователей примерно на 15%. Главная дисциплина простая: сформулировать гипотезу заранее, дождаться значимости и уважать guardrail-метрики.