что такое баг репорт в тестировании
Как поставить баг? Для начинающего тестировщика. (Баг репорт)
Давайте для начала определим, что же такое баг. На многих ресурсах есть одно и тоже определение “Дефект (он же баг) – это несоответствие фактического результата выполнения программы ожидаемому результату.”
И я думаю, если спросить у большинства тестировщиков или людей собирающихся стать тестировщиками. Однако определение лежит немного глубже, давайте попробуем разобраться, что же такое баг.
Определение определения баг
Сначала нужно подумать, какая категория лиц связанная с продуктом, может сказать, что при использовании его, есть баг и как он им мешает использовать продукт. Например у нас есть интернет-магазин и у него есть следующие категории пользователей: (Администраторы, Редакторы, Консультанты, Посетители) и каждый из них нашел баг.
1) Администратор при настройке прав пользователя, не может дать ему новые права.
2) Редактор не может сохранить изменения в статье, после редактирования.
3) Консультант не может ответить в чате на сообщение пользователя.
4) Пользователь не может открыть карточку товара.
На примере выше видно, что все является багами, так все эти люди не могут использовать продукт в целях, для которых он был предназначен. У каждой группы людей использующей интернет-магазин, есть свои цели.
Вызывают ли баги, затруднения у людей использующих сайт, безусловно.
И так в итоге, как можно сформулировать определение баг, чтобы оно более точно описывало ситуацию. Баг- это проблема вызывающая затруднения при использовании продукта (У людей работающих с этим продуктом) в целях, для которых он был создан.
С определением разобрались, давайте разберемся с основной структурой баг-репорта.
Структура баг-репорта
Основное оформление | |
Заголовок | Краткий заголовок, что за баг, чтобы за короткое время, любой член команды мог понять о чем речь. |
Короткое описание | Краткое описание проблемы, явно указывающее на дефект. |
Раздел или функционал продукта | Название раздела или функции тестируемого продукта |
Номер версии | Версия продукта на которой была найдена ошибка |
Серьезность | Самые популярные серьезности бага: Блокирующий (Blocker) Критический (Critical) Значительный (Major) Незначительный (Minor) Тривиальный (Trivial) |
Приоритет | Основные приоритет в котором выполняются баги. (Иногда в зависимости от целей, приоритеты могут быть шире) 1 Высокий (High) 2 Средний (Medium) 3 Низкий (Low) |
Статус (Status) | В каком статусе баг. На какой ступени жизненого цикла он в данный момент. |
Автор (Author) | Кто поставил баг-репорт |
Исполнитель (Assigned To) | Кто в данный момент работает на дефектом. |
Окружение | |
ОС / Браузер + версия / Модель смартфона/… | Информация об окружении, на котором был найден баг: операционная система, в каком браузере, если мобильное тестирование, то модель смартфона и т.д. |
… | |
Описание | |
Шаги воспроизведения (Steps to Reproduce) | Шаги, по которым можно быстро и легко воспроизвести баг. |
Фактический Результат (Result) | Результат, полученный после прохождения шагов. |
Ожидаемый результат (Expected Result) | Правильный результат, который должен быть после прохождения шагов. |
Дополнения | |
Прикрепленный файл (Attachment) | Файл с логами, скриншот, видео или любой другой документ, который поможет прояснить причину ошибки. |
Итак давайте создадим баг. Зайдем например на сайт www.ochkov.net и там посмотрим на верхний правый угол, в котором есть кнопка с номером. Если посмотреть внимательно, то видим, что иконка телефона и номер расположены неровно.
Перейдем в Инструменты разработчика в Chrome (сочетание клавиш Ctrl + Shift +I, или Дополнительные инструменты – Инструменты разработчика или F12).
1 Посмотрим на размер текста телефона, он 15px.
2 Посмотрим на размер иконки телефона, он 15px.
По пикселям они равны, но даже на глаз видно, что расположены криво. На основе нашего анализа ставим баг в https://www.mantisbt.org/demo.php тут можно попробовать демо-режим системы.
И так заходим и начинаем заполнять баг-репорт.
1 Отмечаем приоритет, он у нас низкий, так как тут нужно поправить верстку, а не 404 страница или что-то серьезное.
2 пишем версию Chrome, можно написать разрешение экрана и т.д.
3 Отмечаем версию продукта
4 Пишем заголовок (можно проверить ваш заголовок тут http://bugred.ru/)
5 Краткое описание проблемы.
6 Описание шагов, которые нужно воспроизвести.
7 ФР и ОР Ну тут описываем, что происходит после выполнения шагов и что должно быть.
8 Загружаем изображения для лучшей наглядности.
Вот собственно и все.
Как правильно составлять баг-репорты
Правила оформления записей в баг-трекере в каждой компании свои — это зависит как от политики компании, технологии разработки, используемного баг-трекера, типа проекта и много чего еще. Но в любом случае хороший баг-репорт обладает определенными характеристиками.
Если кратко, то хороший баг-репорт позволяет:
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 — старший тестировщик/старший программист/менеджер или любой другой ответственный за это дело человек.
Если есть только одно поле, то выставляем его.
«Какой приоритет ставить багу?» На этот вопрос нет однозначного ответа, все зависит от каждого конкретного случая. Но старайтесь не увлекаться и не ставить всем багам подряд высокий или критичный приоритет, реально оценивайте их критичность для проекта.
В какой версии исправить, на кого назначить — зависит от политики внутри компании. Не знаете, что поставить? Спросите коллегу.
Статья дополнена правильными замечаниями из комментариев.
Основы тестирования. Как правильно составить баг-репорты
Зачем нужен хороший баг-репорт?
Это может повредить рабочему настрою тестировщиков, затронуть их профессиональную гордость, их эго.
Каковы качества хорошего баг-репорта в разработке программного обеспечения?
Любой может написать баг-репорт. Но не каждый может написать эффективный бар-репорт.
Вы должны уметь хорошо различать баг-репорт среднего качества и хороший баг-репорт. Как отличить хороший и плохой баг-репорты? Это очень просто, примените следующие характеристики и методы, чтобы качественно сообщить об ошибке.
Характеристики и методы включают в себя:
1) Наличие четко определенного номера ошибки:
Всегда присваивайте уникальный номер каждому сообщению об ошибке. Это, в свою очередь, поможет вам четко идентифицировать запись об ошибке. Если вы используете какой-либо инструмент автоматического формирования баг-репортов, то этот уникальный номер будет генерироваться автоматически каждый раз, когда вы делаете отчет.
Запишите номер и краткое описание каждой ошибки, о которой вы сообщили.
2) Воспроизводимость:
Если найденная вами ошибка не воспроизводима, то она никогда не будет исправлена.
Вы должны четко указать шаги для воспроизведения ошибки. Не принимайте и не пропускайте ни одного шага воспроизведения. Ошибку, которая описана шаг за шагом, легко воспроизвести и исправить.
3) Будьте конкретны:
Не пишите очерк о проблеме.
Пишите конкретно и по существу. Попытайтесь описать обнаруженную проблему минимальным количеством слов и максимально эффективным способом. Не объединяйте описания нескольких багов в одном отчете, даже если они кажутся похожими. Напишите разные отчеты для каждой проблемы.
Эффективный баг-репортинг
Отчеты об ошибках являются важным аспектом тестирования программного обеспечения. Эффективный баг-репорт хорошо понимается командой разработчиков и позволяет избежать путаницы или недопонимания.
Правильно составленный текст отчета про найденный баг очень важен для регистрации ошибки. Один из важных моментов, которые должен иметь в виду тестер, — это не использовать командный тон в отчете. Такой тон нарушает моральное состояние коллектива и создает нездоровые рабочие отношения. Используйте нейтральный тон.
Не думайте, что если разработчик допустил ошибку, то вы можете использовать грубые слова. Прежде чем сообщать, не менее важно проверить, был ли уже баг-репорт по этой ошибке ранее или нет.
Дубликаты ошибок — это постоянная проблема в цикле тестирования. Проверяйте весь список обнаруженных багов. Иногда разработчики могут знать о наличествующей проблеме и игнорировать ее в будущем выпуске. Используйте специальные инструменты, такие как Bugzilla, который автоматически ищет дубликаты ошибок. Тем не менее, лучше всего дополнительно вручную искать дубликаты ошибок.
Тема связана со специальностями:
Четко указывайте информацию об ошибке: «Как?» и «Где?». Отчет должен ясно показывать, как был выполнен тест и где именно произошел дефект. Читатель отчета должен легко воспроизвести ошибку и найти ее.
Кроме того, имейте в виду, что отчет об ошибках будет сохранен для будущего использования и должен быть хорошо написан и содержать необходимую информацию. Используйте содержательные предложения и простые слова, чтобы описать найденные ошибки. Не используйте запутанные утверждения, которые тратят время читателя.
Сообщайте о каждой ошибке как о отдельной проблеме. В случае описания нескольких багов в одном отчете, вы не сможете закрыть его, пока все проблемы не будут решены.
Следовательно, лучше всего разбить большие проблемы на отдельные баги. Это гарантирует, что каждая ошибка может быть обработана отдельно. Хорошо написанный баг-репорт помогает разработчику воспроизвести ошибку на своем терминале. Это помогает им также правильно диагностировать проблему.
Как сообщить об ошибке?
Используйте следующий простой шаблон баг-репорта:
Это простая форма баг-репорта. Его содержание может варьироваться в зависимости от используемого вами инструмента отчетов об ошибках. Если вы пишете баг-репорт вручную, то необходимо упомянуть некоторые поля, например номер ошибки, который должен быть назначен вручную.
Составитель отчета: Ваше имя и адрес электронной почты.
Продукт: В каком продукте вы нашли эту ошибку.
Версия: Версия продукта с ошибкой, если таковая имеется.
Компонент: Основные подмодули продукта.
Платформа:
Укажите аппаратную платформу, на которой вы обнаружили эту ошибку. Различные платформы, такие как «ПК», «MAC», «HP», «Sun» и т. д.
Операционная система:
Укажите все операционные системы, в которых вы обнаружили ошибку. Операционные системы, такие как Windows, Linux, Unix, SunOS, Mac OS. Упомяните разные версии ОС, такие как Windows NT, Windows 2000, Windows XP и т. д., если это применимо.
Приоритет:
Серьезность ошибки:
Описывает влияние ошибки.
Статус ошибки:
Когда вы регистрируете ошибку в любой системе отслеживания ошибок, то по умолчанию статус ошибки будет «Новый».
Позднее ошибка проходит через различные этапы, такие как «Исправлено», «Проверено», «Повторно открыто», «Не исправлено» и т. д.
Назначить разработчику:
Если вы знаете, какой разработчик отвечает за тот конкретный модуль, в котором произошла ошибка, вы можете указать адрес электронной почты этого разработчика. В противном случае оставьте это поле пустым, так как это присвоит полю авторства ошибки значение владельца модуля, если менеджер не назначит ошибку разработчику.
URL страницы, на которой произошла ошибка.
Краткое резюме:
Добавьте краткое описание ошибки. Ориентируйтесь на 60 слов или меньше. Убедитесь, что составленное резюме отражает проблему и место, где она находится.
Описание:
Подробное описание ошибки.
Это важные шаги в отчете об ошибках. Вы также можете добавить «Тип отчета» как еще одно поле, которое будет описывать тип ошибки.
Видео курсы по схожей тематике:
Автоматизация тестирования мобильных приложений
Unit тестирование в C#
Типы отчетов включают в себя:
1) Ошибка в коде
2) Ошибка проектирования
3) Новое предложение
4) Проблема с документацией
5) Аппаратная проблема
Важные фичи в вашем отчете об ошибках
Рассмотрим несколько составляющих отчета о найденном баге
Ниже приведены важные элементы баг-репорта:
1) Номер ошибки/идентификатор:
Номер ошибки или идентификационный номер (например, xyz007) значительно упрощает составление баг-репорта и поиск места ошибки. Разработчик может легко проверить, исправлена ли конкретная ошибка или нет. Это делает весь процесс тестирования и повторного тестирования более плавным и легким.
2) Наименование ошибки:
Заголовок ошибки читается чаще, чем любая другая часть баг-репорта. Стоит указать в нем всё о том, что входит в баг.
Название ошибки должно быть достаточно осмысленным, чтобы читатель мог его понять. Четкий заголовок ошибки облегчает понимание, и читатель легко сможет проверить, было ли сообщение об ошибке ранее и была ли она исправлена.
3) Приоритет:
В зависимости от серьезности ошибки, для нее может быть установлен приоритет. Ошибка может быть Blocker, Critical, Major, Minor, Trivial или предложением по улучшению функционала. Приоритет ошибки от P1 до P5 может быть задан так, чтобы важные из них просматривались первыми.
4) Платформа / Среда:
Указание конфигурации ОС и браузера необходимо для большей точности в баг-репорте. Это лучший способ сообщить о том, как можно воспроизвести ошибку.
Без точной платформы или среды приложение может вести себя по-другому, и ошибка на стороне тестировщика может не повторяться на стороне разработчика. Поэтому лучше четко указать среду, в которой была обнаружена ошибка.
5) Описание:
Правильное описание ошибки помогает разработчику понять ошибку. Оно описывает возникшую проблему. Плохое описание создаст путаницу и потратит время разработчиков и тестеров.
Необходимо четко сообщить об эффекте в описании. Всегда полезно использовать полные предложения. Рекомендуется описывать каждую проблему отдельно, а не разрушать их полностью. Не используйте такие термины, как «я думаю» или «я считаю».
6) Шаги для воспроизведения ошибки:
Хороший отчет об ошибке должен четко указывать шаги для воспроизведения. Шаги должны включать действия, которые вызывают ошибку. Не делайте общих заявлений. Будьте конкретны в следующих шагах.
Хороший пример правильно написанной пошаговой процедуры приведен ниже:
7) Ожидаемый и фактический результат:
Описание ошибки будет неполным без указания ожидаемых и фактических результатов. Необходимо обрисовать в общих чертах, каков результат теста и что ожидал бы пользователь в случае корректной работы программы. Читатель отчета должен знать, какой результат теста будет корректным. Ясно упомяните, что произошло во время теста и каков был результат.
8) Скриншот:
Одна картинка стоит тысячи слов. Сделайте скриншот с примером сбоя с соответствующими выделениями, чтобы указать дефект. Выделите неожиданные сообщения об ошибках светло-красным цветом. Это привлекает внимание к необходимой области.
Некоторые дополнительные советы, для написания хорошего баг-репорта
Ниже приведены некоторые дополнительные советы, чтобы написать хороший отчет об ошибке:
1) Немедленно сообщите о проблеме:
Если вы обнаружите какую-либо ошибку во время тестирования, не нужно ждать, чтобы написать подробный отчет об ошибке позже. Вместо этого напишите отчет об ошибке немедленно. Это обеспечит хорошее качество отчета и воспроизводимость шагов получения ошибках. Если вы решите написать отчет об ошибке позже, есть большие шансы пропустить важные детали в баг-репорте.
2) Воспроизведите ошибку три раза перед написанием баг-репорта:
Ваш баг должен быть воспроизводимым. Убедитесь, что ваши шаги достаточно четкие, чтобы воспроизвести ошибку без какой-либо двусмысленности. Если ваша ошибка не воспроизводима каждый раз, вы все равно можете подать ошибку, указав периодическую природу бага.
3) Протестируйте эту же ошибку на других похожих модулях:
Иногда разработчик использует один и тот же код для разных похожих модулей. Таким образом, вероятность того, что ошибка в одном модуле возникнет и в других подобных модулях, выше. Вы даже можете попытаться найти более серьезную версию найденной ошибки.
4) Составьте хорошее резюме ошибки:
Краткое описание ошибки поможет разработчикам быстро проанализировать природу ошибки. Низкое качество отчета излишне увеличит время разработки и тестирования. Правильно взаимодействуйте с вашим баг-репортом. Имейте в виду, что сводка об ошибках используется в качестве справочной информации для поиска ошибки в инвентаре ошибок.
5) Прочитайте несколько раз отчет об ошибке, прежде чем нажать кнопку «Отправить»:
Прочитайте все предложения, формулировки и шаги, которые используются в баг-репорте. Посмотрите, не создает ли какое-либо предложение двусмысленность, которая может привести к неправильной интерпретации. Следует избегать вводящих в заблуждение слов или предложений, чтобы составить четкое сообщение об ошибке.
Бесплатные вебинары по схожей тематике:
BDD подход в автоматизации тестирования
Все о карьере QA специалиста. Ответы на вопросы
6) Не используйте оскорбительные выражения:
Приятно, что вы проделали хорошую работу и обнаружили ошибку, но не используете это для критики разработчика или нападок на какого-либо человека.
Заключение.
Мы рассмотрели некоторые особенности составления отчета про найденный баг. Нет сомнений, что ваш баг-репорт должен быть качественным документом.
Сосредоточьтесь на написании хороших отчетов об ошибках и потратьте некоторое время на выполнение этой задачи, потому что именно качественный баг-репорт является основной точкой связи между тестером, разработчиком и менеджером. Менеджеры со своей стороны должны объяснить своей команде, что составление хорошего отчета об ошибках является основной обязанностью любого тестировщика.
Ваши усилия по написанию хорошего отчета об ошибках не только сохранят ресурсы компании, но и создадут хорошие отношения между вами и разработчиками.
Для лучшей производительности команды стремитесь написать лучший отчет об ошибках.