Error, Bug, Defect, Failure: как не путать термины

Разбираем базовые термины Error, Bug, Defect и Failure: в чем разница, как они связаны между собой и как объяснять это без путаницы.

Обновлено:

Содержание

Error, Bug, Defect, Failure: как не путать термины

В QA-терминологии слова error, bug, defect и failure часто используют как синонимы. В обычной речи это допустимо, но для понимания процессов и для собеседований полезно различать их точнее. Эти термины описывают разные уровни одной и той же цепочки: от человеческой ошибки до наблюдаемого сбоя в системе.

Что такое Error

Error — это человеческая ошибка. Например, аналитик неверно описал правило, разработчик неправильно реализовал условие, а тестировщик ошибся в тестовых данных. Error возникает на уровне действий человека, а не на уровне продукта.

  • →Error — причина, а не результат.
  • →Не каждый error сразу превращается в баг в продакшене.

Что такое Defect

Defect — это дефект в артефакте или продукте. Он появляется, когда человеческая ошибка материализуется в неправильном требовании, неверном коде, некорректной схеме или неверной конфигурации. В разговорной речи defect и bug часто совпадают, но conceptually defect — более формальный термин.

  • →Defect — это уже проблема в системе или документации.
  • →Defect может существовать, даже если его еще никто не заметил в поведении приложения.

Что такое Bug

Bug — это бытовое и наиболее распространенное название дефекта, который обнаружили и завели как проблему. Когда QA находит некорректное поведение и оформляет его в баг-трекере, defect становится bug в операционном смысле команды.

  • →Bug — это термин из ежедневной практики команд.
  • →Обычно именно bug фигурирует в Jira и других трекерах.

Что такое Failure

Failure — это наблюдаемый отказ или сбой в работе системы. Например, приложение падает, ответ API возвращает 500, кнопка не нажимается, расчет суммы неверен. Failure — то, что видит пользователь или тестировщик при выполнении сценария.

  • →Failure — это внешний симптом проблемы.
  • →Failure возникает, когда defect проявился во время выполнения.

Как связаны эти термины между собой

Наиболее удобная цепочка выглядит так: человек совершил error, из-за этого в коде или требованиях появился defect, во время проверки или реального использования это проявилось как failure, а команда оформила проблему как bug. Не всегда цепочка проходит все этапы явно, но для понимания логики она очень полезна.

  • →Error → Defect → Failure → Bug report — хорошая модель для запоминания.
  • →Она помогает точнее обсуждать причины и последствия.

Почему это важно для QA

Когда тестировщик умеет различать термины, ему легче говорить с командой точнее. Если проблема связана с неполными требованиями, это уже намекает на error на раннем этапе. Если система падает, это failure. Если нужно понять, где именно находится причина, разговор идет о defect. Такой язык полезен и для анализа корневых причин, и для общения с аналитиками, разработчиками и менеджерами.

  • →Точные термины улучшают коммуникацию.
  • →Они помогают лучше делать root cause analysis.

Вывод

Запоминать это можно так: error — ошибся человек, defect — дефект появился в артефакте или продукте, failure — система проявила сбой, bug — команда зафиксировала проблему в рабочем процессе. В повседневной речи bug и defect часто смешиваются, но понимание различий помогает мыслить точнее и профессиональнее.