Как действовать при обнаружении критического бага в продакшене?

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

Ответ

Критический баг (P0/Critical) — это дефект, который полностью блокирует ключевую функциональность, приводит к потере данных, нарушению безопасности или падению системы. Действия должны быть быстрыми и скоординированными.

План действий для QA-инженера:

1. Немедленная верификация и локализация:

  • Воспроизвести баг на нескольких конфигурациях (браузер/ОС/устройство).
  • Определить scope: Баг затрагивает всех пользователей или определенную группу?
  • Проверить логи (application logs, server logs, console errors) для выявления корневой причины (stack trace, error code).
  • Сделать скриншоты/видеозапись.

2. Срочное информирование:

  • Создать инцидент (Incident Report) в системе отслеживания (Jira, etc.) с максимальным приоритетом.
  • Немедленно уведомить команду: тимлида, ответственных разработчиков, продакт-менеджера, через выделенный канал (например, Slack/Teams @channel).
  • В уведомлении кратко указать: Что сломалось, насколько это серьезно, как воспроизвести.

3. Документирование (Баг-репорт):

**Заголовок (Title):** [Critical] Пользователи не могут завершить платеж — ошибка 500 после нажатия "Оплатить"

**Приоритет/Серьезность (Priority/Severity):** P0 / Critical
**Среда (Environment):** Production (production.example.com), все браузеры.
**Версия (Version):** v2.5.0

**Шаги для воспроизведения (Steps to Reproduce):**
1.  Авторизоваться с любым аккаунтом.
2.  Добавить товар в корзину.
3.  Перейти в корзину и нажать "Перейти к оплате".
4.  Заполнить платежные данные валидной тестовой картой `4242 4242 4242 4242`.
5.  Нажать кнопку "Оплатить сейчас".

**Фактический результат (Actual Result):**
*   Появляется белый экран.
*   В консоли браузера ошибка: `POST /api/payment 500 (Internal Server Error)`.
*   В логах бэкенда: `NullPointerException in PaymentProcessor.validate()`.
*   Платеж не проходит, заказ не создается.

**Ожидаемый результат (Expected Result):**
*   Платеж успешно обрабатывается.
*   Пользователь видит страницу успешного подтверждения заказа.
*   Заказ создается в системе.

**Дополнительно (Additional Info):**
*   Баг начал появляться после деплоя билда `#a1b2c3d` в 14:30 UTC.
*   Частота: 100% попыток оплаты.
*   Прикреплены: скриншот, логи из Kibana (ссылка), HAR-файл.

4. Работа над решением и валидация:

  • Не мешать разработчикам, но быть на связи для помощи в воспроизведении или предоставлении данных.
  • После получения хотфикса (hotfix) протестировать его в изолированном окружении (staging) максимально тщательно.
  • Проверить смежные области (регрессионное тестирование), чтобы фикс не сломал ничего другого.
  • После деплоя фикса в прод немедленно проверить исправление на боевом окружении.

5. Постмортем (Post-mortem) и профилактика:

  • Участвовать в анализе причин: почему баг попал в прод (сломался ли тест? его не было? деплой без проверки?).
  • Предложить улучшения процесса: добавить недостающий тест (авто или ручной), улучшить мониторинг, ввести дополнительные проверки перед релизом.