Выбор ответа Senior Тест-кейсы для API обновлено
Гонка при списании
Вопрос
Как проверить, что промокод на одно использование нельзя применить дважды?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Отправить 20 одинаковых запросов параллельно и проверить в БД одно применение. Последовательный повтор ловит только отсутствие проверки.
Варианты ответа
- Применить промокод, затем повторить тот же запрос последовательно и ждать 409
- Проверить, что в интерфейсе кнопка блокируется после первого клика
- Отправить 20 одинаковых запросов параллельно и проверить в БД одно применениеправильный ответ
- Посмотреть в коде, есть ли проверка «уже использован» перед записью
Разбор
Последовательный повтор ловит только отсутствие проверки. Классический баг: проверка «уже использован?» и запись идут без блокировки или уникального ограничения, и параллельные запросы проскакивают между ними (race condition, TOCTOU). Интерфейс тут не защита, запросы можно отправить напрямую. Инструменты: параллельный запуск в скрипте, Turbo Intruder, k6 с несколькими VU.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.