Шпаргалка тестировщика

Жизненный цикл бага

Путь дефекта от "нашёл" до "закрыт": кто двигает статус, что он значит и где тестировщики чаще всего ошибаются. Ткни в любое состояние на схеме – справа появится разбор.

Единого цикла не существует. Ниже – учебная модель, по которой спрашивают на собеседованиях. В реальном проекте статусы и переходы настраивает команда, и половины этих названий в твоём трекере не будет. Сверься с таблицей "Как это выглядит в Jira и YouTrack".

Схема

Основной путь бага: New, Assigned, In Progress, Fixed, Retest, Closed и возврат через Reopened триаж взял в работу фикс влит в тестовой сборке не воспроизводится баг на месте снова в работу всплыл позже New – новый New Новый Assigned – назначен Assigned Назначен In Progress – в работе In Progress В работе Fixed – исправлен Fixed Исправлен Retest – на перепроверке Retest На перепроверке Reopened – переоткрыт Reopened Переоткрыт Closed – закрыт Closed Закрыт
Основной путь идёт сверху вниз. Справа – единственная петля: пока баг воспроизводится, он возвращается в работу.

Схема кликабельная: выбери состояние мышкой или с клавиатуры (Tab, затем Enter).

Таблица переходов

Кто двигает баг и при каком условии. Это же – каркас ответа на собеседовании.

Переход Кто делает Условие
New → Assigned Лид или менеджер На триаже баг признали дефектом и назначили исполнителя
New → Rejected Лид, разработчик, аналитик Поведение соответствует требованиям либо баг заведён по ошибке
New → Duplicate Лид или разработчик Такой дефект уже заведён, причина та же
New → Deferred Менеджер или владелец продукта Дефект принят, но чинить его сейчас не будут
Assigned → In Progress Разработчик Взял баг в работу и воспроизвёл его
In Progress → Fixed Разработчик Код с исправлением влит в ветку
In Progress → Cannot Reproduce Разработчик Прошёл шаги и не получил дефект
Fixed → Retest Тестировщик Появилась сборка, в которой фикс реально есть
Retest → Closed Тестировщик Баг не воспроизводится, регресс вокруг фикса чистый
Retest → Reopened Тестировщик Баг всё ещё воспроизводится или починен частично
Closed → Reopened Тестировщик Дефект всплыл снова на более позднем билде
Reopened → In Progress Разработчик Вернулся к тому же дефекту
Deferred → Assigned Менеджер Дошла очередь: приоритет вырос или освободились руки

Как это выглядит в Jira и YouTrack

Половина учебных статусов в реальных трекерах не существует. Вот честное сопоставление со стандартными настройками.

Статус из теории Jira (классический workflow) YouTrack (поле State)
New Open – это и есть первый статус, отдельного New нет Submitted
Assigned Статуса нет. Исполнитель – это поле Assignee, а не состояние Open
In Progress In Progress In Progress
Fixed Статус Resolved, а Fixed – это резолюция Fixed
Retest Статуса нет. Проверка идёт, пока баг висит в Resolved Статуса нет. Проверка идёт на Fixed
Closed Closed Verified
Reopened Reopened Reopened
Rejected Резолюция Won't do Won't fix
Duplicate Резолюция Duplicate Duplicate
Cannot Reproduce Резолюция Cannot reproduce Can't Reproduce
Deferred По умолчанию нет. Обычно бэклог или своя резолюция По умолчанию нет. Обычно бэклог или Obsolete
Статус и резолюция – разные поля. В Jira статус говорит, где баг едет по процессу (Open, In Progress, Resolved, Closed, Reopened), а резолюция – чем всё кончилось (Done, Won't do, Duplicate, Cannot reproduce). Поэтому "Rejected" в Jira – не статус. Баг будет в Closed с резолюцией Won't do. В YouTrack это одно поле State, и там Duplicate и Won't fix – полноценные состояния. В новых проектах Jira Cloud стандартный набор ещё короче: To Do, In Progress, Done.

Вопросы с собеседования

Тот, кто завёл, – то есть тестировщик. Логика простая: только он знает, что именно проверял и на чём баг падал. Разработчик ставит Fixed, но закрывать свой же баг он не должен. Исключение – автозакрытие старых багов по правилу трекера.
Fixed – это заявка разработчика: "я починил". Closed – факт: тестировщик проверил на сборке и дефекта нет. Между ними всегда стоит перепроверка. Баг, который прыгнул из Fixed в Closed без проверки, – это просто непроверенный баг с красивым статусом.
Попроси ссылку на требование, по которому текущее поведение правильное. Дальше три исхода: требование подтверждает разработчика – ты был неправ, закрываем; требование говорит обратное – переоткрываешь со ссылкой; требования нет вообще – это вопрос к аналитику, и заодно повод завести задачу на документацию.
Тот же симптом по тем же шагам – переоткрывай старый: вся история фикса останется в одном месте. Фикс сработал, но сломалось что-то рядом – это новый баг со ссылкой на исходный. Отдельно смотри на давно закрытые баги: многие команды не переоткрывают то, что закрыто несколько релизов назад, а заводят новый с пометкой "регресс".
Чтобы решить три вещи: это правда дефект, насколько он срочный и кто им займётся. Триаж отсекает дубликаты и "так задумано" до того, как разработчик потратит на них день. Обычно это короткая встреча лида, менеджера и тестировщика по новым багам.
Хочешь разобраться глубже?
Курсы Артёма Русова по тестированию – от основ до практики в реальных проектах.
Курсы на Stepik