Баг-репорт — это отчет об ошибке. В нём указывают, что нужно исправить в программном обеспечении или на сайте. Перечисляют причины и факты, почему поведение считают ошибочным.
Отчеты отличаются: содержание зависит от предметной области, типа программного обеспечения и даже части программы, где произошла ошибка. Но есть и общие, характерные для всех отчетов моменты.
Почему важно сообщать об ошибках и кто это делает
Никто не хочет работать с программным обеспечением, которое ведет себя не так, как ожидалось. Например, постоянно вылетает, выдает неправильный результат. Плохой пользовательский опыт делает программу бесполезной. Отчеты об ошибках помогают сделать так, чтобы ПО выполняло то, что нужно.
Во многих командах разработчиков есть тестировщики или даже службы обеспечения качества. Они ищут и готовят сообщения об ошибках, а разработчики устраняют проблемы.
Тестировщиком реально стать даже без опыта в IT. Для этого пройдите курс Skypro «Инженер по тестированию». Научитесь писать тестовую документацию и составлять отчеты, тестировать веб- и мобильные приложения и API, освоите нужные инструменты. Внутри — мастер-классы с реальными рабочими задачами, домашки и разборы от наставника. Создадите четыре проекта для портфолио и получите диплом гособразца.
Основные принципы
Правильные отчеты помогают программистам быстрее исправлять ошибки. Детали зависят от типа багов. Но есть несколько основных принципов — что и как включать в баг-репорт, чтобы заранее снять вопросы разработчиков.
Указывайте:
1️⃣ Только одну ошибку на отчет. Это золотое правило, потому что так гораздо проще исправлять баги. Легче отслеживать статус отдельных отчетов и выставлять приоритеты задач, распределять работу между несколькими разработчиками. Да и меньшее количество информации проще запомнить и проанализировать.
2️⃣ Место интерфейса программного обеспечения, в котором возникла ошибка. Опишите экран, на котором находитесь, состояние интерфейса. Включите URL-адрес страницы, если это веб-приложение.
3️⃣ Действия в программе. Пошагово опишите действия, которые выполняли перед тем, как столкнулись с ошибкой. Это важно: может оказаться, что некорректное поведение программы началось до того, как вы его заметили.
4️⃣ Ожидания. Поведение программы может быть некорректным с точки зрения общей логики или вашего личного опыта — указывайте не только очевидные отказы выполнения и неверные результаты вычислений. Программы создают, чтобы облегчить пользователям жизнь, а не заставлять их подстраиваться под готовый результат.
5️⃣ Скриншот или запись экрана с ошибкой. Есть риск ошибиться, когда пишешь отчет об ошибке. Это значительно усложнит работу команды разработки. Визуальные материалы — более точный способ указать на проблему, чем просто описать ее.
6️⃣ Техническую информацию. То есть вашу операционную систему, браузер, тип устройства — персональный компьютер, мобильный телефон или планшет. А еще тип устройства ввода — клавиатуру, мышь, сенсорный экран и прочее. Будут полезны и параметры монитора, чтобы исправить ошибки в отображении пользовательского интерфейса.
7️⃣ Все сообщения об ошибках и коды. Они помогут определить, что это за ошибка и как ее устранить. Показывайте и те сообщения, которые кажутся нерелевантными. Даже они могут помочь разобраться в проблеме.
8️⃣ Можете ли вы воспроизвести проблему. То есть происходит ли одно и то же каждый раз, когда вы пытаетесь выполнить задачу. Эта информация поможет разработчику найти причину ошибки.
9️⃣ Пробовали ли исправить проблему. Есть причина, по которой айтишник всегда спрашивает: «Вы пробовали выключить и снова включить?» или «Пытались ли обновить веб-страницу?». Перезагрузка может быть простым способом исправить проблему. Если она не исчезает — это дает много информации. Укажите, и это сэкономит время на последующее обсуждение проблемы.
🔟 Насколько проблема влияет на работу. Обычно серьезность варьируется от очень высокой (полностью останавливает работу) до очень низкой (визуальные недочеты). Эта информация поможет командам разработчиков расставить приоритеты, определить порядок, в котором устранять ошибки.
Основные элементы
Отчет должен быть четким, действенным и простым. Иначе разработчикам будет сложно понять проблему и найти решение.
Обычно программисты и тестировщики договариваются, что и как указывать. Еще на это влияет система, в которой готовят отчет. Но есть общие компоненты баг-репорта:
👉 Резюме — краткое обозначение проблемы, причина и тип ошибки.
👉 Описание — подробности и любые сведения, которые помогут локализовать и исправить ошибку.
👉 Вложения — любые визуальные или другие материалы.
👉 Срок выполнения — если важно, чтобы ошибку исправили к определенной дате.
👉 Критичность — комментарий, насколько баг мешает нормальной работе приложения.
Часто выделяют следующие уровни критичности ошибок:
☝ Блокирующий (Blocker) — полностью блокирует нормальную работу программы, нужно исправить как можно быстрее.
☝ Критический (Critical) — сильно искажает логику приложения и значительно осложняет работу с ним.
☝ Значительный (Major) — затрагивает только отдельные элементы программы, существенно мешает работать.
☝ Незначительный (Minor) — либо не сильно влияет на работу программы, либо проявляется редко.
☝ Тривиальный (Trivial) — относится к визуальным недочетам в интерфейсе: опечатки, неудобные цвета и прочее.
Жизненный цикл
Порядок работы тоже зависит от соглашений в команде, системы управления. Но выделяют общие статусы отчета, которые встречаются практически везде:
💡 Новый — только создан, ждет проверки разработчиком.
💡 Принят — отчет проверили, проблему подтвердили.
💡 Отклонен — отчет проверили, но команда разработки отказалась работать по нему. Например, потому что ошибку не удалось повторить. Или то, что показалось ошибкой, — нормальное поведение программы. Или проблему уже устранили, когда работали над другим отчетом.
💡 Назначен — ошибку передали исполнителю.
💡 В работе — разработчик исправляет ошибку.
💡 Проверяется — исполнитель закончил работу, результат проверяет старший специалист.
💡 Закрыт — ошибку исправили, результат доступен пользователям.
Системы для отчетов об ошибках
Современные программы — это сложные, многоуровневые информационные системы. Большинство из них неидеальны, где-то постоянно появляются баги. Чтобы помочь командам разработчиков справиться с потоком отчетов об ошибках от пользователей или тестировщиков, создали специальные системы. Они позволяют автоматизировать работу с багами.
Такие программы называют баг-трекерами. Чаще всего они — часть более сложных систем: управления проектами или исходным кодом приложения.
Системы управления проектами созданы, чтобы помочь контролировать разработку программы. Акцент в них сделан на планировании, отчетности и аудите. Такие системы чаще используют менеджеры проектов, тестировщики, разработчики в коммерческих продуктах.
К наиболее распространенным системам управления проектами относят:
- Jira.
- YouTrack.
- Redmine.
Форма создания отчета об ошибке в системе управления проектами Jira
Системы управления исходным кодом позволяют отслеживать изменения, контролировать версии кода и управлять отчетами об ошибках. Ими чаще пользуются именно разработчики. Не только в коммерческих, но и в свободно распространяемых программных продуктах, программах с открытым исходным кодом.
К основным системам управления исходным кодом относят:
- GitHub.
- GitLab.
- Bitbucket.
Форма создания отчета об ошибке в системе управления исходным кодом GitHub
Интерфейсы и функции систем довольно сильно отличаются, но для работы с отчетами все предоставляют базовый набор функций:
✔️ форма создания отчета об ошибке с полями для ввода основных элементов;
✔️ управление состоянием и параметрами;
✔️ форма обсуждения, в которой команда задает вопросы и оставляет комментарии, указывает дополнительные детали;
✔️ уведомление об изменениях через имейл или другую систему обмена сообщениями.
У части баг-трекеров есть публичное голосование. Пользователи голосуют за или против бага: так повышают или понижают его приоритет.
Главное
- Баг-репорт — специальный вид отчета о неисправности в программном обеспечении или веб-сайте. Баг-репорт готовят тестировщики или специалисты из команды по контролю качества.
- Оформление баг-репорта сильно влияет на скорость, с которой исправят ошибки, на итоговый результат. Указывайте причину и тип ошибки, подробности, срок выполнения, критичность. Прикладывайте скриншоты или запись экрана.
- Прописывайте, пробовали ли исправить проблему, насколько она влияет на работу. Указывайте операционную систему, браузер, тип устройства, параметры монитора.
- Есть системы, с которыми проще создавать баг-репорты и управлять ими. Основные: Jira, YouTrack, Redmine, GitHub, GitLab, Bitbucket.
Профессия тестировщика ПО очень многогранна, ведь она требует внимания к деталям, креативности, коммуникативных навыков и усидчивости. Последнее качество особенно пригодится для такой части работы QA-инженера, как составление тестовой документации.
Один из примеров ― баг-репорт (от англ. bug report ― отчёт об ошибке), который содержит описание всех найденных дефектов в работе приложения. Не имеет значения, тестируете ли вы компьютерную игру, приложение для банка или сайт онлайн-магазина ― составление правильного отчёта является залогом продуктивного QA-процесса.
Баг-репорт содержит ответы на следующие вопросы:
- что идёт не так;
- где проявляется дефект;
- когда ошибка воспроизводится.
С этим техническим документом предстоит ознакомиться разработчикам, которые внесут изменения в программный код и исправят ошибки. Именно поэтому баг-репорт должен быть лаконичным, понятным и содержать максимум полезной информации.
Разберёмся, как добиться этого сочетания.
Как выявляют баги?
Вы, как инженер по обеспечению качества, можете узнать о наличии дефектов в программном обеспечении несколькими способами:
- во время проведения тестирования ПО;
- при обращении заказчика с описанием ошибки;
- из сообщений пользователей, которые столкнулись с проблемами во время использования программного продукта.
Идеальный сценарий ― первый, когда дефекты выявляются до релиза специалистами по обеспечению качества. Но иногда до начала составления баг-репорта тестировщику приходится изучать чужой опыт взаимодействия с ПО при появлении ошибки.
Какой инструмент используют для документирования дефектов?
Самой распространённой системой для отслеживания дефектов является JIRA. Данный ресурс позволяет фиксировать ошибки и следить за их жизненным циклом. Но эта программа не такая простая, особенно для новичков в ИТ. Поэтому важно ознакомиться с её функционалом.
Наши студенты уже на базовом курсе получают необходимый багаж знаний для эффективной работы с JIRA, а в этой статье мы подробно рассказали, как прокачать своё мастерство поиска в этой баг-трекинговой системе.
Некоторые компании отдают предпочтение и менее известным инструментам, например, Redmine или Mantis.
Каких правил придерживаться при написании баг-репорта?
Правило №1: следуйте принципу «1 дефект = 1 баг-репорт». Это позволит сохранить прозрачность процессов на проекте и детально следить за исправлением недочётов.
Правило №2: пишите баг-репорт простым и лаконичным языком, ведь от того, насколько быстро разработчик поймёт суть проблемы зависит скорость внесения правок в код.
Правило №3: описывайте дефект кратко, но с сохранением максимума полезной информации.
Правило №4: удостоверьтесь в воспроизводимости ошибки до заведения баг-репорта, повторите свой алгоритм действий и по возможности сократите число шагов.
Правило №5: проверьте, нет ли идентичного дефекта, который уже был зафиксирован.
Если всё в порядке, можно переходить к описанию.
Из каких элементов состоит баг-репорт?
Форма заполнения баг-репорта включает несколько полей (атрибутов). Туда тестировщик вносит характеристики дефекта. Число атрибутов может варьироваться в зависимости от баг-трекинговой системы и особенностей проекта, но с некоторыми тестировщики работают постоянно. Рассмотрим их:
Summary (заголовок)
Первый элемент баг-репорта — это краткое описание сути проблемы. В этом поле мы должны коротко и ясно описать выявленный дефект. Уже на этом этапе вы можете придерживаться правила «Где? Что? Когда или в каких условиях?». Не лишним будет добавить и данные о тестовом окружении, под которым выявлен дефект. Формулируйте этот атрибут в виде связного предложения, так будет проще вникнуть в суть проблемы.
Давайте рассмотрим конкретный пример. Представьте, что вы тестируете площадку объявлений menyaemsya.com. Согласно требованиям, поле с описанием товара должно содержать максимум 350 символов. Но вы видите, что система пропускает описание, которое превышает данный лимит. Для этого дефекта вам нужно составить баг-репорт. Воспользуемся подсказкой «Что? Где? Когда?», чтобы составить заголовок. Получается:
«Ограничение на ввод символов в поле с описанием товара отсутствует на всех страницах».
При тестировании мобильных приложений важно внести и название платформы, iOS или Android.
Заголовок готов. Можем двигаться дальше.
Description (описание)
Содержание этого поля отличается в зависимости от баг-трекинговой системы. Например, JIRA или Redmine предполагают описание шагов воспроизведения ошибки. Пользователи Mantis тут могут более подробно описать суть проблемы, а для описания пути воспользоваться атрибутом «Steps to reproduce» (в пер. с англ. «действия по воспроизведению»). Выглядеть это описание может следующим образом:
- переход на сайт menyaemsya.com;
- вход или регистрация;
- нажатие кнопки «Добавить объявление»;
- ввод символов в поле «Описание».
Если же предстоит выполнить слишком большую последовательность действий, то вы можете начать с описания условий.
«Пользователь авторизован на сайте menyaemsya.com и перешёл в корзину».
Actual/expected result (фактический/ожидаемый результат)
Нам предстоит ещё раз указать на суть дефекта и добавить информацию о том, как элемент ПО должен работать корректно.
Пример заполнения данного раздела:
«При внесении информации в поле “Описание” количество вводимых пользователем знаков не лимитируется. Ожидается, что после внесения 350 символов система не будет выводить на экран знаки и предложит пользователю сократить текст».
Attachments (вложения)
Этот элемент репорта позволяет проиллюстрировать суть бага и поделиться дополнительными данными. Вы можете прикрепить скриншоты, фото, видеозапись или иные файлы. Это упростит понимание сути проблемы и поможет быстрее сориентироваться.
Priority (приоритет)
Это важное поле, которое содержит информацию о срочности исправления дефекта. Данные этого атрибута помогают менеджеру планировать работу на проекте, ведь чем выше приоритет, тем скорее необходимо внести изменения.
Системы определения важности могут отличаться, но скорее всего вы встретитесь с подобной градацией:
- P1 High (высокий приоритет);
- P2 Medium (средний приоритет);
- P3 Low (низкий приоритет);
Высокий приоритет имеют критические дефекты, которые необходимо исправить в кратчайшие сроки. Категория P3 включает те баги, которые не влияют на работу системы и могут быть устранены в последнюю очередь.
Severity (серьёзность)
Ошибки имеют и другую характеристику ― степень серьёзности влияния на систему.
- Blocker — это статус для проблем, которые прерывают работу приложения.
- Critical — такой баг значительно влияет на работоспособность, но не приводит к блокировке.
- Major — ошибка, которая не способствует фундаментальным изменениям, но может привести к незначительным искажениям отображения информации или выполнения некоторых функций.
- Minor — не влияет на работу системы. К этой категории можно отнести ошибки в текстовых блоках или визуальных решениях.
Status (статус)
В этом поле находится актуальная информация о том, в каком состоянии текущая задача. Содержание этого атрибута может варьироваться в зависимости от баг-трекинговой системы. Вы можете столкнуться со следующими обозначениями:
- New – новый баг;
- Feedback – требуется обратная связь;
- Acknowledged – с содержанием документа ознакомились;
- Accepted – ошибка воспроизвелась и была подтверждена;
- Assigned – исправление ошибки назначено;
- Resolved – изменения были внесены;
- Closed – дефект больше не воспроизводится.
Такими являются основные элементы баг-репорта, с которыми приходится встречаться чаще всего. Но в отчёте могут содержаться и дополнительные поля:
- Environment/platform – среда, платформа или операционная система;
- Fix version – этап разработки ПО на момент выявления бага;
- Assignee – пользователь, которому предстоит утвердить или исправить дефект;
- Lable – категория ошибки (текст, визуальные элементы и прочее).
Резюмируем
Написание баг-репорта ― важный элемент QA-процесса, который позволяет ускорить устранение дефекта и подготовить качественное ПО к выходу на рынок. До начала написания документа важно:
- убедиться в воспроизводимости ошибки;
- оценить поведение системы на разных платформах (при необходимости);
- проверить дефект на уникальность в баг-трекинговой системе.
Хороший отчёт об ошибке написан простым и понятным языком, содержит максимум полезной информации. Ключевыми атрибутами баг-репорта являются заголовок, описание, приоритет и статус ошибки. Стоит придерживаться порядка написания отчёта и заполнять все поля в зависимости от особенностей трекинговой платформы и требований проекта.
Умение составлять подобные репорты является важным для тестировщика навыком, который вы можете развить, ежедневно тренируясь. А освоить азы вам помогут наши замечательные преподаватели, сотрудники международной ИТ-компании, на курсе «Основы тестирования ПО». Присоединяйтесь!
Небольшое лирическое отступление
Так получилось, что в последнее время я занимаюсь разработкой программ работающих в связке с различным оборудованием. На прошлой работе это были роботы и станции тестирования для полупроводниковой промышленности, на текущей – масс-спектрометры для химии и медицины. Казалось бы, совершенно различные отрасли и назначение программ, но с точки зрения разработчика есть много общих моментов.
Типичную конфигурацию, с которой мы работаем, можно описать так: станция, к которой присоединен клиентский компьютер. На компьютере установлено базовое приложение, взаимодействующее с оборудованием и предоставляющее интерфейсы для сбора данных. Этими интерфейсами пользуется десяток вертикальных приложений, необходимых для решения конкретных задач пользователя. Для решения одной задачи обычно необходимо взаимодействие двух-трех приложений. Весь этот набор приложений зависит от многочисленных конфигурационных файлов и генерирует большой объем отчетов и данных.
Это длинное вступление было необходимо для того, что бы объяснить, почему когда в системе происходит ошибка, для ее локализации нам важно как можно точнее знать состояние системы. Отчет об ошибке может включать несколько десятков файлов – логи, конфигурационные фалы, файлы данных и проектов. Объяснять пользователю, по телефону, как все это собрать – не самое приятное занятие.
Если вы находитесь в похожей ситуации, то вам может пригодиться программа для автоматизации создания отчетов об ошибках – Sedge. С ее помощью вы можете опросить пользователя о произошедшей ошибке, автоматически сформировать отчет, включающий пользовательскую информацию, данные о системе, все необходимые файлы, упаковать и отправить его.
Как это работает
Для понимания принципа работы Sedge важны два понятия – Suite (набор приложений) и Application (приложение). Набор приложений может быть описан в одном или нескольких .sedge файлах и определяет для набора связанных программ общие свойства, такие как пользовательский интерфейс, общие файлы и метод отправки отчета.
Например, ваша компания может иметь базовый сервис, ответственный за доступ к данным и две программы для обработки и отображения этих данных. Тогда, набор состоит из трех приложений и может быть разбит на три конфигурационных файла: main.sedge, определяющий, что должно быть включено в отчет в случае ошибки в любом из приложений, app1.sedge и app2.sedge, задающих дополнительные параметры отчета, специфичные для соответствующего приложения. Файлы app1.sedge и app2.sedge могут добавляться или удаляться во время установки или деинсталляции программ.
Конфигурационный файл полностью определяет поведение программы. В нем задаются шаги визарда, какие файлы должны быть добавлены в отчет, какая информация и как будет представлена в HTML отчете.
Пример простого конфигурационного файла
<?xml version="1.0" encoding="UTF-8" ?>
<Sedge>
<Suite name="LunarFrog.TaggedFrog" caption="TaggedFrog Error Reporting" partial="no">
<Schedule>
<Step name="Screenshot" />
<Step name="ErrorDetails" />
<Step name="Contacts" />
<Step name="Collect" />
</Schedule><Transport name="Email">
<Option name="to" value="error_mail@company.com" />
<Option name="subject" value="Error report" />
</Transport><Report>
<Group name="UserGroup" caption="User Information">
<Page name="ImagePage" caption="Screenshot">
<Temp name="screenshot" caption="Screen" />
</Page>
<Page name="InfoPage" caption="Information">
<Temp name="ReportDetails" caption="Details"/>
<Temp name="Contacts" caption="Contact Information" />
<Temp name="UserFiles" />
</Page>
</Group>
<Group name="EnvGroup" caption="Enviroment">
<Page name="ProcessesPage" caption="Processes">
<Data name="Processes" />
</Page>
<Page name="SystemPage" caption="System">
<Data name="System" />
</Page>
</Group>
</Report><Application name="TaggedFrog" caption="TaggedFrog">
<Report>
<Group name="ApplicationGroup" caption="Application">
</Group>
</Report>
</Application></Suite>
</Sedge>
* This source code was highlighted with Source Code Highlighter.
Первый шаг визарда
Одна из страниц отчета, созданного согласно этой конфигурации
Источники информации для отчета: cкриншоты, реестр, автоматически собираемые файлы, информация о системе, памяти, процессоре, список запущенных процессов, информация предоставленная пользователем (описание проблемы, файлы данных и т. д.).
Поскольку сценарии создания отчетов могут сильно различаться в зависимости от приложения, программа имеет широкие возможности по настройке и расширению. Достаточно легко вы можете создать свои собственные шаги визарда или источники информации, к примеру, если вам необходимо получить данные из базы данных, что не поддерживается программой по умолчанию. Примеры создания расширений доступны вместе с исходным кодом программы.
Изменен может быть и внешний вид отчета, поскольку шаблон задается с помощью HTML и CSS. Любой текст (интерфейс, сообщения) доступен для замены или локализации. По умолчанию поддерживается английский и русский интерфейсы.
Информация о программе
Платформа: .NET Framework 2.0 / C# 3.0
Лицензия: MIT
Статус: Beta
Сайт: sedge.codeplex.com
Отчеты об ошибках (на англ. «Bug
Report»)– это основной
материальный продукт тестирования,
надежная техническая документация,
которая описывает вид ошибки в тестируемой
системе.
Для упрощения организации взаимодействия
групп и общего централизованного
хранения отчетов об ошибках следует
использовать системы отслеживания
ошибок (на англ. «bug tracking»).
Это позволяет иметь единое хранилище
ошибок, отслеживать их повторное
появление, контролировать скорость и
эффективность исправления ошибок,
видеть наиболее нестабильные компоненты
системы, а также поддерживать связь
между группой разработчиков и группой
тестирования (уведомления об изменениях
по почте и т.п.). Чем больше проект, тем
сильнее потребность в централизованном
хранилище дефектов.
Пример одной из свободных систем
отслеживания ошибок с веб-интерфейсом.
является Bugzilla (разработка
компании Mozilla). Данная
система очень проста и популярна в
использовании [10].
Подобная
система обеспечивает следующие функции:
-
хранение
сообщения об ошибке (с обязательной
информацией о том, к какому компоненту
системы относится ошибка, кто ее нашел,
как ее воспроизвести, кто отвечает за
ее исправление и когда она должна быть
исправлена); -
система
уведомления о появлении новых ошибок,
об изменении статуса известных в системе
ошибок (как правило, это уведомления
по электронной почте); -
отчеты
об актуальных ошибках по компонентам
системы, по интервалам времени, по
группам разработчиков и разработчикам; -
информация
об истории ошибки (в том числе отслеживание
похожих ошибок, отслеживание повторного
возникновения ошибки); -
правила
доступа к ошибкам тех или иных категорий; -
интерфейс
ограниченного доступа к системе bug
tracking для конечного пользователя
информационной системы, который
используется как интерфейс обмена
информацией между пользователем и
службой технической поддержки системы.
Существуют основные виды продвижения
ошибки (на англ. «bug») по
системе (на англ. «Defect
flow»)(см. рисунок 6).
Рисунок 6 — Defect
flow
При поступление ошибки в систему, из
любого источника (заказчик, разработчик,
тестировщик), баг принимает статус new
(пер. с англ. «новый»). Затем рассматривается
программистом его описание и: или ошибка
решается (на англ. «resolve»)
или ей ставится статус duplicated
(пер. с англ. «дубль»), что означает, что
данная ошибка уже была и на данном этапе
решается, или же ей ставится статус
invalid (пер. с англ.
«необоснованный»)- неверное описание,
такой ошибки не существует. После всего
этого командой тестировщиков данная
ошибка перепроверяется и закрывается
(на англ. «verify») в случае,
если она больше не повторяется, или
переоткрывается (на англ. «reopen»), если
изменения все равно приводят к ошибке.
В отчете об ошибки необходимо соблюдать
некоторые правила:
1. В отчете должна быть с самого начала
понятна суть ошибки.
2.Должны быть четко понятны шаги
воспроизведения.
3.Должен быть известен альтернативный
правильный вариант поведения.
4. Указана версия и приоритет данной
ошибки.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Зачем нужен хороший баг-репорт?
Если ваш отчет об ошибках (баг-репорт) составлен правильно, то шансы на быстрое исправление этих багов — выше. Таким образом, исправление ошибки зависит от того, насколько качественно вы о ней сообщите. Составление отчетов об ошибках — не что иное, как навык, и сейчас мы рассмотрим, как его сформировать.
«Смысл написания отчета о проблемах (баг-репорта) состоит в том, чтобы исправить эти проблемы» — Cem Kaner. Если тестировщик не сообщает об ошибке правильно, программист, скорее всего, отклонит эту ошибку, заявив, что она невоспроизводима.
Это может повредить рабочему настрою тестировщиков, затронуть их профессиональную гордость, их эго.
Каковы качества хорошего баг-репорта в разработке программного обеспечения?
Любой может написать баг-репорт. Но не каждый может написать эффективный бар-репорт.
Вы должны уметь хорошо различать баг-репорт среднего качества и хороший баг-репорт. Как отличить хороший и плохой баг-репорты? Это очень просто, примените следующие характеристики и методы, чтобы качественно сообщить об ошибке.
Характеристики и методы включают в себя:
1) Наличие четко определенного номера ошибки:
Всегда присваивайте уникальный номер каждому сообщению об ошибке. Это, в свою очередь, поможет вам четко идентифицировать запись об ошибке. Если вы используете какой-либо инструмент автоматического формирования баг-репортов, то этот уникальный номер будет генерироваться автоматически каждый раз, когда вы делаете отчет.
Запишите номер и краткое описание каждой ошибки, о которой вы сообщили.


2) Воспроизводимость:
Если найденная вами ошибка не воспроизводима, то она никогда не будет исправлена.
Вы должны четко указать шаги для воспроизведения ошибки. Не принимайте и не пропускайте ни одного шага воспроизведения. Ошибку, которая описана шаг за шагом, легко воспроизвести и исправить.
3) Будьте конкретны:
Не пишите очерк о проблеме.
Пишите конкретно и по существу. Попытайтесь описать обнаруженную проблему минимальным количеством слов и максимально эффективным способом. Не объединяйте описания нескольких багов в одном отчете, даже если они кажутся похожими. Напишите разные отчеты для каждой проблемы.
Эффективный баг-репортинг
Отчеты об ошибках являются важным аспектом тестирования программного обеспечения. Эффективный баг-репорт хорошо понимается командой разработчиков и позволяет избежать путаницы или недопонимания.
Хороший отчет об ошибке должен быть четким и кратким, без каких-либо пропущенных ключевых моментов. Любое отсутствие ясности ведет к недопониманию и замедляет процесс разработки. Описание дефектов и составление отчетов — одна из самых важных, но часто игнорируемых областей в жизненном цикле тестирования.
Правильно составленный текст отчета про найденный баг очень важен для регистрации ошибки. Один из важных моментов, которые должен иметь в виду тестер, — это не использовать командный тон в отчете. Такой тон нарушает моральное состояние коллектива и создает нездоровые рабочие отношения. Используйте нейтральный тон.
Не думайте, что если разработчик допустил ошибку, то вы можете использовать грубые слова. Прежде чем сообщать, не менее важно проверить, был ли уже баг-репорт по этой ошибке ранее или нет.
Дубликаты ошибок — это постоянная проблема в цикле тестирования. Проверяйте весь список обнаруженных багов. Иногда разработчики могут знать о наличествующей проблеме и игнорировать ее в будущем выпуске. Используйте специальные инструменты, такие как Bugzilla, который автоматически ищет дубликаты ошибок. Тем не менее, лучше всего дополнительно вручную искать дубликаты ошибок.
Четко указывайте информацию об ошибке: «Как?» и «Где?». Отчет должен ясно показывать, как был выполнен тест и где именно произошел дефект. Читатель отчета должен легко воспроизвести ошибку и найти ее.
Имейте в виду, что цель написания баг-репорта — дать разработчику возможность визуализировать проблему. Он/она должен четко понимать суть дефекта, прочитав отчет об ошибке. Не забудьте предоставить всю необходимую информацию, которую ищет разработчик.
Кроме того, имейте в виду, что отчет об ошибках будет сохранен для будущего использования и должен быть хорошо написан и содержать необходимую информацию. Используйте содержательные предложения и простые слова, чтобы описать найденные ошибки. Не используйте запутанные утверждения, которые тратят время читателя.
Сообщайте о каждой ошибке как о отдельной проблеме. В случае описания нескольких багов в одном отчете, вы не сможете закрыть его, пока все проблемы не будут решены.
Следовательно, лучше всего разбить большие проблемы на отдельные баги. Это гарантирует, что каждая ошибка может быть обработана отдельно. Хорошо написанный баг-репорт помогает разработчику воспроизвести ошибку на своем терминале. Это помогает им также правильно диагностировать проблему.
Как сообщить об ошибке?
Используйте следующий простой шаблон баг-репорта:
Это простая форма баг-репорта. Его содержание может варьироваться в зависимости от используемого вами инструмента отчетов об ошибках. Если вы пишете баг-репорт вручную, то необходимо упомянуть некоторые поля, например номер ошибки, который должен быть назначен вручную.
Составитель отчета: Ваше имя и адрес электронной почты.
Продукт: В каком продукте вы нашли эту ошибку.
Версия: Версия продукта с ошибкой, если таковая имеется.
Компонент: Основные подмодули продукта.
Платформа:
Укажите аппаратную платформу, на которой вы обнаружили эту ошибку. Различные платформы, такие как «ПК», «MAC», «HP», «Sun» и т. д.
Операционная система:
Укажите все операционные системы, в которых вы обнаружили ошибку. Операционные системы, такие как Windows, Linux, Unix, SunOS, Mac OS. Упомяните разные версии ОС, такие как Windows NT, Windows 2000, Windows XP и т. д., если это применимо.
Приоритет:
Когда следует исправлять ошибку? Приоритет обычно устанавливается от P1 до P5. P1 следует понимать, как «исправить ошибку с наивысшим приоритетом» и P5 — «исправить, если позволяет время».
Серьезность ошибки:
Описывает влияние ошибки.
Типы Серьезности ошибки:
- Блокировщик (Blocker): дальнейшая работа по тестированию невозможна.
- Критическая (Critical): сбой приложения, потеря данных.
- Major: серьезная потеря функциональности.
- Minor: незначительная потеря функциональности.
- Незначительная (Trivial): некоторые улучшения пользовательского интерфейса.
- Улучшение (Enhancement): запрос новой функции или некоторого улучшения существующей.
Статус ошибки:
Когда вы регистрируете ошибку в любой системе отслеживания ошибок, то по умолчанию статус ошибки будет «Новый».
Позднее ошибка проходит через различные этапы, такие как «Исправлено», «Проверено», «Повторно открыто», «Не исправлено» и т. д.
Назначить разработчику:
Если вы знаете, какой разработчик отвечает за тот конкретный модуль, в котором произошла ошибка, вы можете указать адрес электронной почты этого разработчика. В противном случае оставьте это поле пустым, так как это присвоит полю авторства ошибки значение владельца модуля, если менеджер не назначит ошибку разработчику.
URL:
URL страницы, на которой произошла ошибка.
Краткое резюме:
Добавьте краткое описание ошибки. Ориентируйтесь на 60 слов или меньше. Убедитесь, что составленное резюме отражает проблему и место, где она находится.
Описание:
Подробное описание ошибки.
Используйте следующие поля для поля описания:
- Воспроизводимые шаги: ясно упомяните шаги для воспроизведения ошибки.
- Ожидаемый результат: как приложение должно вести себя на вышеуказанных этапах.
- Фактический результат: каков фактический результат выполнения вышеупомянутых шагов, то есть поведение ошибки.
Это важные шаги в отчете об ошибках. Вы также можете добавить «Тип отчета» как еще одно поле, которое будет описывать тип ошибки.
Видео курсы по схожей тематике:
Типы отчетов включают в себя:
1) Ошибка в коде
2) Ошибка проектирования
3) Новое предложение
4) Проблема с документацией
5) Аппаратная проблема
Важные фичи в вашем отчете об ошибках
Рассмотрим несколько составляющих отчета о найденном баге
Ниже приведены важные элементы баг-репорта:
1) Номер ошибки/идентификатор:
Номер ошибки или идентификационный номер (например, xyz007) значительно упрощает составление баг-репорта и поиск места ошибки. Разработчик может легко проверить, исправлена ли конкретная ошибка или нет. Это делает весь процесс тестирования и повторного тестирования более плавным и легким.
2) Наименование ошибки:
Заголовок ошибки читается чаще, чем любая другая часть баг-репорта. Стоит указать в нем всё о том, что входит в баг.
Название ошибки должно быть достаточно осмысленным, чтобы читатель мог его понять. Четкий заголовок ошибки облегчает понимание, и читатель легко сможет проверить, было ли сообщение об ошибке ранее и была ли она исправлена.
3) Приоритет:
В зависимости от серьезности ошибки, для нее может быть установлен приоритет. Ошибка может быть Blocker, Critical, Major, Minor, Trivial или предложением по улучшению функционала. Приоритет ошибки от P1 до P5 может быть задан так, чтобы важные из них просматривались первыми.
4) Платформа / Среда:
Указание конфигурации ОС и браузера необходимо для большей точности в баг-репорте. Это лучший способ сообщить о том, как можно воспроизвести ошибку.
Без точной платформы или среды приложение может вести себя по-другому, и ошибка на стороне тестировщика может не повторяться на стороне разработчика. Поэтому лучше четко указать среду, в которой была обнаружена ошибка.
5) Описание:
Правильное описание ошибки помогает разработчику понять ошибку. Оно описывает возникшую проблему. Плохое описание создаст путаницу и потратит время разработчиков и тестеров.
Необходимо четко сообщить об эффекте в описании. Всегда полезно использовать полные предложения. Рекомендуется описывать каждую проблему отдельно, а не разрушать их полностью. Не используйте такие термины, как «я думаю» или «я считаю».
6) Шаги для воспроизведения ошибки:
Хороший отчет об ошибке должен четко указывать шаги для воспроизведения. Шаги должны включать действия, которые вызывают ошибку. Не делайте общих заявлений. Будьте конкретны в следующих шагах.
Хороший пример правильно написанной пошаговой процедуры приведен ниже:
Последовательность шагов:
- Выберите продукт wer05.
- Нажмите на «Добавить в корзину».
- Нажмите «Удалить», чтобы удалить продукт из корзины.
7) Ожидаемый и фактический результат:
Описание ошибки будет неполным без указания ожидаемых и фактических результатов. Необходимо обрисовать в общих чертах, каков результат теста и что ожидал бы пользователь в случае корректной работы программы. Читатель отчета должен знать, какой результат теста будет корректным. Ясно упомяните, что произошло во время теста и каков был результат.

Одна картинка стоит тысячи слов. Сделайте скриншот с примером сбоя с соответствующими выделениями, чтобы указать дефект. Выделите неожиданные сообщения об ошибках светло-красным цветом. Это привлекает внимание к необходимой области.
Некоторые дополнительные советы, для написания хорошего баг-репорта
Ниже приведены некоторые дополнительные советы, чтобы написать хороший отчет об ошибке:
1) Немедленно сообщите о проблеме:
Если вы обнаружите какую-либо ошибку во время тестирования, не нужно ждать, чтобы написать подробный отчет об ошибке позже. Вместо этого напишите отчет об ошибке немедленно. Это обеспечит хорошее качество отчета и воспроизводимость шагов получения ошибках. Если вы решите написать отчет об ошибке позже, есть большие шансы пропустить важные детали в баг-репорте.
2) Воспроизведите ошибку три раза перед написанием баг-репорта:
Ваш баг должен быть воспроизводимым. Убедитесь, что ваши шаги достаточно четкие, чтобы воспроизвести ошибку без какой-либо двусмысленности. Если ваша ошибка не воспроизводима каждый раз, вы все равно можете подать ошибку, указав периодическую природу бага.
3) Протестируйте эту же ошибку на других похожих модулях:
Иногда разработчик использует один и тот же код для разных похожих модулей. Таким образом, вероятность того, что ошибка в одном модуле возникнет и в других подобных модулях, выше. Вы даже можете попытаться найти более серьезную версию найденной ошибки.
4) Составьте хорошее резюме ошибки:
Краткое описание ошибки поможет разработчикам быстро проанализировать природу ошибки. Низкое качество отчета излишне увеличит время разработки и тестирования. Правильно взаимодействуйте с вашим баг-репортом. Имейте в виду, что сводка об ошибках используется в качестве справочной информации для поиска ошибки в инвентаре ошибок.
5) Прочитайте несколько раз отчет об ошибке, прежде чем нажать кнопку «Отправить»:
Прочитайте все предложения, формулировки и шаги, которые используются в баг-репорте. Посмотрите, не создает ли какое-либо предложение двусмысленность, которая может привести к неправильной интерпретации. Следует избегать вводящих в заблуждение слов или предложений, чтобы составить четкое сообщение об ошибке.
Бесплатные вебинары по схожей тематике:
6) Не используйте оскорбительные выражения:
Приятно, что вы проделали хорошую работу и обнаружили ошибку, но не используете это для критики разработчика или нападок на какого-либо человека.
Заключение.
Мы рассмотрели некоторые особенности составления отчета про найденный баг. Нет сомнений, что ваш баг-репорт должен быть качественным документом.
Сосредоточьтесь на написании хороших отчетов об ошибках и потратьте некоторое время на выполнение этой задачи, потому что именно качественный баг-репорт является основной точкой связи между тестером, разработчиком и менеджером. Менеджеры со своей стороны должны объяснить своей команде, что составление хорошего отчета об ошибках является основной обязанностью любого тестировщика.
Ваши усилия по написанию хорошего отчета об ошибках не только сохранят ресурсы компании, но и создадут хорошие отношения между вами и разработчиками.
Для лучшей производительности команды стремитесь написать лучший отчет об ошибках.
С нашей стороны для качественной подготовки тестировщиков, предлагаем вам ознакомиться с курсом подготовки специалиста-тестировщика на ITVDN — Quality Assurance
По материалам статьи
I am studying on websites manual test. I haven’t any idea about making a bug report for developer by MS word, excel, powerpoint, PDF, video, screenshot etc. That they can understand easily my report & absence of me they fixed bugs. How to create a report, specially bugs report for developer. Developers need clean & easy report for understanding & also fixing those bugs. Which report will be clean & that report will have details about bugs. Step by step every bug & their fixing issue.
I need some idea with examples that I can understand & created by myself. If anybody know about any tools & websites about manual bugs reporting so please details information to me.
asked Nov 5, 2014 at 8:41
0
What you should do is ask your customers what they want.
In this case ask your developers what kind of information do they like to receive about any bug and in what format.
Usually prepare a proper story of
-
what you did to generate a specific bug and why exactly do you think it is a bug?
-
What will happen if you don’t fix this bug?
Maybe make a video or take a screenshot and annotate it to support your investigation.
Help the developers to improve their productivity by giving suggestions about improvement in the project or the work process itself!
answered Nov 5, 2014 at 10:14
IAmMilinPatelIAmMilinPatel
7,7247 gold badges38 silver badges63 bronze badges
answered Nov 5, 2014 at 10:01
AltafAltaf
417 bronze badges
Generic guidelines you can find in a similar question Best guidelines for bug reporting?.
If you’re looking for examples of bug reports, I would browse through bug reports for open sources and publicly available projects. It actually makes no sense to link such places. Rather, you need to find an application or programming library that you use or are familiar with. This way, by reading their bug reports, possible workarounds and fixes, you will be able to see which bug reports helped developers and other users and which not. Was it easy for you to understand the failure? Where you able to reproduce it?
Good bug reports are useful also when I don’t wear my tester’s hat. For instance, when I was trying to design my new flat with 3D tool and I got some error, I found some other guys reporting similar problem in the community support site for this tool. It was easy for me to see it was similar, because steps to reproduce reported by them were similar to my scenario. Plus, there where possible workarounds and solutions listed there.
Note, bugs reports are not necessarily available in bug reporting tools. Online they are called forums, fora, community support, etc.
answered Nov 7, 2014 at 18:51
dziecioudzieciou
10.5k8 gold badges46 silver badges97 bronze badges
The short answer: Imagine you’re trying to guide someone that’s blindfolded through an obstacle course. They’ll need to know where they are, details about how to move, and information about what to expect at each step.
Bug reports are similar; you need to use words, pictures, and video to accurately guide them through what you were doing, what you expected, and when it broke down.
We (uTest) have written a lot on this topic in conjunction with our community of 150,000+ testers. Here’s one example I found with a quick search —
How to Write a Quality Bug Report
Writing a good bug report is one of the most talked-about topics in the testing world. The art of
creating a well-written bug report requires a balanced combination of
testing and communication skills. This course provides advice and tips
geared towards helping you create bug reports that are informative and
actionable, thus improving their value to the customer.
It’s a bit too long for a post but here are the areas it covers —
- The Title
- Actions Performed (Steps)
- Expected and Actual Results
- Attachments
There’s even more here: http://university.utest.com/?s=bug+report
answered Nov 10, 2014 at 20:00
Defect reporting tools are going to vary at each company. For example; some places use HP’s QLM, some places use Target Process, some places just use Word/Excel. (I’m not associated with any of these companies but have used them at clients in the past!)
As far as the content goes… you’ve kind of answered your own question. The report needs to be clear, concise and factual. Typical bug reports can vary between companies, but generally include the same basic information:
- Description / Summary of the issue
- Prerequisites of the test
- Steps to reproduce the defect
- Expected Outcome
- Actual Outcome
- Branch/Revision info
- Test evidence
The last point is especially useful as a picture says a thousand words and shows the developer exactly what you’re seeing (particularly for front-end UI / UX issues)
Good luck with finding a tool to use — you’ll find they’re largely the same but may have completely different pricing options so may be best off with creating a Word template and good ol’ fashion email.
answered Nov 11, 2014 at 11:08
dvnieldvniel
2,4801 gold badge15 silver badges34 bronze badges
First of all: Something like one perfect bug report for all projects and types of applications does not exist. But you can talk with the developers and stakeholders of the project and discuss improvements of the bug reports you create. After a while you will have reports who everyone like.
Here is an example how I write a bug report:
Preconditions:
The user has an entry in the TODO list.
Steps:
1. Open www.todolist.com
2. Do a login to get access to the TODO list.
Expected:
Each entry in the TODO list has a delete button.
Actual:
No delete buttons are present.
Environment:
Firefox 30
Windows 7 SP1
Test Data:
Username: testuser
- Preconditions are not must, but in some cases they are necessary.
- A step-by-step list to reproduce the bug is easy to read and understand.
- It is important to explain what your expected result is, so the developer know what s/he has to fix.
- Some bugs could be depend on the environment. For example: A layout bug on a website could be present in Internet Explorer, but not in Firefox.
- If you use special test data (e.g. user input, account data) to reproduce the bug, write this in the report.
- Screenshots and videos are also very helpful, especially for layout/GUI bugs.
answered Nov 5, 2014 at 9:50
TwaldigasTwaldigas
1,65415 silver badges22 bronze badges






