Опишите самый сложный или интересный баг, который вам удалось найти.

«Опишите самый сложный или интересный баг, который вам удалось найти.» — вопрос из категории Практические задания, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Критический баг с двойным списанием средств в платежном шлюзе.

Контекст: Веб-приложение для онлайн-покупок. Пользователь нажимает кнопку "Оплатить".

Шги воспроизведения:

  1. Добавить товар в корзину.
  2. Быстро (двойным кликом или нажатием Enter дважды с интервалом < 300 мс) инициировать оплату.

Ожидаемый результат: Одна транзакция, один созданный заказ.

Фактический результат:

  • Со счета пользователя списывались средства дважды.
  • В системе создавался только один заказ.
  • Второе списание не было привязано ни к какому заказу, что приводило к финансовым потерям клиента.

Анализ и причина: На фронтенде не было реализовано дебаунсирование (debounce) или блокировка кнопки после первого нажатия на время обработки запроса. Бэкенд принимал два почти одновременных HTTP-запроса, оба проходили проверки и инициировали списание.

Исправление: По моему баг-репорту команда:

  1. Добавила дебаунс на кнопку оплаты на фронтенде.
  2. Реализовала на бэкенде механизм идемпотентности (проверка уникального ключа транзакции) для предотвращения повторной обработки одинаковых запросов.

Итог: Баг был исправлен до попадания в продакшен, что предотвратило потенциальные финансовые потери и потерю доверия пользователей.