Курс в Telegram: открыть приложение

Ошибка, дефект и отказ: в чём разница

Разбираем цепочку «человек ошибся → в коде дефект → система отказала» и учимся не называть багом всё подряд.

В команде нужно говорить на одном языке — иначе обсуждение превращается в «у меня всё работает» против «а у меня нет». Международный словарь тестирования (ISTQB) даёт три разных слова там, где новичок обычно использует одно — «баг».

Цепочка: ошибка → дефект → отказ

ТерминЧто этоПример
Ошибка (error, mistake)Действие человека, приведшее к неверному результатуРазработчик неверно понял требование «скидка от 5 000 ₽»
Дефект (defect, bug, fault)След ошибки в артефакте: коде, требовании, макете, тест-кейсеВ коде написано total > 5000 вместо total >= 5000
Отказ (failure)Внешне наблюдаемое неправильное поведение системыЗаказ ровно на 5 000 ₽ оформляется без скидки

Важное следствие: дефект может существовать и не приводить к отказу. Пока никто не оформит заказ ровно на 5 000 ₽, никто ничего не заметит. Именно поэтому тестировщик целится в граничные значения, а не в «обычные» данные — там дефекты и живут.

🎯 Что это даёт на практике

Когда вы пишете баг-репорт, вы описываете отказ (что видно) и условия его появления. Искать дефект в коде — работа разработчика. Не пытайтесь угадать причину в заголовке репорта: «не работает валидация на бекенде» может оказаться неправдой и уведёт починку не туда.

Дефект бывает не только в коде

Самые дорогие дефекты живут в требованиях. Примеры из реальной жизни:

Дефект, улучшение и вопрос

Три разных типа задач, которые новички валят в одну кучу:

⚠️ «Не воспроизводится» — не приговор

Половина закрытых как «not reproducible» багов — реальные дефекты с неполно описанными условиями. Прежде чем спорить, зафиксируйте: версия сборки, стенд, браузер и его версия, роль пользователя, конкретные данные (id заказа, e-mail), время, наличие кэша и куков, скорость сети. Дефект, который «плавает», обычно связан с данными, асинхронностью или кэшем.

Отдельно: severity и priority — не одно и то же

Забегая вперёд (подробно — во втором модуле): серьёзность отвечает на вопрос «насколько сломано», приоритет — «когда чинить». Опечатка на главной странице — Trivial по серьёзности, но чинится сегодня, потому что её видят все. Падение при экспорте отчёта в редком формате — Critical по серьёзности, но подождёт до следующего спринта, если этим пользуются два клиента.

Ещё семь слов, без которых дальше не обойтись

Эти термины встречаются в вакансиях, на собеседовании и в каждом следующем уроке. Здесь — короткие определения, чтобы дальше не спотыкаться; подробный разбор придёт в своё время.

ТерминЧто этоПример на нашем магазине
ВерификацияПроверка «правильно ли мы делаем продукт»: сверяем реализацию с требованием, макетом, стандартомВ требовании «скидка от 5 000 ₽ включительно» — проверяем, что заказ ровно на 5 000 ₽ её получает
ВалидацияПроверка «то ли мы вообще делаем»: решает ли продукт задачу пользователя и бизнесаСкидка работает по требованию, но покупатель узнаёт о ней только на последнем шаге оплаты — цель «поднять средний чек» не достигнута
Тест-кейсОдна проверка с предусловием, шагами и ожидаемым результатом; выполнима любым человеком без вас«Корзина на 5 000 ₽ → перейти к оформлению → в итоге видна скидка 10%»
Чек-листСписок того, что надо проверить, без подробных шагов. Быстрее кейсов, но требует опыта«Скидка: 4 999 / 5 000 / 5 001 / 0 / вместе с промокодом / после удаления товара»
Тестовые данныеКонкретные значения, на которых выполняется проверкаПользователь test+5@shop.ru, товар «Кружка» за 2 500 ₽, промокод SPRING
Окружение (стенд)Среда, где развёрнута сборка: код, база, настройки, версии сервисовdev — для разработчиков, test — наш, prod — тот, которым пользуются покупатели
РегрессПроверка, что новые изменения не сломали то, что работало раньшеПочинили скидку — перепроверяем оформление заказа целиком, а не только скидку
⚠️ «Валидация» — слово с двумя значениями

Выше — валидация в смысле процесса: делаем ли мы нужный продукт. Но в разговоре о формах «валидация» значит другое: проверка введённых данных самим приложением («телефон не в том формате»). Оба значения общеупотребимы, различать их придётся по контексту.

💡 Где это будет подробно

Окружения и путь сборки — урок 1-3, виды тестирования и регресс — 1-4, тест-кейсы и чек-листы — 1-9 и второй модуль. Сейчас задача не выучить наизусть, а начать узнавать слова в чужой речи.

Мини-практика

Прочитайте три ситуации и мысленно разложите их по полочкам «ошибка / дефект / отказ»:

  1. Аналитик забыл описать поведение при отмене уже оплаченного заказа → в коде нет ветки на этот случай → пользователь нажимает «Отменить» и получает белый экран.
  2. Дизайнер нарисовал кнопку 44 px, разработчик сделал 32 px → на телефоне в кнопку тяжело попасть пальцем.
  3. Тестировщик неверно понял требование и завёл баг на корректное поведение → разработчик потратил день на разбирательство.

Третий пункт — тоже дефект. Только в тест-кейсе. Такое случается у всех; важно признать быстро и поправить кейс, а не защищать репорт из принципа.

Слова из этого урока спрашивают на собеседовании прямо, а прочитать определение и вспомнить его через неделю — разные вещи. Прогоните карточки: сформулируйте определение про себя, потом сверьтесь.

🎯 Этот тренажёр есть в курсе

Практическая часть урока выполняется в браузере с проверкой результата. Попробовать бесплатно: тренажёр по вёрстке или зарегистрируйтесь — откроются уроки и тренажёры курса.

Это урок из курса «Ручной тестировщик»

В курсе 48 уроков и 40 тренажёров: тест-дизайн, вёрстка и UX, DevTools, API, SQL, Git и работа со стендом. Несколько уроков открыты бесплатно после регистрации.

Открыть бесплатные уроки Программа курса