Урок 5 из 8 · 20 мин · обновлено
Баг-репорт: как описать ошибку, чтобы её исправили
Из чего состоит хороший баг-репорт, как писать шаги воспроизведения и что происходит с багом после того, как вы его завели.
Плохой и хороший баг-репорт
Найти ошибку — половина дела. Вторая половина — описать её так, чтобы разработчик понял, повторил и исправил. Сравните два описания одной и той же ошибки.
Плохо:
Не работает промокод!!! Срочно исправьте!
Какой промокод? Где? Что значит «не работает»? Разработчику придётся идти к тестировщику с вопросами — а это время обоих.
Хорошо:
Заголовок: Оформление заказа: итог не учитывает скидку по промокоду
Шаги:
- Войти под тестовым пользователем test@example.com.
- Добавить в корзину пиццу «Маргарита» за 450 ₽.
- Перейти к оформлению заказа.
- Ввести промокод ВКУСНО (скидка 10%) и нажать «Применить».
Фактический результат: появляется сообщение «Промокод применён», но в поле «Итого» остаётся 450 ₽.
Ожидаемый результат: «Итого: 405 ₽» — сумма со скидкой 10%.
Окружение: тестовый стенд, браузер Chrome, Windows 11.
Серьёзность: критическая — пользователь заплатит больше, чем должен.
Вложения: скриншот экрана оформления.
Из чего состоит баг-репорт
- Заголовок. Коротко отвечает на вопросы «где?» и «что не так?». Хорошая схема — «Место: что происходит».
- Шаги воспроизведения. Конкретные действия по порядку, начиная с понятного исходного состояния. Никаких «ну там зайти в корзину» — только точные шаги.
- Фактический результат. Что произошло на самом деле.
- Ожидаемый результат. Что должно было произойти — со ссылкой на требование, если оно есть.
- Окружение. Где воспроизводится: стенд, браузер, устройство, версия приложения. Бывает, что баг есть только в одном браузере, — без этой строчки его не найдут. Что такое стенды и окружения — в уроке 2.
- Серьёзность и приоритет. Насколько вредит и как срочно чинить (вспомните урок 3).
- Вложения. Скриншот, видео экрана, текст ошибки. Одна картинка часто экономит десять строк объяснений.
Правила хорошего тона
- Один баг — один репорт. Три ошибки на странице — три репорта.
- Воспроизведите ещё раз перед отправкой. Если ошибка случается не всегда, так и напишите: «воспроизводится примерно в 3 случаях из 5».
- Поищите дубли. Возможно, этот баг уже завели — тогда лучше дополнить существующий репорт.
- Только факты. Не «разработчик опять всё сломал», а «после обновления кнопка не реагирует».
- Пишите для того, кто видит задачу впервые. Через месяц репорт может открыть человек, который ничего не знает о контексте.
Что происходит с багом дальше
У бага есть жизненный цикл. Названия статусов в разных командах свои, но путь похож:
- Новыйбаг заведён
- В работеразработчик взял исправлять
- Исправленразработчик считает, что починил
- Проверкатестировщик проверяет исправление
- Закрытвсё работает
Переоткрыт — если на проверке ошибка осталась, баг возвращается разработчику в работу.
Есть и другие исходы: баг могут отклонить, если это не ошибка, а задуманное поведение, или пометить как дубль, если такой уже есть.
Баги заводят в специальных системах — баг-трекерах. О них — в уроке 7.
Попробуйте сами. Перепишите этот баг-репорт так, чтобы его можно было исправить:
Сайт глючит, ничего не грузится, когда нажимаешь на кнопку. Исправьте!!!
Что в нём не так и как лучше
Не хватает почти всего: какая страница, какая кнопка, что именно «не грузится», в каком браузере, как повторить. Хороший вариант мог бы выглядеть так:
Заголовок: Каталог: кнопка «Показать ещё» не загружает следующие товары
Шаги: 1. Открыть каталог «Наушники». 2. Прокрутить до конца списка. 3. Нажать «Показать ещё».
Фактический результат: кнопка темнеет на секунду, новые товары не появляются.
Ожидаемый результат: под списком появляются следующие 20 товаров.
Окружение: продакшен, Firefox, Windows 10; в Chrome воспроизводится так же.
Вложения: видео экрана, скриншот ошибки из консоли браузера.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Какой заголовок баг-репорта лучше?
Хороший заголовок отвечает на вопросы «где?» и «что не так?». По нему разработчик сразу понимает суть, не открывая репорт.
-
Что обязательно должно быть в шагах воспроизведения?
Если разработчик не может повторить баг, он не сможет его исправить. Шаги — самая важная часть репорта.
-
На одной странице нашлись три разные ошибки. Как их оформить?
Ошибки могут исправлять разные люди и в разное время. Если смешать их в одном репорте, что-то обязательно потеряется.
-
Разработчик исправил баг. Что делает тестировщик?
Исправление нужно проверить: иногда ошибка остаётся или появляется в другом месте. Если всё в порядке — баг закрывают.