Какие значения и ожидаемые результаты проверять для скидок в интернет-магазине
Что проверяют
Умеете ли вы превратить расплывчатое «проверьте скидки» в набор проверок с конкретными значениями и ожидаемыми результатами, а не в список «скидка применяется». Следом обычно спрашивают, откуда вы возьмёте ожидаемый результат, если в требованиях его нет.
Как отвечать
Начните с того, что ожидаемые результаты берутся из требований: порядок применения скидок, округление и совместимость промокодов решает бизнес. Если правило не описано, это вопрос к аналитику, а не повод угадывать. Дальше техники тест-дизайна:
- граничные значения процента: 0, 1, 99, 100, 101 и отрицательное число. На 100% проверьте, можно ли оформить бесплатный заказ, на 101% и минусе ждите ошибку валидации;
- фиксированная сумма: скидка 500 ₽ на товар за 300 ₽ не должна давать отрицательную цену;
- порог заказа: сумма ровно на пороге, на копейку ниже и выше. Отдельно удалите товар после применения скидки: сумма упала ниже порога, скидка обязана сняться;
- комбинации: порядок важен. 1000 ₽, затем минус 20% и минус 100 ₽ дают 700 ₽, а в обратном порядке 720 ₽. Здесь удобна таблица решений;
- округление: процент от цены с копейками, округление по позиции или по чеку, сходится ли сумма строк с итогом;
- срок действия: последняя секунда акции, первая после неё, часовой пояс сервера и покупателя;
- ограничения промокода: одноразовый, лимит на пользователя, неприменимые категории, повторное использование.
Проверьте, что цифры совпадают везде: корзина, оформление, письмо, чек. И загляните в API: итоговая цена должна считаться на сервере, а не приходить с клиента.
Где спотыкаются
Перечисляют только позитивные сценарии вроде «скидка 20% работает» и забывают про невалидные значения и отрицательную итоговую цену.
Сами придумывают ожидаемый результат для комбинации скидок. На вопрос «почему 700, а не 720» ответа нет, потому что правило никто не уточнил.
Не думают о гонках: одноразовый промокод, отправленный двумя параллельными запросами, иногда применяется дважды. Это частый дефект, и хорошо, если вы про него вспомните.