Ответ
После создания (заведения) в системе управления задачами (Jira, YouTrack, Bugzilla) баг проходит через последовательность статусов — жизненный цикл дефекта (Bug Lifecycle).
Типичный workflow:
- New / Открыт: Дефект зарегистрирован и ожидает первоначальной проверки.
- Assigned / Назначен: Баг назначен конкретному разработчику или команде для исправления.
- In Progress / В работе: Разработчик приступил к анализу и исправлению.
- Fixed / Исправлен: Разработчик завершил работу и помечает баг как исправленный, указывая версию сборки.
- Ready for Test / На проверке: Баг передан в очередь для тестирования.
- Testing / Проверка: Тестировщик проверяет исправление в указанной сборке.
- Verified / Проверено: Исправление подтверждено, баг может быть закрыт.
- Closed / Закрыт: Дефект окончательно закрыт.
Альтернативные пути:
- Reopened / Переоткрыт: Если при проверке баг воспроизводится снова, он возвращается в статус In Progress или Assigned.
- Won't Fix / Не будет исправлен: Решение об отказе от исправления (например, низкий приоритет, нецелесообразность).
- Duplicate / Дубликат: Баг уже заведен ранее.
- Cannot Reproduce / Не воспроизводится: Тестировщик или разработчик не смогли воспроизвести проблему по описанию.
Пример диаграммы состояний в Mermaid:
stateDiagram-v2
[*] --> New
New --> Assigned : Триаж
Assigned --> InProgress : Взят в работу
InProgress --> Fixed : Исправлен
Fixed --> Testing : Сборка готова
Testing --> Closed : PASS
Testing --> InProgress : FAIL → Reopened
New --> Rejected : (Duplicate, Won't Fix, Not a Bug)
Rejected --> [*]
Closed --> [*] Ответ 18+ 🔞
Да ты посмотри, какой у бага путь-то тернистый, как у какого-нибудь Герасима с Муму, блядь! Жизненный цикл, сука, целая эпопея.
Ну, появляется он на свет, этот баг, как пиздёныш несчастный — статус New / Открыт. Лежит, сопит, ждёт, пока на него кто посмотрит. А потом приходит менеджер или лид, такой, с умным лицом, и говорит: «А, ну это, блядь, понятно. Этому — в жопу, этому — на анал, а этот пусть Васька чинит». И баг становится Assigned / Назначен. Ваське, естественно, похуй, он две недели в Jira не заглядывал.
Но рано или поздно, сука, совесть или тимлид его дожимают. Васька хватается за голову, открывает IDE и статус меняется на In Progress / В работе. Тут начинается самое интересное: он два дня ковыряется, орет «Да как эта хуйня вообще работала?!», находит строчку, где вместо == стоит =, и, довольный как слон, ставит Fixed / Исправлен. «Всё, ебта, починил! Сборка 1.2.3.45, тестируйте, падлы».
Баг летит обратно к тестировщику, статус Ready for Test / На проверке. Тестировщик, чувак, который уже предвкушает, как сейчас всё сломает, берёт его в работу (Testing / Проверка). Он открывает сборку, делает ТОЧНО ТАК ЖЕ, как в описании, и… охуеть! Баг воспроизводится, как миленький! Васька, сука, даже не запускал! Статус летит обратно в In Progress, но уже с пометкой Reopened / Переоткрыт. История повторяется, блядь, как в дурном сне.
Альтернативные пути — это вообще песня, ёпта!
- Won't Fix / Не будет исправлен — это когда начальство смотрит на баг и говорит: «Ну, это, конечно, пиздец, но клиенты и так схавают, похуй». И все делают вид, что его не существует.
- Duplicate / Дубликат — классика! Ты неделю описываешь баг, прикрепляешь логи, скриншоты, видео, а тебе в ответ: «Дубль, см. ISSUE-1488». И там ссылка на тикет, закрытый в 2012 году. Чих-пых тебя в сраку!
- Cannot Reproduce / Не воспроизводится — магическая мантра разработчика. Значит, либо тестировщик — мудак, который не умеет кликать, либо боги сборок сегодня не в духе. Баг отправляется в корзину истории, и все делают вид, что так и надо.
И вот, после трёх кругов ада, когда тестировщик наконец ставит Verified / Проверено, а менеджер, вздохнув, кликает Closed / Закрыт — наступает тишина. Баг упокоился. До следующего рефакторинга, блядь.
Ну а чтобы совсем, сука, мозг не взорвался от этих статусов, вот тебе диаграммка, чтоб глазами поводить:
stateDiagram-v2
[*] --> New
New --> Assigned : Триаж
Assigned --> InProgress : Взят в работу
InProgress --> Fixed : Исправлен
Fixed --> Testing : Сборка готова
Testing --> Closed : PASS
Testing --> InProgress : FAIL → Reopened
New --> Rejected : (Duplicate, Won't Fix, Not a Bug)
Rejected --> [*]
Closed --> [*]
Вот и вся недолгая, но полная ебли, жизнь обычного бага. Прям как в том анекдоте: «Родился, пострадал, умер, переоткрылся».