Ответ
Типичный жизненный цикл дефекта (bug workflow) включает следующие ключевые статусы:
- New / Open — дефект заведен и ожидает назначения.
- Assigned — баг назначен конкретному разработчику на исправление.
- In Progress / Open — разработчик приступил к анализу и исправлению.
- Fixed / Resolved — разработчик сообщил об исправлении и отдал на проверку.
- Verified / Closed — тестировщик подтвердил исправление, баг закрыт.
- Reopened — дефект воспроизвелся после фикса; цикл повторяется.
- Rejected — баг не подтвердился, является дубликатом или работает как задумано.
- Deferred / Postponed — исправление отложено на будущие релизы.
Типичный workflow:
flowchart LR
A[New] --> B[Assigned]
B --> C[In Progress]
C --> D[Fixed]
D --> E{Verified?}
E -- Yes --> F[Closed]
E -- No --> G[Reopened]
G --> B
B -- Rejected --> H[Rejected]
B -- Deferred --> I[Deferred] Ответ 18+ 🔞
О, смотри-ка, классика жанра! Жизненный путь обыкновенного бага, или как он из милого пушистого котика превращается в маньяка с бензопилой, который тебе всю систему в щепки.
Вот смотри, как это обычно происходит, по шагам, блядь:
-
New / Open — Тут всё начинается. Кто-то, обычно тестировщик с горящими глазами, нашёл какую-то дичь. Создаёт тикет, пишет «НЕ РАБОТАЕТ!!!», прикладывает скриншот, где курсор мыши закрывает половину экрана. Баг родился, сука. Лежит и ждёт своей участи.
-
Assigned — Ведущий разработчик, глядя на эту очередь, ёбта, с чувством глубокого отвращения тыкает пальцем в небо и назначает баг тебе. «Вот, Вася, разберись с этим». Ты получаешь уведомление, и у тебя в душе поселяется маленькая, но противная тоска.
-
In Progress / Open — Ты, скрипя зубами, открываешь этот тикет. Начинаешь ковыряться. «И какого хуя это должно работать? А, понятно, тут кривые руки у того, кто писал... О, бля, это же я полгода назад писал». Волнение ебать.
-
Fixed / Resolved — После трёх часов проклятий, пяти чашек кофе и одного найденного волшебного символа точка с запятой вместо запятой, ты торжественно пишешь «FIXED» и плюёшь в комментарий «Исправлено. Не воспроизводится». Чувствуешь себя богом. На пять минут.
-
Verified / Closed — Тот самый тестировщик возвращается, проверяет. Если повезло, и ты действительно не накосячил, он ставит статус «Closed». Баг отправляется в корзину истории. Ура! Но это в сказках, блядь.
-
Reopened — А в реальности через полчаса приходит нотификация: «REOPENED. Фикс не работает. Воспроизводится на тестовом стенде, когда нажимаешь кнопку левой пяткой в полнолуние». И вот тут начинается пиздец. Всё по новой. Терпения ноль ебать.
-
Rejected — Иногда случается чудо. Ты смотришь на баг и понимаешь: «Да это же не баг, это фича!» Или «Это дубликат того кошмара, что Петя фиксил в прошлом году». Ты пишешь гневное обоснование и отправляешь баг в утиль со статусом «Rejected». Чувство праведного триумфа.
-
Deferred / Postponed — Самый хитрый статус. «Да, баг есть. Серьёзный? Возможно. Исправим? Обязательно. Когда? Ну, в одном из следующих релизов... Может, в следующем году... Или никогда». Баг уходит в долгий ящик, где пылится вместе с мечтами о нормальном коде.
А вот, смотри, как вся эта карусель выглядит, если нарисовать. Блоки кода не трогаю, как велели.
flowchart LR
A[New] --> B[Assigned]
B --> C[In Progress]
C --> D[Fixed]
D --> E{Verified?}
E -- Yes --> F[Closed]
E -- No --> G[Reopened]
G --> B
B -- Rejected --> H[Rejected]
B -- Deferred --> I[Deferred]
Короче, жизненный цикл. От рождения через ад разработки до забвения или вечных мук в аду «Reopened». Стандартная история, ничего личного. Просто бизнес, ёпта.