Каков алгоритм действий при обнаружении блокирующего дефекта (блокера)?

Ответ

Блокер — дефект, полностью останавливающий тестирование или критическую функциональность. Действия должны быть четкими и быстрыми:

1. Воспроизведение и локализация

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

2. Немедленная эскалация

  • Назначить наивысший приоритет (Blocker/Critical).
  • Уведомить тимлида, продакт-менеджера и всю команду разработки.
  • Создать отдельную ветку для срочного исправления, минуя обычный workflow.

3. Поиск и реализация обходного пути

  • Определить, можно ли временно отключить проблемную функцию.
  • Проверить, работает ли предыдущая стабильная версия.
  • Документировать временное решение для пользователей/тестировщиков.

4. Пример отчета о блокере:

// Шаги воспроизведения:
// 1. Отправить POST-запрос с пустым телом на /api/v1/orders
// 2. Сервис падает с 500 ошибкой (NullPointerException)
// Ожидаемое поведение: возврат 400 Bad Request с описанием ошибки.

// Стек-трейс из логов:
// java.lang.NullPointerException: Cannot invoke "Order.getItems()"
//     at OrderService.process(OrderService.java:45)

5. После фиксации:

  • Провести регрессионное тестирование на исправленной версии.
  • Проанализировать root cause: почему баг прошел в прод? Нужно ли улучшить unit-тесты или процесс код-ревью?

Ответ 18+ 🔞

А, ну вот, классика жанра подъехала! Блокер, ёпта! Это не просто баг, это пиздец в квадрате, который всё встаёт колом, как будто кто-то врубил рубильник на сервере. Тут не до философии, тут действовать надо, пока начальство не начало ебать мозг.

1. Поймать за жопу и понять, где живёт Первым делом — не паниковать, а зафиксировать, как этот урод себя проявляет. Записывай ВСЁ: какие кнопки тыкал, какие данные вводил, под какой луной это случилось. Потом попробуй воспроизвести это на другой машине, в другом браузере. Если баг плавает — уже хуже, но всё равно ищи закономерность. Собирай все улики: логи, скриншоты, дампы — всё, что может указать на преступника. Без этого к разработчикам с пустыми руками приходить — себя не уважать.

2. Кричать «КАРАУЛ!» на всех уровнях Как только понял, что это реально блокер — сразу выставляй высший приоритет. «Blocker», «Critical», «СРОЧНО, ВСЁ ГОВНО!» — называй как хочешь. Дальше — тревога. Пишешь тимлиду, продакту, всем разработчикам в общий чат: «Народ, у нас пиздец на проде, всё падает, смотрите задачу №666». Работу над всем остальным останавливаем, создаём отдельную ветку hotfix-panic-attack и начинаем чинить, минуя все обычные согласования. Потому что когда горит — не до ритуалов.

3. Искать хоть какую-то заплатку Пока умные головы копаются в коде, думаем: а можно ли эту сломанную фичу на время выключить? Или откатиться на вчерашнюю версию? Может, есть другой способ выполнить ту же задачу? Если нашёл обходной путь — срочно кидай инструкцию всем тестировщикам и поддержке: «Ребят, пока вот так, иначе всё посыпется». Главное — дать системе дышать, а там уже будем лечить.

4. Как составить вопль о помощи (отчёт) Чтобы разработчики не спрашивали «а че сделать-то?», ты им всё разжёвывай. Вот, смотри, как надо:

// Шаги воспроизведения:
// 1. Отправить POST-запрос с пустым телом на /api/v1/orders
// 2. Сервис падает с 500 ошибкой (NullPointerException)
// Ожидаемое поведение: возврат 400 Bad Request с описанием ошибки.

// Стек-трейс из логов:
// java.lang.NullPointerException: Cannot invoke "Order.getItems()"
//     at OrderService.process(OrderService.java:45)

Видишь? Коротко, ясно, с цитатами. Разработчик взглянет и сразу поймёт, где копать. А не будет тратить время на угадайку.

5. Когда починили — работа только начинается Ок, фикс залили, система ожила. Можно выдохнуть? Не-а. Теперь надо всё протестировать по новой, особенно то, что рядом с местом катастрофы лежало. Это называется регрессионное тестирование, и пропускать его — самоубийство. А потом самый важный вопрос: какого хуя этот баг вообще проскочил в прод? Может, unit-тесты кривые? Или на код-ревью все спали? Нужно разобраться и процесс поправить, чтобы в следующий раз не обосраться таким же макаром. Иначе история будет повторяться, а это, блядь, уже не смешно.