Как правильно составить заголовок баг репорта

Перед вами сейчас скриншот с багами. Что нужно сделать:
1. Найти баги,
2. Написать заголовок к баг-репорту, который необходимо оформить при нахождении бага.

Не нужно писать весь баг-репорт. Сейчас мы с вами оттачиваем только навык составления заголовков.

Напомню, что заголовок — это краткое описание найденной ошибки. Он должен в понятной и простой форме передать смысл найденной ошибки. Наиболее эффективным будет заголовок, который отвечает на три вопроса:
— Что произошло?
— Где появилась ошибка?
— Когда или при каких условиях найден дефект?

Предлагаю внимательно посмотреть на картинку, составить свои варианты заголовков и только потом уже читать продолжение данной статьи.

Итак, вы написали свои варианты. Теперь давайте посмотрим, какие же заголовки можно считать «хорошими», а какие «плохими». А смотреть мы будем на тех вариантах, которые нам присылали ученики под один из постов с практикой ВКонтакте (ссылка на нашу группу https://vk.com/zapiskisedogotestera).

«Хорошие» заголовки.

— «Верхняя панель: Значение младшего разряда счетчика монет смещено вниз относительно остальных.»

— «Срезан левый край иконки «Книга» на игровой панели слева»

— «Боковая панель: Срезан левый край иконки с книгой.»

— «Статуэтка «Викинг» расположена на воде.»

— «В режиме активной игры в поле «количество монет» третья (последняя?) цифра смещена вниз.»

— «в) окна кристаллов и энергии расположены поверх другого окна (предположительно окна щита и меча).»

Как я уже говорил, для нас не важно и количество багов, и правильность их определения. На эти моменты я не смотрел. Примеры заголовков выше написаны достаточно развернуты и понятно. Заголовки в большинстве случаев соответствуют принципу «Что? Где? Когда?».

Также понравилось, что у некоторых есть разделение на группы, это поможет структурировать ваш отчет.

«Плохие» заголовки.

Буду писать сам заголовок из ваших комментариев и чем он плох/что в нем стоит улучшить.

— «Неверное место положения персонажа».

В этом случае не совсем понятно о каком персонаже речь и где именно это неверное местоположение.

— «### -В верхнем меню
1. цифры пляшут
2. один блок заехал на задний план»

Здесь очень мало информации. По описанию непонятно в чем именно заключается «пляска» цифр и какие именно блоки заехали.

— «Кристаллы и викинг в правой части поля, возможно, не должны быть в воде.»

Тут основная проблема в том, что мы в один баг-репорт пытаемся занести сразу 2 бага: один про викинга, другой про кристаллы.

В большинстве других примеров есть одна большая ошибка – отсутствует понятность названия. Заголовок должен показывать в чем заключается ошибка. Т. е. нужно стараться избегать общих слов и слишком общего описания.

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

***

Когда пишете заголовок, то всегда старайтесь смотреть на него с точки зрения другого человека. То есть достаточно ли вы хорошо описали баг, чтобы можно было быстро понять о чем речь. Но не забывайте, что заголовок должен быть кратким. Очень важен баланс.

А вот мои заголовки к тем багам, которые были запланированы:
1. Викинг с кабаном на основной карте стоит на воде.
2. Отсутствует правое значение счетчика у иконки «Снег» главного интерфейса.
3. Обрезана иконка «Книга» главного интерфейса.
4. Последняя цифра счетчика монет смещена вниз на главном интерфейсе.
5. Счетчик «Рабочие» заехал на счетчик «Армия» на главном интерфейсе.

Да, кто-то нашел баги, которые не подразумевались изначально багами. И это не удивительно, так как у нас не было ни ТЗ, ни живого доступа к функционалу. Повторю, что это никак не влияет на выполнение задания. Ведь наша цель была составить заголовки к баг-репортам. А уж баг это или нет в нашем случае роли не играет.

Как правильно составлять баг-репорты

Время на прочтение
4 мин

Количество просмотров 249K

Ответ на топик «Распространенные ошибки при составлении баг-репортов».

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

Если кратко, то хороший баг-репорт позволяет:
1. воспроизвести проблему (это не всегда возможно, но надо стремиться).
2. понять, в чем проблема и какова ее важность.

Как написать хороший баг-репорт?
Для начала надо подготовиться. Если вы обнаружили баг, не стоит моментально бежать в баг-трекер и писать «ничего не работает!». Воспроизведите ошибку. Воспроизвелась? Отлично. Не воспроизвелась? Значит, что-то вы не учли. Вспоминайте, что делали.

Снова воспроизвелась? Ура! А теперь минимизируйте количество шагов для воспроизведения, удостоверьтесь, что нет ничего лишнего.
Если используются какие-то входные данные, удостоверьтесь, что и они не содержат лишнего (действительно ли весь этот здоровенный кусок текста роняет редактор, а не один символ из него?).
Когда вы поняли, какие именно данные и какие ваши действия приводят к проблеме, кратко сформулируйте ее суть — придумайте заголовок баг-репорта. Опишите проблему настолько подробно и конкретно, насколько позволяет заголовок, при этом не увлекаясь его длиной :)
Пример плохого заголовка: «Все виснет, когда я вставляю текст из буфера обмена»
Пример «более хорошего» заголовка: «Редактор зависает при вставке текста, содержащего символ N, из буфера обмена по Ctrl+V»
Allenary: Можно еще упомянуть принцип «Что? Где? Когда?». В большинстве случаев это помогает написать удачный заголовок/подробное описание, Например,
Что: неправильный расчет данных
Где: на странице NNN
Когда: после ввода а поле Y отрицательного значения.

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

Теперь откройте баг-трекер, начните заполнять форму баг-репорта.
Запишите заголовок.

В каких-то баг-трекерах поля «Подробное описание» и «Шаги для воспроизведения» различаются, в каких-то — нет.

Если поле «Подробное описание» есть, опишите в нем проблему более подробно — уточните те детали, которые пришлось опустить в заголовке. Если вы понимаете, в чем причина проблемы (используется устаревшая формула для расчетов, не учитывается какое-то значение и т.д.) — тоже пишите все здесь. Если не знаете — лучше не гадайте.
Если в форме записи об ошибке нет отдельного поля Affect version (версия продукта, в котором проявляется проблема), то укажите версию здесь.

«Шаги для воспроизведения» — основное поле для заполнения в баг-репорте.
Запишите шаги, которые вы определили. Как уже было сказано, шагов должно быть необходимо и достаточно для воспроизведения проблемы. Лишние не пишите. Необходимых тоже не пропускайте :)
После описания шагов обязательно напишите результат — что получилось.
Далее здесь же опишите ожидаемый результат, если это необходимо. Конечно, не стоит писать «Редактор не падает», но если, например, результаты расчетов не соответствуют ожидаемым, то это надо указывать.
Таким образом, описание шагов для воспроизведения должно выглядеть как-то так:

Шаги для воспроизведения:
1. Открыть…
2. Кликнуть…
3. Ввести в поле… значение N1
4. Ввести в поле… значение N2
4. Кликнуть кнопку Calculate

Результат:
В поле Result отображается V1.

Ожидаемый результат:
В поле Result отображается V2.

Если требуются исходные файлы, данные, дампы и пр. — сразу приаттачьте. Само собой, файлы должны содержать только информацию, необходимую для воспроизведения ошибки. Подчистите все лишнее.
Если проблема с визуальным отображением, то скриншот обязателен — можно будет понять ошибку и без воспроизведения шагов. Khizhnyak: На скриншотах лучше указывать место с ошибкой. Стрелочкой или просто полосой контрастного цвета. Здорово ускоряет «чтение» скриншота.

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

Кстати, про видео воспроизведения ошибки: оно может помочь разве что для подтверждения, что проблема действительно есть, просто воспроизвести ее сложно. Но часто ли вы делаете запись экрана заранее? :)

По остальным полям.
Severity, Priority.
Наличие этих полей и значения в этих полях отличаются от багтрекера к багтрекеру.
Severity — это критичность бага с точки зрения тестировщика: фича, опечатка в тексте, мелкая проблема, значительная проблема, падение продукта, блокирующая проблема и пр.
Priority — приоритет, с которым проблема должна быть исправлена.
Если есть оба поля, то тестировщик, как правило, выставляет только Severity, а Priority — старший тестировщик/старший программист/менеджер или любой другой ответственный за это дело человек.
Если есть только одно поле, то выставляем его.
«Какой приоритет ставить багу?» На этот вопрос нет однозначного ответа, все зависит от каждого конкретного случая. Но старайтесь не увлекаться и не ставить всем багам подряд высокий или критичный приоритет, реально оценивайте их критичность для проекта.

Environment — есть во всех баг-трекерах. Это программно-аппаратное окружение, в котором проявляется проблема.
Укажите версию операционной системы, наличие сервис-паков, разрядность.
Если ваш проект зависит от каких-то компонентов — их наличие и версии обязательно! .NET, JRE/JDK и прочие SDK.
Интерпретируемый язык? Версию интерпретатора — обязательно!
Для веб-проектов — браузер, установленные плагины, если это влияет на работу проекта. Если что-то не работает в одном браузере, то проверьте, работает ли в остальных.

В какой версии исправить, на кого назначить — зависит от политики внутри компании. Не знаете, что поставить? Спросите коллегу.

Статья дополнена правильными замечаниями из комментариев.

Задача тестировщиков программного обеспечения — изучить работу ПО и выявить несоответствия между ожидаемым поведением, которое указано в требованиях, и реальным поведением ПО в каждом из сценариев использования. В случае если тестировщик находит ошибку в работе в ПО, он пишет специальный отчет об ошибке, чтобы рассказать о нем коллегам, — баг-репорт. Когда коллеги или другие заинтересованные лица изучат баг-репорт, они поймут, в чем дело. Баг-репорт оформляется в специальной системе для отслеживания ошибок — баг-трекере. Каждая команда или компания сама решает, каким именно баг-трекером пользоваться. Теперь перейдем к собственно сути баг-репорта, его составляющих и правилах оформления.

Баг-репорт включает обязательные и необязательные элементы.

Обязательные поля:

  • ID — идентификационный номер баг-репорта, должен быть уникальным. Помогает быстро найти нужный баг-репорт.
  • Заголовок — передает суть ошибки; помогает быстро понять, в чем дело.
  • Шаги воспроизведения — пошаговая инструкция о том, как воспроизвести ошибку.
  • Результаты — описание фактического результата и ожидаемого результата.
  • Окружение — операционная система, браузер, устройство (в случае мобильного приложения), версия приложения.
  • Приоритет — показывает степень критичность ошибки и срочность ее исправления.

Необязательные поля:

  • Предусловие — описывает, как систему нужно подготовить перед тестированием (в случае необходимости).
  • Постусловие — указывает, как систему нужно вернуть в прежний вид после тестирования (в случае необходимости).
  • Описание — прописывают, если в заголовке передано недостаточно информации об ошибке.
  • Дополнительные материалы — прикладываются в случае необходимости и помогают проиллюстрировать ошибку (скриншот, скринкаст).

Пример правильно составленного баг-репорта:

Теперь давайте поговорим о каждом пункте немного детальнее.

Заголовок баг-репорта

Задача заголовка — в достаточной мере описать суть проблемы. Грамотно написанный заголовок помогает коллегами сразу понять суть, не тратя время на прочтение всего баг-репорта целиком. Заголовок должен отвечать на три вопроса: «Что? Где? Когда?», при этом не должен быть слишком длинным. Заголовок должен отражать реальный результат.

Примеры удачных заголовков:

  • Клик по слову «Регистрация» на странице подписки приводит к ошибке 400.
  • При переходе по ссылке «Заказ» на главной странице экрана открывается страница Контакты вместо страницы Мои заказы.

Шаги

В этом пункте прописывается алгоритм действий, которые должны привести к описываемой ошибке. Действия должны быть описаны достаточно полно, но емко, и быть понятными для любого человека вне зависимости от технической подготовки, который попытается воспроизвести ошибку. После написания шагов хорошей практикой будет еще раз пройтись по этому алгоритму, чтобы убедиться, что алгоритм понятен и что ошибка по нему воспроизводится.

Приоритет и серьезность

Приоритет (priority) отражает степень важности проблемы и срочность выполнения задачи, включает 3 уровня: 

  • Высокий (high) — необходимо исправить в первую очередь, так как с данной ошибкой продукт не выполняет свой бизнес-задачи: например, не работает кнопка заказа в интернет-магазине.
  • Средний (medium) — ошибка менее критичная, пользователь может достигнуть цели, однако ПО работает не так, как от него ожидается. Например, в корзине интернет-магазина не отображается блок сопутствующих товаров.
  • Низкий (low) — не мешает пользователю достигнуть цели, можно починить после критических ошибок. Например, опечатки в тексте.

Серьезность (severity) показывает степень влияния на работу системы. 

  • Блокирующий (blocker) — программа не работает. Например, сайт выдает ошибку 500.
  • Критический (critical) — не работает важная часть системы, приложение не выполняет своей функции. Например, невозможно добавить товар в корзину незарегистрированному пользователю.
  • Серьезный (major) — приложение работает, функциональность не пострадала, однако работает некорректно. Например, не позволяет пользователю выбрать марку авто в приложении по заказу такси.
  • Незначительный (minor) — приложение работает правильно, но вызывает какие-либо неудобства. Сюда можно отнести ошибки навигации и другие ошибки UX-характера.
  • Тривиальный (trivial) — ошибка, которая не оказывает никакого влияния на работу приложения. Например, опечатки в тексте.

Окружение

В этом пункте описывается среда, в которой произошла ошибка. Операционная система и ее версия, браузер и его версия, версия приложения, размер экрана (если необходимо). Если ошибка произошла на мобильном устройстве, также указывается тип устройства и его модель.

Вложения (вспомогательные материалы)

Помогают дополнить информацию о проблеме, визуализируют ошибку. К баг-репорту можно прикрепить:

  • Скриншоты и скринкасты
  • Логи, дампы
  • Переписки
  • Документацию

Пример скриншота ошибки с указанием конкретного места ошибки и поясняющим комментарием

Не забывайте давать вложениям понятные названия. Можно использовать маску {ID баг-репорта}_{суть ошибки}.

Чтобы прокачаться в тестировании и научиться находить самые каверзные баги, приходите учиться в OTUS.

Название (заголовок) баг-репорта

  • Название не должно быть слишком длинным
  • Прочитав название должно быть сразу понятно в чем дело
  • Принцип “Что? Где? Когда?

Плохой пример   “Если открыть вкладку crm, потом выбрать напоминания, потом мышкой нажать на чекбокс любого напоминания, то тогда не появится корзина”

Хороший пример — На вкладке crm в разделе напоминаний не появляется иконка удаления при проставление чек-бокса у любого напоминания

Плохой пример   “В заголовке письма не отображаются символы, при отправке письма”

Хороший пример — “В заголовке письма не отображаются русские символы при отправке письма Daily Stat (!!!

Вся суть в том, что нельзя отбрасывать те слова, которые имею значение, иначе разработчик не воспроизведет баг)

Шаги

Описываем все шаги, с упоминанием всех вводимых данных (явки, пароли) и промежуточных результатов

  • Оптимально не более 7 шагов
  • Минимально возможные шаги, выкидываем лишнее
  • Добавляем  пример, на котором воспроизводится баг, если это необходимо ( ссылка, файл, фотография и т д, именно те, с которыми вы поймали баг)

Плохой пример

1. Открыть браузер

2. Открыть jivo.ru

3. Войти в систему

4. Вести данные нашего админа

5. Теперь щелкнуть напоминания

6. В напоминаниях создать новую напоминалку

7. Нужно заполнить все нужные поля

8. Сохраняем

Хороший пример

1. Войти в jivo.ru : (логин: [email protected],  пароль: 123456)

2. Перейти в  Управление —->  CRM —->  Напоминания

4.  Нажать на кнопку “Создать напоминание»

5.  Заполнить поле “Описание” и “Дата” (Например: Test, 04.04.2023)

6.  Нажать на кнопку “Сохранить”

Результат/Фактический результат

  • Указываем кратко, что произошло и в каком состоянии находится система
  • Прикладываем скриншоты, видео, логи (при грамотно составленном баге разработчику достаточно хорошего названия баг-репорта и скриншота/видео/логов)

Плохой пример

Результат: Кажется, напоминание не сохранилось и не создалось, но вообще должно было

Результат: Сохранение не работает корректно

Хороший пример

Результат: Появился попал с сообщением об успешном создании напоминания, но напоминание не появилось в списке

Ожидаемый результат

  • В ожидаемом результате указываем по факту, что должно произойти
  • Прикладываем скриншот ожидаемого результата.
  • Помимо этого прикладываем доказательство, что результат должен быть такой, а не какой то другой

Что служит доказательством

  • Спецификация
  • Макеты
  • Спросить у проджект менеджера, тим-лида, дизайнера, аналитика
  • Ссылка на документацию, вики
  • Здравый смысл

Плохой пример

Ожидаемый результат: Напоминание должно быть создано

Хороший пример

Ожидаемый результат: Появился попал с сообщением об успешном создании напоминания, созданное напоминание появилось в списке напоминаний

Приоритет/Серьезность

Приоритет (Priority) — это то насколько срочно надо исправить баг

Серьезность (Severity) — это то насколько баг влияет на нашу систему

Логи

Лог (с англ журнал) — это журнал, документ, в который программа вносит различные записи

Шаблоны оформления баг-репорта

Шаги

1. Раз

2. Два

3. Три

Результат

……………

Ожидаемый результат

……………

Шаги

1. Раз

2. Два

3. Три

ФР

……………

ОР

……………

Шаги

1. Раз

2. Два

3. Три

Фактический результат

……………

Ожидаемый результат

……………

Шаги

1. Раз

2. Два

3. Три

Что не так

……………

Как должно быть

……………

Как правильно сообщать о багах?

Давайте поговорим о том, как тестировщику правильно сообщить о баге. Или, как еще говорят — репортить баги.

Найдя баг в системе, тестировщик обычно должен завести на него задачу в баг-трекере. Для этого ему предстоит написать заголовок и описать способ воспроизведения бага.

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

Заголовок бага

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

В первую очередь стоит руководствоваться простой мнемоникой “что, где, когда”. Сначала надо написать «что» сломалось, а уже потом «в каком месте» и «при каких условиях».

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

Хороший пример выглядит так: “Ошибка “Сервер недоступен” в корзине при нажатии кнопки “Оплата через Paypal”.

Здесь сразу понятно и конкретное место происхождения ошибки, и критичность, и даже возможная причина.

Еще примеры.

Плохо: “Некорректно работает форма логина”

Хорошо: “Ошибка “Пользователь не найден” при вводе email в качестве логина”.

Здесь мы видим и тип ошибки, и место происхождения, и возможные данные для воспроизведения.

Описание

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

Опционально можно добавить дополнительные файлы (логи и скриншоты), версию продукта, окружение (версию ОС, браузеров, конкретные девайсы).

Выглядит хорошее описание примерно вот так:

Платформа: Pixel 3 XL, Android 9.0
Версия приложения: 1.5.1
Шаги:
— Открыть приложение
— Авторизоваться
— Открыть вкладку “профиль”
— Ввести в поле “имя” значение “Олег”
— Нажать на кнопку сохранить
Фактический результат: выдается сообщение “такое имя уже есть”
Ожидаемый результат: имя сохраняется

Лог приложения: bug_login.txt
Скриншот: screen.jpg

Как видите, такой баг легко читается, по нему можно быстро понять, где происходит ошибка, и как ее воспроизвести. Попробуйте сами оформлять баги подобным образом.

А если хотите узнать больше о том, как искать баги, оформлять их и многое другое из практик тестировщика, приходите на наш курс Тестировщик: первая ступень. Он будет интересен как тем, кто только думает попробовать себя в качестве тестировщика, так и тем, кто уже какое-то время работает в профессии и хочет систематизировать свои знания.

Спасибо за внимание!

Понравилась статья? Поделить с друзьями:
  • Максимум функции как найти формула
  • Как найти главный смысл текста
  • Как найти службу питания
  • Как найти вероятность банкротство банка
  • Как найти фильм про невесту