Урок по треку Основы тестирования и тест-дизайн 5 мин

Дефекты и жизненный цикл бага за 6 минут

Статусы бага, severity и priority, кто что решает и спорные случаи.

Баг проходит путь от «нашёл» до «закрыт», и на каждом шаге кто-то принимает решение. На собеседовании проверяют, знаешь ли ты этот путь, умеешь ли оценить серьёзность и как ведёшь себя в спорных ситуациях.

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

Типичный счастливый путь:

New → Assigned → In progress → Fixed → Verified → Closed
  1. New: тестировщик завёл баг.
  2. Assigned: назначен исполнитель.
  3. In progress: разработчик исправляет.
  4. Fixed (Resolved): исправление в сборке.
  5. Verified: тестировщик проверил на новой сборке.
  6. Closed: закрыт.

Ответвления:

  • Reopened: ретест показал, что баг воспроизводится. Возвращаем тот же баг, а не заводим новый, чтобы сохранить историю.
  • Rejected (Not a bug): это не дефект, система работает по требованиям.
  • Duplicate: такой баг уже есть.
  • Cannot reproduce: разработчик не воспроизвёл.
  • Deferred: исправление отложено на будущий релиз.
  • Won't fix: дефект признан, но исправлять не будут осознанно.

Статусы в Jira, YouTrack и других трекерах настраиваются, названия могут отличаться, но логика одна.

Severity и priority

Это самый частый вопрос модуля.

  • Severity (серьёзность): насколько дефект влияет на систему. Обычно предлагает тестировщик.
  • Priority (приоритет): насколько срочно исправлять. Утверждает владелец продукта или менеджер, исходя из бизнеса.

Шкала серьёзности:

УровеньПример
BlockerПриложение не запускается, тестировать невозможно
CriticalДвойное списание денег, потеря данных, дыра в безопасности
MajorФильтр не учитывает скидку, есть обходной путь
MinorПодсказка обрезается на узком экране
TrivialОпечатка в тексте политики

Четыре сочетания, которые просят привести:

  • Высокая и высокая: не работает оплата.
  • Низкая серьёзность, высокий приоритет: опечатка в названии компании на главной перед рекламной кампанией.
  • Высокая серьёзность, низкий приоритет: падение в отчёте, которым пользуются раз в год и который скоро удалят.
  • Низкая и низкая: сдвинутый отступ на странице «Вакансии».

Важная деталь: серьёзность не зависит от доли пострадавших. Если у 3% пользователей не открывается оплата, для них функция недоступна целиком, серьёзность высокая. А вот приоритет считают с учётом масштаба и денег.

Спорные ситуации

«Не воспроизводится». Чаще всего разница в окружении: стенд, роль, данные, кеш, фича-флаг. Сравни, допиши в баг-репорт, покажи вживую.

«Так задумано». Если требования молчат, правых нет. Вопрос к владельцу продукта, а решение в требования, чтобы спор не повторился.

Похожий баг уже есть. Убедись, что причина та же, и дополни существующий баг. Если причина другая, заведи новый со ссылкой.

Критичный баг за час до релиза. Сообщи сразу, с оценкой масштаба и вариантами: отложить, выключить функцию флагом, выпустить с риском. Решает бизнес, но осознанно. Занижать серьёзность, чтобы не мешать релизу, нельзя.

Что считать дефектом

Дефект это отклонение фактического поведения от ожидаемого. Ожидания берутся не только из требований: здравый смысл, стандарты платформы, законы, поведение прошлой версии и аналогов. В баг-репорте честно пиши, на чём основано ожидание.

Частые ошибки

  • Ставить приоритет самому и спорить о нём. Ты можешь предложить, решает продакт.
  • Путать серьёзность с долей пострадавших.
  • Заводить новый баг при неудачном ретесте вместо Reopened.
  • Закрывать баг «не воспроизводится» без попытки найти разницу в окружении.

Что спросят на собесе

  • Опиши жизненный цикл бага.
  • Чем severity отличается от priority? Приведи примеры всех сочетаний.
  • Кто ставит серьёзность, а кто приоритет?
  • Что делать, если разработчик говорит «не баг» или «не воспроизводится»?
  • Нашёл критичный баг перед релизом: твои действия?

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.