Как расследовать баг с добавлением товара в корзину
Что проверяют
Есть ли у кандидата метод локализации дефекта по слоям вместо набора случайных проверок, и умеет ли он превратить находку в баг-репорт, по которому разработчик воспроизведёт проблему без переписки.
Как отвечать
Сначала собрать вводные, не открывая браузер: у кого воспроизводится, с какого момента, что менялось (релиз, фича-флаг, миграция, настройки CDN), какая доля пользователей затронута по метрике добавлений в корзину. Это сразу отсекает половину гипотез.
Воспроизвести и сузить условия: браузер и его версия, десктоп и мобильный, гость и авторизованный, пустая и непустая корзина, товар в наличии и распроданный, товар с вариантами (размер, цвет), акционная цена, ограничение по количеству. Цель получить минимальный набор шагов, при котором баг стабилен.
Дальше локализовать слой, это главное:
- UI: ошибки в консоли, и главное, уходит ли вообще запрос при клике;
- сеть: во вкладке Network смотреть
POST /cart: тело запроса, код ответа, время. Нет запроса значит проблема во фронтенде, 4xx это валидация, авторизация или истёкшая сессия, 5xx это бэкенд, таймаут это зависимость; - бэкенд: логи по trace id из ответа, ошибки сервиса корзины и его зависимостей (остатки на складе, прайс, сессии);
- данные: что реально лежит в хранилище корзины, не потерялась ли кука сессии, не расходится ли остаток товара с тем, что показано на витрине.
Проверить окружение и кеш: воспроизводится ли на стенде, повторяется ли в приватном окне (расширения браузера, устаревший бандл в кеше), не отдаёт ли CDN старую версию.
Отдельно проверить гонки, корзина их частая жертва: двойной клик по кнопке, медленная сеть, добавление из списка и из карточки товара, две открытые вкладки, добавление во время истечения сессии.
Оформление дефекта: шаги воспроизведения, ожидаемый и фактический результат, окружение и номер сборки, аккаунт и id товара, скриншот или видео, HAR-файл, фрагмент лога с trace id. Severity по влиянию на продажи, priority по срочности исправления, и это разные поля.
После починки закрыть цикл: регрессионный кейс на найденный сценарий, автотест на этот путь, если баг проехал мимо проверок, и алерт на падение конверсии добавления в корзину.
Где спотыкаются
Приносят разработчику формулировку «не добавляется товар» без шагов, кода ответа и логов. И не проверяют границу между фронтендом и бэкендом, хотя один взгляд во вкладку Network сокращает зону поиска вдвое.