Урок 3 из 8 · 20 мин · обновлено

Что такое баг и где его искать

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

Что такое баг

Баг — это несоответствие фактического результата ожидаемому. Звучит сухо, но это рабочая формула, которой тестировщик пользуется каждый день:

  • ожидаемый результат — как приложение должно себя вести;
  • фактический результат — как оно себя ведёт на самом деле.

Например: в корзине две пиццы по 450 ₽. Ожидаем «Итого: 900 ₽». Видим «Итого: 800 ₽». Результаты не совпадают — это баг.

Откуда берётся «как должно быть»

Тестировщик не придумывает ожидаемый результат из головы. Источники:

  • Требования — описание задачи от аналитика. Как их читать, разбирали во втором уроке.
  • Макеты — как экран нарисовал дизайнер.
  • Стандарты и правила — например, в номере российского телефона 10 цифр после +7, а в феврале не бывает 30-го числа.
  • Здравый смысл и опыт пользователей — в заказе не может быть минус одной пиццы, а кнопка «Назад» не должна стирать корзину.
  • Прежняя версия — если раньше работало, а теперь нет, это тоже баг.

А вот «мне кажется, синяя кнопка красивее зелёной» — не баг, а предложение. Его можно обсудить, но отдельно от ошибок.

Где ошибки прячутся чаще всего

Опытные тестировщики знают места, где баги встречаются особенно часто:

  • Тексты: опечатки, обрезанные строки, непереведённые слова, служебные заготовки вроде «Lorem ipsum» вместо настоящего текста.
  • Расчёты: суммы, скидки, налоги, округления.
  • Граничные значения: ноль, отрицательные числа, пустое поле, очень длинный текст, максимум. Как проверять их без перебора — в уроке 4.
  • Даты и время: несуществующие даты, переход через полночь, часовые пояса, високосный год.
  • Формы: обязательные поля, неверные форматы телефона и почты, пробелы в начале.
  • Необычные сценарии: двойное нажатие на кнопку, кнопка «Назад» посреди оплаты, пропавший интернет, повторная отправка формы.
  • Разные устройства: другие браузеры, маленькие экраны, тёмная тема, старые версии системы.

Баг, фича или «так задумано»

Иногда поведение кажется странным, но оно сделано специально. Кнопка «Оплатить» серая, пока не заполнен адрес, — это защита от заказа без адреса. Ссылка для сброса пароля перестаёт работать через час — тоже защита.

Если сомневаетесь, сверьтесь с требованиями или спросите аналитика. Разработчики иногда отвечают на баг «это не баг, а фича» — и тогда решает не спор, а то, что записано в требованиях, и здравый смысл пользователя.

Серьёзность и приоритет

У каждого бага есть две разные оценки — их часто путают.

Серьёзность (severity) — насколько баг вредит продукту и пользователям. Обычно выделяют такие уровни:

Серьёзность Что значит Пример
Блокирующая Нельзя пользоваться главной функцией Кнопка «Оплатить» не работает
Критическая Важная функция работает неправильно Сумма к оплате считается неверно
Значительная Функция работает, но с заметными проблемами Не работает фильтр по цене в каталоге
Незначительная Мешает, но обойти легко Неудобный порядок полей в форме
Тривиальная Почти не влияет на работу Опечатка в подсказке

Приоритет (priority) — как срочно баг нужно исправить. Его определяет команда, глядя на планы и бизнес. Обе оценки указывают в баг-репорте.

Обычно серьёзный баг и чинят срочно, но бывает иначе. Все четыре сочетания:

Серьёзно и срочноКнопка «Оплатить» не работает — чинят немедленно.

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

Не серьёзно, но срочноОпечатка в названии компании на главной — работать не мешает, но видят все.

Не серьёзно и не срочноОпечатка в подсказке — исправят, когда дойдут руки.

Попробуйте сами. Вот экран оформления заказа. Найдите четыре бага и оцените их серьёзность.

Экран «Оформление заказа»
Пицца «Маргарита», 2 × 450 ₽ 800 ₽
Морс клюквенный, 1 × 150 ₽ 150 ₽
Промокод ВКУСНО −10%
Адресс доставки ул. Садовая, 12
Дата доставки 31 сентября, 19:00
Итого 1 045 ₽
Ответ
  1. 2 × 450 ₽ = 900 ₽, а не 800 ₽ — ошибка в расчёте строки. Критическая: неверная сумма.
  2. Итого 1 045 ₽ — не сходится ни с одним вариантом: (900 + 150) − 10% = 945 ₽. Критическая: пользователь заплатит не ту сумму.
  3. 31 сентября — такой даты нет, в сентябре 30 дней. Значительная: доставку нельзя выполнить.
  4. «Адресс» — опечатка. Тривиальная по серьёзности, но исправить её несложно и стоит сразу.

Заметили, что баги 1 и 2 связаны? Опытный тестировщик описал бы их отдельно, но упомянул бы связь — так разработчику проще найти причину.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Что такое баг?

  2. В поле «Количество» можно ввести 0 и оформить пустой заказ. Какую область проверок показывает этот баг?

  3. На главной странице опечатка в названии компании. Какие серьёзность и приоритет вероятнее всего?

  4. Откуда тестировщик НЕ берёт ожидаемый результат?

  5. Кнопка «Оплатить» не работает ни в одном браузере. Какая это серьёзность?