Опишите процесс срочного исправления критического дефекта в продакшене.

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

Ответ

Процесс хотфикса (hotfix) для критического бага:

  1. Триаж и изоляция: Максимально сужаем scope проблемы. Создаем ветку от актуального продакшен-тега.
  2. Минимальный исправляющий коммит: Фиксим только корневую причину, избегая рефакторинга.

    # БАГ: При discount = None функция calculate_total падала.
    # БЫЛО:
    def calculate_total(items):
        total = 0
        for item in items:
            total += item['price'] * (1 - item.get('discount'))  # Ошибка, если discount=None
        return total
    
    # СТАЛО (минимальное исправление):
    def calculate_total(items):
        total = 0
        for item in items:
            discount = item.get('discount', 0) or 0  # Защита от None
            total += item['price'] * (1 - discount)
        return total
  3. Целенаправленное тестирование:
    • Пишем/запускаем только тесты, напрямую связанные с багом.
    • Проверяем, что фикс не ломает смежную функциональность (регрессия).
  4. Контролируемое развертывание:
    • Деплой на прод через канареечный релиз или feature flag.
    • Активный мониторинг ключевых метрик (ошибки, бизнес-показатели) в течение 30-60 минут.
  5. Фиксация технического долга: Сразу после стабилизации создается задача на:
    • Рефакторинг "быстрого" фикса.
    • Написание отсутствующих интеграционных тестов для этого сценария.
    • Анализ root cause: почему баг прошел в прод (пробел в тестах, ревью кода?).

Главный принцип: Скорость и безопасность. Изменения — минимальны и изолированы.