Defect

Баг репорт – это технический документ и в связи с этим, язык описания проблемы должен быть техническим. Должна использоваться правильная терминология при использовании названий элементов пользовательского интерфейса (editbox, listbox, combobox, link, text area, button, menu, popup menu, title bar, system tray и т.д.), действий пользователя (click link, press the button, select menu item и т.д.) и полученных результатах (window is opened, error message is displayed, system crashed и т.д.).

Зачем хорошо описывать дефект?

Анализ, найденного дефекта:

Хороший отчет о дефекте должен удовлетворять следующим требованиям:

Простота 

Объективность

Нейтральность

Однозначность (Использование нечётких или неоднозначных формулировок)

Составляющие описание дефекта

При описании дефекта важно указать следующие данные:

Краткое (в одну строку) описание проблемы (Summary)очень важная часть описания дефекта.

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

  1. Приложение зависает, при попытке сохранения текстового файла размером больше 50Мб.
  2. Данные на форме “Профайл” не сохраняются после нажатия кнопки “Сохранить”.

Оно должно включать :

Удобнее всего Title формировать исходя из принципа: Где-Что-Когда

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

Description – Детальное описание проблемы

Состоит из:

Шаги к воспроизведению

Воспроизводимость дефекта

После первого нахождения дефекта, надо еще раз повторить те же действия, что привели к появлению ошибки.
Если ошибка воспроизводится – можно указывать в баг репорте:
Воспроизведение – 100% (но необязательно).
Если же ошибка воспроизводится не всегда – надо указать либо количество попыток и количество воспроизведений (например 3 из 5), либо процентное соотношение воспроизведений “на глаз”, например воспроизмедение – 80%. Так же, в этом случае, лучше указать время воспроизведения ошибки.

Окружения (Environment)

Веб приложение:

Десктопное приложение:

Мобильное приложение (Нативное):

Мобильное приложение (Веб):

Пример:

Шаги к воспроизведению
1. Войдите в системы: Пользователь “Тестер1”, пароль “xxxXXX”
— Вход в систему осуществлен
2. Кликните линк “Профайл”
— Страница Профайл открылась
3. Введите Новое имя пользователя: “Тестер2”
4. Нажмите кнопку “Сохранить”

Результат
– На экране появилась ошибка.
– Новое имя пользователя не было сохранено

Ожидаемый результат
– Страница профайл перегрузилась.
– Новое значение имени пользователя сохранено.

Т.е. если необходимо описать сложный сценарий можем отделять “действия” от “состояний” (“действия” имеют порядковый номер, “состояния” – нет)

пример 2:

Desktop/W10/Google Chrome 89.0.4389.128 (64 bit)
Desktop/W10/Firefox 87.0 (64 bit)

Серьезность (Severity)

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

Определяется QA специалистом, Lead QA или Team Lead после анализа требований, программного продукта и специфики конкретной проблемы:

Blocker — дефект относится к критичной (с точки зрения работоспособности) функциональности или критичным данным. У пользователя нет возможности выполнить целевое действие другими способами.

Примеры:
— Нет возможности залогиниться, зарегистрироваться;
— Нет возможности получить доступ как целевым данным, целевым разделам приложения;
— Происходит краш приложения на конкретном окружении.

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

Примеры:
— Падения (crash) приложения;
— Исключения (exeptions) в процессе работы с приложением;
— Не работоспособность функционала на одном из доступных пользователю окружениях;
— Несанкционированный доступ к данным/функциональности.

Major — дефект относится к не приоритетной (с точки зрения работоспособности) функциональности или не приоритетным данным. Есть очевидный и простой обходной путь выполнения целевой функциональности.

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

Trivial — дефект не относится напрямую к функциональности и данным. Нет необходимости в обходных путях для выполнения целевого действия. Не влияет на продуктивность, скорость использования приложения.

Пример:
— Небольшие расхождения верстки с макетами;
— Орфографические ошибки в не приоритетном контенте;
— Несущественые улучшения UI, UX.

В данной методике рассматривается 4-уровневая модель Severity. В зависимости от специфики вашего проекта или процессов, могут быть использованы альтернативные модели. Например, данную модель Severity можно расширить такими уровнями градации, как average (normal) и minor.

Приоритет (Priority)

Определяется менеджером (PM/PO) проекта на основании влияния проблемы на бизнес задачи/цели программного продукта:

— Высокий (High): дефект должен быть исправлен как можно скорее, так как он влияет на наиболее критичный с точки зрения бизнеса функционал.

— Средний (Medium): дефект должен быть обязательно исправлен, так как он влияет на важный с точки зрения бизнеса функционал. Однако исправление может быть отложено до ближайших этапов/спринтов разработки.

— Низкий (Low): дефект не обязателен к исправлению, так как он не влияет на важный с точки зрения бизнеса функционал и ее исправление может быть отложено до момента появления ресурсов.

Порядок заполнения баг репорта

Баг репорт имеет смысл заполнять в следующем порядке:

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

С какого места начинать описывать ошибку?

Защита дефекта

Скриншоты

ShareX

Цвет выделения

Важно! Выделение должно выделятся, т.е. выделять надо таким образом, что бы ваше выделение никто (!) не принял за элемент интерфейса

Если хотим акцентировать внимание, можно использовать стрелки

Используем коллажи

Удобно использовать разные цвета для ожидаемого и актуального поведения (например зеленый и красный)

Хорошо когда на на картинки наносятся пояснительные надписи (опять же они ни в коем случае не должны быть интерпретированы как элемент интерфейса)

Если проблема с линкой (удобно делать скрин, на котором она указана):

Нельзя делать скрины части приложения, в этом случае будет непонятно где этот элемент находится:

Если вы тестируете веб приложение, удобно захватывать и URL, в этом случае не будет вопросов, с подтверждением, где находился баг:

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

Если вам надо зафиксировать время воспроизведения ошибки, можно использовать захват системных часов:

Еще примеры

Выделение важной информации в багах:

Распространённые ошибки при описании дефектов

Старайтесь не писать ненужные слова в Title. Это усложняет понимание багов:

Если нет возможности выделять слова цветом, используйте верхний регистр:

Старайтесь писать Actual / Expected результат в одном формате:

“Где” лучше не раскидывать по всему тайтлу, а писать в одном месте

Wrong:

20190427_belarus_litva:no preview in the gallery “Брестская крепость”

Correct:

20190427_belarus_litva: gallery “Брестская крепость” – no preview

Не бойтесь отступов:

Скриншот соответствует текущему поведению, потому должен быть в “Текущем результате”

Каким образом вставлять картинки в баг? – Это все на усмотрение команды и зависит от проекта

Видео

В каком случае необходимо прикреплять видео к баг репорту?

Может видео заменить скриншот?

“ … a bug report is a tool that you use to sell the programmers on the idea of spending their time and energy to fix a bug …”

Cem Kaner

Похожая информация, но немного под другим углом:

Scholokov Denis

Автор: Денис Щолоков