Что такое Defect Life Cycle?

Жизненный цикл дефекта (defect life cycle или bug life cycle) описывает путь дефекта от обнаружения через разрешение до закрытия. Понимание этого цикла обеспечивает эффективное отслеживание багов, четкую коммуникацию и своевременное разрешение.

Стадии жизненного цикла дефекта

1. New (Новый)

Описание: Дефект зарегистрирован тестировщиком, еще не проверен. Действия: Тестировщик логирует дефект с деталями (шаги, скриншоты, серьезность).

2. Assigned (Назначен)

Описание: Дефект проанализирован и назначен разработчику. Действия: Менеджер/Лид проверяет, назначает соответствующему разработчику.

3. Open (Открыт)

Описание: Разработчик начинает исследование/исправление. Действия: Разработчик подтверждает дефект, начинает работу.

4. Fixed (Исправлен)

Описание: Разработчик завершил исправление, готово к верификации. Действия: Изменения кода реализованы, отправлены в тестовую среду.

5. Retest (Повторное тестирование)

Описание: Тестировщик проверяет исправление. Действия: Тестировщик выполняет тестовые случаи для подтверждения разрешения.

6. Verified/Closed (Проверено/Закрыто)

Описание: Исправление подтверждено, дефект закрыт. Действия: Тестировщик подтверждает разрешение, обновляет статус на закрыт.

Альтернативные пути

Rejected (Отклонен)

Описание: Дефект признан невалидным (не баг, работает как задумано).

Deferred (Отложен)

Описание: Валидный дефект отложен на будущий релиз.

Reopened (Переоткрыт)

Описание: Исправление не решило проблему или вызвало регрессию.

Workflow жизненного цикла дефекта

[New] → [Assigned] → [Open] → [Fixed] → [Retest] → [Verified] → [Closed]
   ↓         ↓          ↓         ↑                      ↓
[Rejected] [Deferred] [Reopened]──┘                 [Reopened]

Атрибуты дефекта

ПолеОписаниеПример
IDУникальный идентификаторBUG-1234
TitleКраткое резюме“Вход не работает с валидными учетными данными”
DescriptionДетальное объяснениеШаги воспроизведения, ожидаемое vs фактическое
SeverityВоздействие на системуCritical, High, Medium, Low
PriorityСрочность исправленияP1, P2, P3, P4
StatusТекущее состояниеNew, Open, Fixed, Closed
Assigned ToОтветственный разработчикjohn.doe@company.com
ReporterКто нашелqa.tester@company.com

Severity vs Priority

SeverityPriorityПример
CriticalP1Обработка платежей сломана - исправить немедленно
HighP1Данные пользователя раскрыты - риск безопасности
MediumP2Поиск возвращает некорректные результаты
LowP3Косметическая проблема UI
CriticalP2Сбой в редком граничном случае (затрагивает < 1% пользователей)
LowP1Презентация CEO завтра, нужна косметическая правка

Severity = Технический impact Priority = Бизнес-срочность

Лучшие практики

1. Писать четкие отчеты о дефектах

Плохой отчет:

Заголовок: Вход не работает
Описание: Я попытался войти и не получилось.

Хороший отчет:

Заголовок: Вход не работает с ошибкой "Invalid credentials" для валидных пользователей

Описание:
При попытке входа с валидными учетными данными, система возвращает
ошибку "Invalid credentials" и не аутентифицирует пользователя.

Шаги для воспроизведения:
1. Перейти на https://app.example.com/login
2. Ввести username: test@example.com
3. Ввести password: ValidPass123!
4. Нажать кнопку "Login"

Ожидаемый результат:
Пользователь аутентифицирован и перенаправлен на dashboard.

Фактический результат:
Отображается сообщение об ошибке "Invalid credentials".
Вход не работает, несмотря на корректные учетные данные.

Окружение:
- Браузер: Chrome 118.0
- ОС: Windows 11
- Сервер: Staging (v2.3.1)

Доп. информация:
- Проблема началась после развертывания 2025-10-01
- Затрагивает все тестовые аккаунты
- Console показывает ошибку 401 от /api/auth/login
- Скриншот приложен: login-error.png

2. Использовать согласованные определения Severity/Priority

Уровни Severity:

  • Critical (S1): Сбой системы, потеря данных, утечка безопасности
  • High (S2): Основная функция сломана, значительное воздействие на функциональность
  • Medium (S3): Функция частично работает, доступен workaround
  • Low (S4): Незначительная проблема, косметическая, нет функционального воздействия

Уровни Priority:

  • P1: Исправить немедленно (блокер)
  • P2: Исправить в текущем спринте
  • P3: Исправить в следующем спринте
  • P4: Исправить при наличии времени (бэклог)

3. Процесс Defect Triage

Ежедневная встреча Triage (15-30 мин):

  1. Просмотреть новые дефекты
  2. Валидировать воспроизводимость
  3. Назначить severity и priority
  4. Назначить разработчику
  5. Установить целевую дату разрешения

4. Отслеживать метрики дефектов

МетрикаОписание
Open DefectsВсего неразрешенных багов
Defect AgeДней с момента регистрации
Mean Time to ResolveСреднее время исправления
Reopened Rate% переоткрытых дефектов
Defect DensityБагов на функцию/модуль

Распространенные ошибки

Расплывчатые описания: “Не работает” - предоставьте конкретные шаги

Отсутствие воспроизводимости: Не воспроизводится = не исправляется

Неправильная severity: “Опечатка в footer” помечена как Critical

Дублирующие дефекты: Проверяйте существующие баги перед регистрацией

Нет регрессионного тестирования: Исправление проверено, но связанные функции не протестированы

Заключение

Хорошо определенный жизненный цикл дефекта обеспечивает систематическое отслеживание багов от обнаружения до закрытия. Четкие процессы, последовательная коммуникация и дисциплинированное следование приводят к более быстрому разрешению, лучшему качеству и улучшенному сотрудничеству команды.

Ключевые выводы:

  • Стандартизируйте workflow: Определите четкие стадии и переходы
  • Пишите детальные отчеты: Шаги, скриншоты, детали окружения
  • Различайте severity vs priority: Технический impact vs бизнес-срочность
  • Регулярный triage: Ежедневный обзор новых дефектов
  • Отслеживайте метрики: Мониторьте время разрешения, плотность дефектов
  • Проводите RCA: Учитесь на критических дефектах для предотвращения повторения