Приведи пример критического бага, который блокирует выпуск релиза (release blocker).

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

Ответ

Тип бага: Критический (Blocker, Severity: Critical).

Контекст: Платформа электронной коммерции с интеграцией платежного шлюза.

Описание: При попытке совершить платеж на сумму, равную или превышающую 1 000 000 единиц (например, 1 000 000.01), платежный микросервис вместо возврата понятной ошибки валидации ("Amount exceeds the maximum limit") завершался с необработанным исключением, вызывая HTTP 500 Internal Server Error.

Почему это блокирует релиз:

  1. Финансовые потери: Ключевые B2B-клиенты не могут совершать крупные сделки.
  2. Нарушение SLA: Система не обрабатывает заявленный в документации диапазон сумм.
  3. Плохой UX: Пользователь видит сообщение об общей ошибке сервера, а не понятное уведомление.
  4. Риск для данных: Необработанное исключение могло оставить транзакцию в "подвешенном" состоянии.

Пример проблемного кода (псевдокод):

// Сервис обработки платежа
public PaymentResult processPayment(BigDecimal amount) {
    // Проверка лимита
    if (amount.compareTo(MAX_LIMIT) > 0) { // MAX_LIMIT = 1_000_000
        // ОШИБКА: Использован неверный оператор '>=' вместо '>'
        // Это приводило к пропуску проверки для суммы РОВНО 1_000_000
        throw new UnsupportedOperationException("Limit exceeded"); // Неправильный тип исключения
    }
    // ... логика обработки
}

Ожидаемое поведение:

  • HTTP Status: 400 Bad Request или 422 Unprocessable Entity
  • Response Body: {"error": "payment_amount_exceeded", "message": "Maximum payment amount is 1,000,000"}

Для исправления перед релизом необходимо:

  1. Починить проверку граничного условия.
  2. Заменить исключение на корректный, обрабатываемый глобальным обработчиком.
  3. Написать интеграционные тесты для сумм: 999 999.99, 1 000 000, 1 000 000.01.
  4. Провести smoke-тест сценария с платежным шлюзом в staging-среде.