May 27, 2022

Поиск и оформление ошибок (баг репорты), 2 часть

В этой части статьи перейдем, непосредственно, к написанию баг репортов

Чтобы приступить к оформлению ошибки, нужно открыть запущенный цикл академии, вверху справа нажать на синюю кнопку

Report Issue

1. Заголовок ошибки

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

В академиях формат ошибки является таким:
Устройство(Среда) – Область где находится ошибка – Краткое описание ошибки

Устройство – в компьютерной академии под устройством подразумевается ваша операционная система, к примеру

  1. Windows 10
  2. Windows 7 и т.д.

В мобильной академии под устройством(Environment - среда) подразумевают модель вашего телефона, к примеру:

  1. Redmi Note 7
  2. iPhone XR
  3. iPad 9 и т.д.

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

  1. Поиск (Search)
  2. Главная навигация (Navigation bar/menu)
  3. Домашняя страница (Homepage)
  4. Каталог товаров (Product Listing Page (PLP))
  5. Карточка товара (Product Detail Page (PDP))
  6. Страница часто задаваемых вопросов (FAQ)
  7. Страница результата поиска (Search results)
  8. Footer (нижняя часть сайта)
  9. Профиль пользователя (Profile, Account)
  10. Страница настроек (Settings, Settings gear, etc.)
  11. Страница входа и регистрации (Sign In, Sign Up, Login, Registartion) и тд.
  12. Меню из трех полосок (Hamburger Menu)
  13. Карты расположения магазинов (Store Locator)
  14. Корзина (Basket, Bag, Order)
  15. Реквезиты и оплата (Checkout, Billing Details)
  16. Изрбанное (Wishlist, Favorites) и т.д

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

Краткое описание ошибки – Здесь необходимо конкретно и предельно понятно описать ошибку одним небольшим предложением. Примерами могут быть такие описания:

  1. Ссылка или кнопка «Here» не работает или некликабельна (если невозможно кликнуть) ("Here" link/button doesn't work / is not clickable)
  2. Не открывается главное меню в горизонтальном режиме (Unable to access menu in landscape mode)
  3. Изображение на странице «Profile» не загружено (Profile image is not displayed)
  4. На странице настроек один блок перекрывает другой (Section "Section name" overlap section "Section name 2"
  5. В блоке «О компании» не воспроизводится видео (Video "Video Name" doesn't play)
  6. После клика на кнопку Sign In открывается страница с ошибкой 404 (If click on "Sign In" button an error page appears)
  7. Текст на странице профиля отображается некорректно и т.д.

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

Примеры заголовков:

Huawei P20 Lite - Checkout - "What to include a gift note?" tab partially out of display

Redmi Note 4X - Shop - After selecting size all choises are highlighted

Galaxy J6 - Cart - Invalid promocode is applied by the system

Windows 10 - Homepage - Forgot password link doesn't work или (is not clickable)

Windows 7 - Cart - Inappropriate discount is applied

Windows 10 - Search bar - Close "X" icon overlaps the scroll bar

MacOS High Sierra 10.13.6 - Account Page - Page does't show vehicle preferences

Windows 10 - AutoCraft Gold - Unable to share details via instagram

Apple iPad Air 2 Wi-Fi - Search - First result of searching is misaligned

Nokia 6 - Filter - Searching settings are not saving if leave the page

2. Тип ошибки

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

  1. Неработающая ссылка
  2. Невоспроизводимое видео
  3. Некорректно работающая кнопка
  4. Не открывающееся меню и т.д.

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

К визуальным ошибкам относятся, например:

  1. Слишком большой размер изображения
  2. Один текст перекрывает другой
  3. Некорректно отображающаяся верстка сайта или приложения
  4. Один блок заходит на другой и т.д.

Все что визуально выглядит не так как ожидается, все это относится к визуальным ошибкам.

Помимо функциональных и визуальных ошибок есть еще Crash (краш) – к примеру, при запуске приложение вылетает. (так же является функциональной ошибкой по своей сути). Это 3 самых распространенных типа ошибок.

Еще есть тип Content (контент) – этот тип относится к ошибкам, например, неправильно написанному тексту, неправильному переводу и т.д. В общем все что связано с контентом в тестируемом продукте.

И тип Performance (производительность) - приложение зависает и не отвечает на действия пользователя

3. Частота появления ошибки (Frequency)

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

Если же, допустим, ошибка воспроизводится (reproduction) в 3/5 или в 6/10 раз, то подойдет Hardly ever, далее градация по той же логике.

4. Приоритет ошибки

Приоритет зависит от того, насколько область, в которой найдена ошибка, важна для основных функций продукта. Например, если невозможно совершить покупку из-за ошибки в корзине - приоритет этой ошибки можно оценивать как High/Critical, если, например, на странице фото персонала магазина деформировано, то можно оценивать это как Low. Иными словами, чем больше проблема влияет на блокировку взаимодействия с основным функционалом продукта, тем выше будет приоритет ошибки.

Например, для интернет-магазина основные пути и функционал - это успешный поиск и покупка товара; Для приложения звонков - доступ к контактам и процедура звонка; У приложения для просмотра фильмов, сериалов, ТВ - Плеер, лента лайв-трансляций, библиотека контента.

Crash чаще всего обозначается как Critical, даже если он вопроизводится вне основного сценария. В крайнем случае - High.

5. Устройство (среда) с которого происходило тестирование

На данной этапе вам нужно будет отметить то устройство с которого происходило тестирование, т.е, например, iPhone 7 или, например, Windows 10 Chrome.

6. Пошаговое воспроизведение ошибки

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

Первым шагом всегда должно идти либо открытие тестируемой ссылки, либо открытие тестируемого приложения. Т.е. всегда пишем первым шагом к примеру:

1. Открываем ссылку «Ссылка на тестируемый сайт (на главную страницу)»

1. Открываем приложение

Далее со второго шага вы начинаете расписывать каждое действие которые привело вас к ошибке. Примерно расписанная ошибка по шагам должна выглядеть так:

  1. Открыть ссылку http://xxx.com - Open (или Access) https://www.google.com
  2. Открыть главное меню - Tap on (для моб.) и Click on (для комп.) menu
  3. Кликнуть на ссылку «Profile» - Click on "Profile" icon / button / link
  4. Нажать на кнопку “Sign Up” - Click on "Sign up" button / icon
  5. Заполнить все поля формы - Fill out data
  6. Нажать на кнопку «Create Account» - Click on "Create Account" button (комп.) Tap on "Create Account" button (моб.)

В данном случае подразумевается, что например ошибка возникает после того как пользователь нажимает на кнопку «Create Account».
Тот, кто будет проверять ваш отчет должен легко понять какие шаги ему следует выполнить чтобы найти ошибку, которую вы оформили.

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

Примеры шагов:

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

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

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


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

Примеры:

  1. Ожидается что после клика на ссылку "Название ссылки", должна открыться страница и небходимая/конкретная информация должна быть отображена (вместо нее пустое пространство, например)
  2. После клика на кнопку "Название кнопки" должна открыться форма для заполнения данных о пользователе.
  3. После перевода устройства в горизонтальный режим, изображение карты должно быть во весь экран.
  4. При включении на видео испанских субтитров, это должно быть отображено внизу экрана
  5. Если кликнуть на "Добавить товар" в корзину, добавленный товар должен отображаться в корзине

8. Актуальный (реальный) результат

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

Примеры:

  1. После клика на ссылку "Название ссылки" ничего не происходит, нет возможности взаимодействовать с ссылкой, либо она некликабельна в принципе, либо не происходит перехода на нужную страницу
  2. После клика на кнопку "Название кнопки" форма не открывается.
  3. При переводе устройства в горизонтальный режим, изображение карты обрезается по краям и часть функционала/информации не отображено/не доступно
  4. При открытии главного меню, некоторые "Такой-то" пункт меню отображен некорректно/деформированно/перекрыт другим/обрезан (distorted, overlap, cut) и т.д.

9. Сообщение ошибки

Данное поле практически всегда нужно будет оставлять пустым, за исключением тех моментов когда при нахождении какой либо ошибки пользователю показывается конкретное сообщение ошибки, например показывается ошибка 404, или написано что сервер не отвечает и написан код ошибки, либо же это ошибка функционала - Access Denied, Oops, an error appears и тд

Текст или номер ошибки пишется именно в это поле. В заголовке пишется просто "an error appears" без явного уточнения текста или номера ошибки, особенно если эта информация занимает много символов

10. Дополнительная информация

В основном, это поле используется для редактирования ТЕ или TTL, если есть такая необходимость, например, для заметок о истории этой ошибки, средах и т.д. Однако, можно оставлять дополнительную информацию, например, о тестируемом устройстве, если оно к примеру, имеет кастомную прошивку и т.д. В общем, если есть необходимость оставить какую-то дополнительную информацию, которая влияет на ошибку, но не подходит ни под одну область из предыдущих. Желательно, все же, не злоупотреблять этой областью.

11. Вложения

На данном этапе вам нужно будет приложить некоторые материалы по ошибке. В частности это:

  1. Скриншот страницы с ошибкой на котором красным прямоугольником выделена область ошибки
  2. Записанное видео, на котором показаны все шаги расписанные ранее
  3. Логи

На скриншоте и видео обязательно должна быть видна адресная строка, если тестировался сайт. Также на скриншотах и видео недопустимо чтобы отображался иконка VPN, если это не предусмотрено в описании цикла. Скриншоты должны быть в формате JPG или PNG. Видео должны быть в формате MP4 и не должны содержать внутренних звуков среды и внешних звуков окружения (если это не предусмотрено описанием цикла или задачи)

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

О логах поговорим позднее.

Дополнительные поля

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

В мобильной академии содержится поле, в котором нужно будет написать инструмент который использовался для сбора логов. Для андроид и iOS устройств инструменты разные. В частности, для андроид, если тестировался сайт, то в этом поле записываем «Chrome DevTools», а если приложение тестировалось, то записываем «ADB». Если тестирование происходило с iOS устройства, то в любом случае в этом поле записываем «iMazing» или "3utools" , в зависимости от того, какой софт был использован для сбора логов.

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

Оглавление