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 часто смешиваются, но понимание различий помогает мыслить точнее и профессиональнее.