Почему кнопка может быть активна, но товар не добавляется?
Что проверяют
Умеете ли вы локализовать дефект, а не перечислять наугад возможные причины. Вопрос открытый, единственного правильного ответа нет: смотрят на порядок рассуждения, на то, какие данные вы соберёте и как разделите зоны ответственности между клиентом, сервером и данными.
Как отвечать
Сначала уточните симптом: товар действительно не добавился или он добавился, но интерфейс этого не показал. Это две разные ветки, и проверяются они по-разному: перезагрузить страницу, посмотреть корзину через API, зайти под тем же аккаунтом с другого устройства.
Дальше идите по слоям и на каждом ищите факт, а не догадку:
- клик: обработчик вообще сработал? Перекрывающий элемент, кнопка активна визуально, но заблокирована атрибутом, ошибка в консоли до отправки;
- сеть: запрос ушёл? Вкладка Network, код ответа, тело ошибки. Нет запроса, значит дело на клиенте;
- сервер: отказ по валидации, истёкшая сессия, ошибка в логах, товар закончился или недоступен региону;
- состояние: ответ успешный, но счётчик берётся из кэша, устаревшего хранилища или отстающей реплики.
И отдельный вывод, который стоит проговорить вслух: даже если отказ законный, молчание интерфейса это самостоятельный дефект. Пользователь обязан увидеть причину, поэтому в отчёт идут два пункта.
Сам отчёт: шаги, окружение и номер сборки, ожидаемый и фактический результат, запрос с ответом, частота воспроизведения.
Где спотыкаются
Вываливают список причин без плана проверки. Перечислить десять гипотез легко, ценность в том, какая проверка отсекает половину из них за минуту, и начинать надо с неё.
Второе: не смотрят сеть и сразу называют виновного. Без кода ответа вывод «баг бэкенда» это угадывание, и задача уходит не той команде, а возвращается через день.
Третье: пишут «не работает» и «воспроизводится всегда», не проверив. Плавающий дефект, поданный как стабильный, разработчик закроет как невоспроизводимый, и вернётся он уже с продакшена.