Что такое приоритет ошибки какие могут быть приоритеты

Что такое баг-репорт и как правильно составить отчёт об ошибке? Рассказываем о видах багов, их приоритетах и жизненных циклах. Составляющие bug report, обязательные и необязательные поля, заголовок, шаблон и примеры отчетов об ошибках.

Программирование  •  01 декабря  2022  •  5 мин чтения

Тот ещё жук: как начинающему тестировщику составить хороший баг‑репорт

Баг-репорт — это документ о дефекте. Одни команды не тратят на него много времени, другие — фиксируют каждый баг. Рассказываем, как тестировщику правильно оформить баг-репорт.

Руководитель направления QA

  • Что такое баг
  • Виды багов
  • Приоритеты и жизненный цикл бага
  • Как выглядит жизненный цикл бага в теории и на примере дефекта в интернет-магазине
  • Что такое баг-репорт
  • Шаблон баг-репорта
  • Как правильно оформить баг-репорт
  • Совет эксперта

Что такое баг

Багом (от англ. bug) или дефектом часто называют ошибку в программном коде. Это не совсем ошибка, а скорее несоответствие фактического результата ожидаемому. То, как должна работать программа, описывают в требованиях к разработке. В идеальном мире она будет работать именно так, как её задумали заказчики. Но в реальности можно увидеть не то, что ожидалось.

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

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

Иногда баг все же оказывается в продукте после того, как его выпустили на рынок. Тогда он становится проблемой пользователей и службы технической поддержки. Такие дефекты часто бывают некритичными: опечатка в описании, вёрстка поехала. Для пользователя это неудобно, но в целом не приводит к серьёзным последствиям. Но иногда баги относятся к архитектуре системы или требованиям. Их обнаруживают не сразу, и они могут привести к убыткам для бизнеса. Например, для продукта заложили архитектуру, при которой невозможно писать юнит-тесты. Из-за этого с ростом продукта на тестирование тратят всё больше времени, а разработка становится всё дороже.

Как таблица решений помогает провести все тест-кейсы и ничего не забыть

Виды багов

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

Визуальный, относится к интерфейсу приложения. Кнопка «Купить» уехала за пределы экрана.

Функциональный. Не сохраняются данные: пользователь нажимает кнопку «Купить», но ничего не происходит, или может применить одноразовый купон на скидку два раза.

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

Баг нагрузки. Интернет-магазин должен выдерживать большой наплыв посетителей, например в Чёрную пятницу, поэтому там часто проводят нагрузочное тестирование. Например, искусственно создают ситуацию, когда в один раздел одновременно зашло несколько тысяч пользователей. Если приложение не загружается или зависает — это баг нагрузки.

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

Баг требований, или логический баг. До начала разработки приложения или отдельной «фичи» в требованиях что-то не учли. Например, забыли добавить всплывающее оповещение, что при включённом VPN приложение может работать с ошибками. Программист запрограммировал так, как было в требованиях (или как он их понял). В итоге, приложение работает, как описано в требованиях, но не так, как нужно бизнесу.

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

Начните карьеру в IT с профессии тестировщика

Спустя 4 месяца обучения в вашем портфолио будет 6 протестированных приложений. Пройдите бесплатную вводную часть курса, чтобы попробовать себя в роли тестировщика.

Приоритеты и жизненный цикл бага

Чем отличается приоритет от серьёзности и как их используют

У бага есть два важных атрибута — приоритет и серьёзность.

Серьёзность показывает, насколько баг влияет на возможность работать в программе. Обычно выделяют 5 уровней серьёзности бага. Самый опасный — блокирующий баг. Например, мобильное приложение перестало загружаться, и пользователь видит пустой экран. Самый безвредный — тривиальный баг. Он не влияет на работу приложения, а многие пользователи его даже не заметят. Это может быть, например, опечатка в разделе меню, куда редко заходят.

Приоритет — это критерий, который показывает, насколько быстро нужно исправить дефект. С точки зрения функционала баг может быть несерьёзный и некритичный, но при этом важный для бизнеса. Обычно выделяют три приоритета:

● высокий — исправить в первую очередь;
● средний — исправить, когда разобрались с первой категорией багов;
● низкий — исправить, когда разобрались с багами других приоритетов.

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

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

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

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

Как выглядит жизненный цикл бага в теории и на примере дефекта в интернет-магазине

У бага есть нулевая стадия, когда он, как кот Шрёдингера, может быть багом, а может — просто непониманием со стороны пользователя. Тестировщик сталкивается с чем-то непонятным в работе системы и начинает разбираться, что произошло. Это называется локализацией. Её цель — убедиться, что обнаружили именно дефект. Для этого тестировщик смотрит проектную документацию, ставит эксперименты и узнаёт, в каких ситуациях воспроизводится дефект и можно ли его как-то обойти.

В результате локализации может быть два вывода:

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

Это баг программы, и его нужно завести в баг-трекинговой системе.

Так выглядит упрощенный жизненный цикл бага

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

Баг, как и другие задачи проекта, фиксируют в трекинговой системе. В ней на каждом жизненном этапе дефект получает статус. Самая популярная баг-трекинговая система — Jira. В Яндексе используют её аналог — Яндекс Трекер.

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

● Тестировщик описал, в чём проблема, и присвоил задаче статус — новый баг.

● Задачу в работу берёт аналитик, чтобы уточнить, какие условия закладывали в ТЗ для продукта. Баг получает новый статус — анализ. На проекте может не быть аналитика или задачу не нужно уточнять — тогда её сразу берёт в работу разработчик.

● Аналитик добавил уточнения по задаче и передал разработчику. Новый статус — в разработке.

● Разработчик отдаёт задачу аналитику, если хочет что-то уточнить, а если нет, то передает тестировщику.

● Тестировщик проводит ретест — проверяет, исправили баг или нет. Если проблему решили, он закрывает задачу, если нет — возвращает задачу разработчику. Она снова получит статус «В разработке».

● Отработанную задачу тестировщик передаёт во внедрение. После этого приложение либо обновят сразу, либо подождут до релиза: тогда обновленную функциональность добавят в приложение вместе с другими отработанными задачами.

● Готово. Теперь пользователь видит только актуальные товары.

Если дефект повторится, то баг реинкарнирует: его заводят как новую задачу, и он проходит тот же жизненный цикл.

Пример жизненного цикла бага на реальном проекте

Пример жизненного цикла бага на реальном проекте

Что такое баг‑репорт

В тестировании баг-репорт — это отчёт об ошибке, который заводится в баг-трекинговой системе.

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

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

Примеры метрик:

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

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

● Фиксировать все баги с прода — если они мешают пользователям, то могут быть критичными и для бизнеса.

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

● Если в Jira уже есть задача, внутри которой нашли баг — не оформлять его отдельно, а написать в комментарии к этой задаче. Допустим, в приложение интернет-магазина решили добавить новую функцию к Чёрной пятнице — купон на скидку. Когда пользователь его применит, все товары в корзине подешевеют на 20%. Купон должен работать только когда в корзине больше одного товара. Программисты закончили разработку и передали в тестирование. Тестировщик нашёл баг: если удалить из корзины все товары, кроме одного, скидка так и останется — 20%. Такой баг оформляют в виде комментария.

Шаблон баг‑репорта

Документ может отличаться в зависимости от проекта, но есть обязательные поля*, которые везде примерно одинаковые.

Как правильно оформить баг‑репорт

Хороший баг-репорт приходит с опытом. Вот на что нужно обратить внимание джуну:

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

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

Вложения. Если баг визуальный или UX (поехала вёрстка, не работает кнопка), то без скриншота или скринкаста не разобраться — важно показать, что видит пользователь.

Шаги воспроизведения. Бывает, что джун начинает издалека: «Включить компьютер». Или пишет слишком абстрактно: «Заходишь на страницу, товар не отображается». Важно искать золотую середину: описывать те шаги, которые относятся к багу, и так, чтобы другим коллегам было понятно. Например: нажать кнопку «Начать», сканировать любой товар из задачи.

Взгляд на проблему. Тестировщику важно хотя бы пытаться смотреть на проблему с точки зрения бизнеса. Например, текст не помещается в поле, а как этот баг влияет на бизнес? Ответ на вопрос поможет в будущем определять серьёзность и приоритет бага.

Фактический и ожидаемый результат. То, как тестировщик заполнит эти поля, влияет на его коммуникацию по задаче с разработчиком. Если проблема описана непонятно, разработчик не сможет сразу за неё взяться, а будет уточнять детали у тестировщика. Например, придёт с вопросами, если увидит в документе, что фактический результат — кнопка не работает, а ожидаемый результат — кнопка работает.

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

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

Вот как могли бы оформить этот баг более опытные джуны и продвинутые тестировщики.

Баг-репорт от опытного джуна или ленивого мидла

Заголовок: [Инвентаризация] В начатой задаче при попытке сканирования товаров визуально ничего не происходит

Предусловия: Приложение Инвентаризация запущено и активно, открыта невыполненная задача для инвентаризации

Шаги:

1. Нажать кнопку «Начать».

2. Сканировать товар, присутствующий в задаче и еще не отсканированный.

Фактический результат: при попытке сканирования товара визуально ничего не происходит. В логах ошибка <Error…> (приложен лог с ошибкой).

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

Окружение: Apple iPod touch 32 Gb.

Приоритет: критичный.

Баг-репорт от мидла или сеньора

Заголовок: [Инвентаризация] В начатой задаче сканирование товара не записывается в задачу, в логах ошибка <Error…>.

Предусловия: Приложение Инвентаризация запущено и активно, открыта невыполненная задача для инвентаризации.

Шаги:

1. Нажать кнопку «Начать».

2. Сканировать любой товар из задачи.

Фактический результат: при попытке сканирования товара сканер пищит (как и должен), но в задачу сканирование не записывается. В системных логах приложения ошибка <Error…> (приложен кусок лога с ошибкой). В серверных логах ошибка <Error…> (приложен кусок лога с ошибкой).

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

Доп.информация: если отправить запрос о сканировании не с устройства, а через эмулятор, то ошибок не возникает, возвращается корректный ответ (приложены запрос и ответ и логи с эмулятора).
Окружение: Apple iPod touch 32 Gb, версия приложения 1.2.21.3, тестовый стенд INTG.

Приоритет: критичный.

В примерах нет ошибок, но видно, как можно подойти к задаче в зависимости от опыта.

Совет эксперта

Ольга Ермолаева

Самый полезный для тестировщика вопрос — «Что если?». На нём завязана вся локализация. Выдвигайте больше гипотез и проверяйте их с разных сторон.

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

Начните карьеру в IT с профессии тестировщика

Спустя 4 месяца обучения в вашем портфолио будет 6 протестированных приложений. Пройдите бесплатную вводную часть курса, чтобы попробовать себя в роли тестировщика.

Тестирование мобильных приложений: инструкция для начинающих

Кто такой инженер по тестированию и как им стать, чтобы начать IT-карьеру

  • Серьезность
  • Приоритет
  • Глобальный приоритет
  • Высокий приоритет и низкая серьезность
  • Высокая серьезность и низкий приоритет

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

Поэтому баги, внесенные в системы отслеживания (bug-tracking системы), дифференцируются.

Каждый баг имеет атрибуты серьезности (Severity) и приоритета (Priority). На первый взгляд может показаться, что разницы между этими понятиями нет, но она все же есть. Серьезность больше касается технической стороны дела, а приоритет — организационной.

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

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

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

Пример классификации серьезности багов:

  • Blocker. Блокирующая ошибка. Она делает невозможной всю последующую работу с программой. Для возобновления работы нужно исправить Blocker.
  • Critical. Критическая ошибка. Нарушает работу основного функционала. Баг проявляется постоянно и делает невозможным использование основных функций программы.
  • Major. Существенный баг. Затрудняет работу основного функционала или делает невозможным использование дополнительных функций.
  • Minor. Незначительный баг. На функционал системы влияет относительно мало, затрудняет использование  дополнительных функций. Для обхода этого бага могут быть очевидные пути.
  • Trivial. Тривиальный баг. Не влияет на функционал проекта, но ухудшает общее впечатление от работы с продуктом.

Приоритет (Priority) бага

Приоритет — атрибут, определяющий скорость устранения бага.

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

Виды приоритетов:

  • Top. Наивысший приоритет. Назначается экстренным ситуациям, которые очень отрицательно влияют на продукт или даже бизнес компании. Такие баги нужно устранять немедленно.
  • High. Высокий приоритет. Назначается багам, которые должны быть устранены в первую очередь.
  • Normal. Обычный приоритет, назначается по умолчанию. Эти баги устраняются во вторую очередь, в штатном порядке.
  • Low. Низкий приоритет. Назначается багам, не влияющим на функционал. Исправление таких багов происходит в последнюю очередь, если есть время и ресурсы.

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

Частота (Frequency) — это показатель количества пользователей, которые сталкиваются с ошибкой. Определяется при анализе алгоритмов.

Частота бывает:

  • High. Высокая: с багом сталкиваются больше 80% пользователей.
  • Medium. Средняя: баг обнаружат от 30% до 80% пользователей.
  • Low. Низкая: баг проявляется у 10-30% пользователей.
  • Very low. Незначительная: такой баг встретится меньше чем 10% пользователей.

Глобальный приоритет бага (Global Severity)

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

Таким образом, для определения глобального приоритета бага нужно:

  1. Определить серьезность бага.
  2. Отдельно от серьезности определить приоритет.
  3. Определить частоту (независимо от серьезности и приоритета).
  4. Рассчитать влияние частоты на изначально определенный приоритет.

Если частота у бага высокая, приоритет возрастает на одну позицию. Скажем, если изначально приоритет был Normal, но частота высокая, приоритет определяется как High.

Средняя частота бага меняет приоритет только с низкого на обычный.

Низкая или незначительная частота вообще не меняет приоритет бага.

Для определения глобального приоритета можно пользоваться следующей таблицей:

Приоритет/Серьезность Blocker Critical Minor Trivial
High Critical Critical Minor Trivial
Medium Critical Critical Minor Trivial
Low Trivial Trivial

Если глобальный приоритет — Critical, значит, баг нужно непременно исправить. Баги с приоритетом Minor тоже желательно исправить до релиза, хотя некоторое количество таких дефектов может остаться в проекте. Баги с приоритетом Trivial могут вообще не исправляться.

Высокий приоритет и низкая серьезность

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

Вот пара примеров:

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

Высокая серьезность и низкий приоритет

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

Примеры:

  1. Домашняя страница сайта ужасно выглядит в старых браузерах. Перекрывается текст, не загружается логотип. Это мешает пользоваться продуктом, поэтому серьезность бага высокая. Но так как очень мало пользователей открывают сайт при помощи устаревшего браузера, такой баг получает низкий приоритет.
  2. Допустим, у нас есть приложение для банкинга. Оно правильно рассчитывает ежедневный, ежемесячный и ежеквартальный отчет, но при расчете годового возникают проблемы. Этот баг имеет высокую степень серьезности. Но если сейчас формирование годовой отчетности не актуально, такой дефект имеет низкий приоритет: его можно исправить в следующем релизе.

Итоги

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

У каждого дефекта (несоответствие между реальным и ожидаемым поведением системы) есть атрибуты: «Серьезность» и «Приоритет» с указанием цифрового или буквенного значения. Однако, разница между этими двумя понятиями бывает не до конца ясна. Так, серьезность относится к технической стороне вопроса, а приоритет – к менеджерской. Чтобы внести ясность, предлагаю посмотреть на формальные определения, которые на данный момент приняты в стандартах тестирования и используются повсеместно.

На сегодняшний день, приоритет принято разделять на три уровня, а серьезность – на пять:

Приоритет (Priority) – это атрибут, указывающий на очередность выполнения задачи или устранения дефекта. Проставляется руководителем или менеджером проекта.

  • P1 – Высокий (High) – требуется исправить в первую очередь;
  • P2 – Средний (Medium) – требуется исправить во вторую очередь, когда нет дефектов с высоким приоритетом;
  • P3 – Низкий (Low) – исправляется в последнюю очередь, когда все дефекты с более высоким приоритетом уже исправлены.

Серьезность (Severity) – это атрибут, характеризующий влияние дефекта на работоспособность приложения. Проставляется тестировщиком или техническим специалистом, который может оценить степень влияния дефекта на работу системы.

  • S1 – Блокирующий (Blocker) – дефект полностью блокирует выполнение функционала, нет никакого способа его обойти. Если провести аналогию с закрытым помещением и дверью – то дверь закрыта, у вас нет никакой возможности её открыть и покинуть помещение. Окон нет, ключ к двери не подходит.
  • S2 – Критический (Critical) – дефект блокирует часть функциональности, но есть альтернативный путь для его обхода. По аналогии с помещением и дверью: вы можете покинуть помещение через окно, хотя дверь по-прежнему закрыта и ключ к ней не подходит.
  • S3 – Значительный (Major) – дефект, указывающий на некорректную работу части функциональности. Зачастую связан не с тем, что функция не работает, а с тем, что она работает неправильно. В любом случае, существует более одной точки входа для инициации нужной функциональности. Так, вы можете покинуть помещение без использования ключа (дыра в безопасности), через вентиляцию (другая точка входа) или дверь открывается не в ту сторону (как следствие, упирается в угол и открывается только частично – некорректная реализация). Наиболее часто встречаются дефекты, которые можно отнести именно к этому уровню серьезности.
  • S4 – Незначительный (Minor) – дефект, не относящийся к функциональности системы. Обычно серьезность Minor проставляется для тех дефектов, которые относятся к удобству использования или интерфейсу. По аналогии с помещением и дверью – на двери написано «От себя», хотя она открывается на себя, неудобное расположение замочной скважины и т.д.
  • S5 – Тривиальный (Trivial) – дефект, не затрагивающий функциональность системы, а также оказывающий минимальное влияние на общее качество системы. Часто неотличим от уровня «minor». Обычно это грамматические дефекты в сопроводительной документации к системе. Иногда дефект относится к «невидимым» проблемам с точки зрения пользователя или пользовательского интерфейса и рассматривает сторонние библиотеки или сервисы, не относящиеся к самой разработанной системе. По аналогии с помещением и дверью – замок и ключ не одного производителя, в помещении слышится шум сверху (не относится к самому помещению) и т.д.

Но зачем нужно это деление, разве нельзя обойтись только одним атрибутом, например, серьезностью? Предположим, в некой системе не работает модуль отчетности. Это –дефект с уровнем серьезности «Блокирующий». Однако этот модуль потребуется только в конце отчетного периода (перед Новым Годом). Если сейчас лето, то данная функциональность не будет использоваться еще несколько месяцев. Как следствие, руководитель проекта или лицо, принимающее решение, может проставить низкий приоритет исправления.

Обратная ситуация: на лицевой странице сайта (или интерфейса приложения) неправильно отображается какая-то важная надпись/логотип (например, название Компании). Данный дефект способен сильно ударить по доверию пользователей к продукции, которую им предлагают: потенциальные клиенты могут подумать, что качество услуг весьма сомнительно, раз даже в названии компании присутствует дефект – и отказаться от использования продукта. С точки зрения подхода к качеству, даже нефункциональные дефекты с уровнем серьезности «Тривиальный» способны отрицательно повлиять на репутацию Компании. Поэтому такому дефекту может быть проставлен высокий приоритет исправления.

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

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

Для начала рассмотрим каждый атрибут в отдельности.

Серьезность

Серьезность (Severity) — это атрибут, характеризующий влияние дефекта на работоспособность приложения. Проставляется специалистом по тестированию.

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

  • S1 – Блокирующая (Blocker). Блокирующая ошибка, приводящая приложение в нерабочее состояние, в результате которого дальнейшая работа с тестируемой системой или ее функциями становится невозможна.
  • S2 – Критическая (Critical). Критическая ошибка, неправильно работающая бизнес-логика, проблема, приводящая в нерабочее состояние некоторую часть системы, но есть возможность для работы с тестируемой функцией, используя другие входные точки.
  • S3 – Значительная (Major). Значительная ошибка, часть бизнес-логики работает некорректно. Ошибка не критична или есть возможность для работы с тестируемой функцией, используя другие входные точки.
  • S4 – Незначительная (Minor). Незначительная ошибка, не нарушающая бизнес-логику тестируемой части приложения, очевидная проблема пользовательского интерфейса.
  • S5 – Тривиальная (Trivial). Тривиальная ошибка, не касающаяся бизнес-логики приложения, плохо воспроизводимая проблема, малозаметная по средствам пользовательского интерфейса, проблема сторонних библиотек или сервисов, проблема, не оказывающая никакого влияния на общее качество продукта.

Из описания видно, что с помощью Серьезности мы указываем как найденная ошибка влияет на тестируемое приложение. Если из-за ошибки приложение полностью не работает, то Серьезность высокая. Если найденный дефект мало влияет на функционал и больше относится к визуальной части (например, опечатка в слове), то Серьезность низкая.

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

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

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

У нас остается только три варианта: Значительная, Критическая и Блокирующая серьезности.

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

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

2. Невозможно указать адрес назначения с помощью “Указать на карте”.
Снова начинаем рассуждать. Тривиальная и Незначительная не подходят, потому что ошибка в какой-то мере нарушают бизнес логику работы приложения. Блокирующую можно не брать, т.к. функционал в целом работает и его можно использовать через другую точку входа, а именно ввести адрес вручную. Остается только два варианта: Критическая и Значительная. Мы уже сказали, что проблема не приводит к полной неработоспособности части функционала. Тем не менее это значительная ошибка, т.к. функционал частично не работает, следовательно остается только вариант Значительная. Его мы и укажем.

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

Приоритет

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

Приоритет (Priority) – это атрибут, указывающий на очередность выполнения задачи или устранения дефекта. Проставляется руководителем или менеджером проекта.

  • P1 – Высокий (High) – требуется исправить в первую очередь.
  • P2 – Средний (Medium) – требуется исправить во вторую очередь, когда нет дефектов с высоким приоритетом.
  • P3 – Низкий (Low) – исправляется в последнюю очередь, когда все дефекты с более высоким приоритетом уже исправлены.

С помощью приоритета менеджер проекта говорит, когда стоит исправить найденную проблему.

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

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

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

Матрица определения приоритета
Матрица определения приоритета

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

Различия Серьезности и Приоритета
Различия Серьезности и Приоритета

________________________________
Если остались вопросы по определению параметров Серьезность и Приоритет, то задавайте их в комментариях к статье.
________________________________

Предыдущие статьи по оформлению баг-репорта:
Назначение отчета https://sedtest-school.ru/testovaya-dokumentacziya/otchety-o-defektah-naznachenie/
Шаблон отчета об ошибке https://sedtest-school.ru/testovaya-dokumentacziya/otchety-o-defektah-shablon-otcheta-ob-oshibke/

Серьезность и приоритет Дефекта (Severity & Priority)

Bug management включает в себя процесс документирования, категоризации, назначения, воспроизведения, исправления и выпуска исправленного кода. Предлагаемые изменения в программном обеспечении — баги, запросы на улучшения и даже целые релизы — обычно отслеживаются и управляются с помощью баг-трекинговых систем. Добавленные элементы могут называться дефектами, заявками, проблемами или, в соответствии с парадигмой гибкой разработки, эпиками и сторями (stories and epics). Категории могут быть объективными, субъективными или комбинированными, такими как номер версии, область программного обеспечения, серьезность и приоритет, а также тип проблемы, такой как фича-реквест или баг.

Критичность (severity): Важность воздействия конкретного дефекта на разработку или функционирование компонента или системы. (IEEE 610)

Приоритет (priority): Степень важности, присваиваемая объекту. Например, дефекту. (ISTQB)

Иными словами, серьезность представляет техническое влияние ошибки в контексте работоспособности самого ПО, а приоритет указывает на очередность выполнения задачи или устранения дефекта, т.е. точку зрения бизнеса. Приоритет выставляется любыми business stakeholders, включая project managers, business analysts, product owner, а серьезность сам тестировщик (или в сложных случаях тот, кто лучше разбирается). Разработчик берет таски исходя из приоритета.

Градация Серьезности (Severity):

  • Критическая (critical) — существование дефекта приводит к масштабным последствиям катастрофического характера, например: потеря данных, раскрытие конфиденциальной информации, нарушение ключевой функциональности приложения и т.д.;
  • Высокая (major) — существование дефекта приносит ощутимые неудобства многим пользователям в рамках их типичной деятельности, например: недоступность вставки из буфера обмена, неработоспособность общепринятых клавиатурных комбинаций, необходимость перезапуска приложения при выполнении типичных сценариев работы;
  • Средняя (medium) — существование дефекта слабо влияет на типичные сценарии работы пользователей, и/или существует обходной путь достижения цели, например: диалоговое окно не закрывается автоматически после нажатия кнопок «OK»/«Cancel», при распечатке нескольких документов подряд не сохраняется значение поля «Двусторонняя печать», перепутаны направления сортировок по некоему полю таблицы;
  • Низкая (minor) — существование дефекта редко обнаруживается незначительным процентом пользователей и (почти) не влияет на их работу, например: опечатка в глубоко вложенном пункте меню настроек, некое окно сразу при отображении расположено неудобно (нужно перетянуть его в удобное место), неточно отображается время до завершения операции копирования файлов.

Градация Срочности/приоритета (Priority):

  • Наивысшая (ASAP, as soon as possible) срочность указывает на необходимость устранить дефект настолько быстро, насколько это возможно. В зависимости от контекста «настолько быстро, насколько возможно» может варьироваться от «в ближайшем билде» до единиц минут;
  • Высокая (high) срочность означает, что дефект следует исправить вне очереди, т.к. его существование или уже объективно мешает работе, или начнёт создавать такие помехи в самом ближайшем будущем;
  • Обычная (normal) срочность означает, что дефект следует исправить в порядке общей очередности. Такое значение срочности получает большинство дефектов;
  • Низкая (low) срочность означает, что в обозримом будущем исправление данного дефекта не окажет существенного влияния на повышение качества продукта.

Сочетания Severity и Priority

  • High Priority and High Severity: Любой Critical/major сбой бизнес-модели, критическая проблема, при которой полностью не работает большая часть функциональности или основной компонент системы:
    • нажатие на определенную кнопку не запускает саму функцию, например, не работает кнопка отправки на странице входа, и клиенты не могут войти в приложение;
    • выполнение определенной функции постоянно приводит к 500 ошибке сервера и потере данных;
    • система дает сбой после того, как вы совершили платеж или когда вы не можете добавить товары в корзину;
    • функция банкомата, при которой после ввода правильного имени пользователя и пароля автомат не выдает деньги, но списывает их с вашего счета;
    • на веб-сайте банка появляется сообщение об ошибке, когда клиент нажимает кнопку перевода денег.
  • High Priority and Low Severity: Любые minor severity дефекты, которые влияют на взаимодействие с пользователями / репутацию:
    • ожидается, что функция покажет пользователю конкретную ошибку по коду ответа. В этом случае функционально код выдает ошибку, но сообщение должно быть более релевантным коду;
    • ошибка в логотипе или названии компании на главной странице, или опечатки, бросающиеся в глаза и способные повлиять на репутацию компании;
    • опечатки в контактных данных;
    • важные ошибки в соглашениях и юридических документах.
  • Low Priority and High Severity: Проблема, которая пока не повлияет на бизнес, но имеет большое влияние с точки зрения функциональности:
    • присутствует серьезный баг, но есть workaround и исправление уже может быть запланировано в следующем релизе или функция будет удалена;
    • функция генерации годового отчета, которая будет использована только через полгода;
    • редкость проявления дефекта/сложность воспроизведения для юзеров.
  • Low Priority and Low Severity: Любые орфографические ошибки / начертание / несовпадение шрифта в абзаце 3-й или 4-й страницы заявки, а не на главной или титульной странице / заголовке. Эти дефекты возникают, когда это не влияет на функциональность, но все же в небольшой степени не соответствует стандартам. Обычно сюда классифицируются косметические ошибки или, скажем, размеры ячейки в таблице пользовательского интерфейса:
    • в политике конфиденциальности веб-сайта есть орфографическая ошибка;
    • страница часто задаваемых вопросов загружается очень долго;
    • семейство шрифтов, размер шрифта, цвет или орфографическая ошибка в приложении или отчетах.

Источники:

  • Святослав Куликов “Тестирование программного обеспечения. Базовый курс”. Раздел 2.5
  • Defect Severity And Priority In Testing With Examples And Difference
  • Difference Between Defect Severity And Priority In Software Testing

Доп. материал:

  • Серьезность и приоритет багов — в чем разница?
  • Про Severity — серьезно и несерьезно
  • Про баги, алерты и басню «Волки, волки»

The severity of the Bug

The severity of the bug or the defect A problem or a Defect’s severity in testing refers to how much of an impact it has on the software program under test. A higher severity rating indicates that the bug/defect has a greater impact on system functionality. The severity level of a bug or defect is generally determined by a Quality Assurance engineer.

What is the meaning of priority?

The order in which a fault should be repaired is referred to as a priority. The higher the priority, the faster the problem should be fixed.

Flaws that render the software system unworkable are prioritized above defects that affect only a tiny portion of the software’s functioning.

Severity Vs Priority — The Main Difference

  • Priority refers to the order in which a developer should address a fault, whereas severity refers to the degree of influence a defect has on the product’s operation.

  • Priority is divided into three categories: low, medium, and high, while severity is divided into five categories: critical, moderate, and severe. There are four types of cosmetic procedures: major, moderate, minor, and cosmetic.

  • Priority has to do with scheduling, whereas severity has to do with functioning or standards.

  • Priority refers to how quickly the fault should be rectified, whereas Severity refers to how important the flaw is to the product’s functionality.

  • The manager/client decides on the priority of problems, whereas the QA engineer determines the severity levels of the faults.

  • Priority is determined by the worth of the business, whereas severity is determined by the functioning.

  • The priority value is subjective and liable to vary over time as the project circumstance changes, whereas the severity value is objective and less likely to alter.

  • Defects with a High Priority and Low Severity status must be corrected immediately but do not harm the application, whereas defects with a High Severity and Low Priority status must be fixed but not immediately.

  • Priority status is determined by client needs, whereas severity is determined by the product’s technical aspects.

Severity Levels

Types of Severity of Bug/Defect may be divided into four categories in software testing −

  • This flaw implies that the process has been completely shut off, and no further action can be taken.

  • Major − This is a significant flaw that causes the system to fail. Certain elements of the system, however, are still operational.

  • Medium − It results in some unfavorable behavior, but the system remains functioning.

  • Low − It won’t create any serious system failures.

Types of Priorities

Priority of bug/defect types may be divided into three categories −

  • Low − The flaw is an annoyance, but it can be repaired once the more important flaw has been addressed.

  • Medium − A flaw should be corrected throughout the usual course of development operations. It will have to wait till a new version is released.

  • High − The problem must be corrected as soon as feasible since it has a significant impact on the system and cannot be utilized until it is fixed.

How to Determine the Seriousness of a Defect?

  • Determine the frequency of occurrence − In some circumstances, the severity of a minor defect might be increased if it occurs frequently in the code. As a result, even if it is a tiny flaw, it is more serious from the user’s perspective.

  • Isolate the flaw − Isolating the problem can assist in determining the impact’s severity.

Difference between Priority and Severity

Priority Severity
The sequence in which the developer should resolve defects is specified by Defect Priority. The defect severity of a fault is defined as the influence it has on the product’s operation.
Priority is divided into three categories.

  • Low

  • Medium

  • High

There are five levels of severity.

  • Critical

  • Major

  • Moderate

  • Minor

  • Cosmetic

Priority has to do with scheduling. The term «severity» refers to the degree to which something is functional or adheres to a set of standards.
The priority of a bug determines how quickly it should be repaired. The severity of a problem on a product’s functionality is indicated by its severity.
In consultation with the manager/client, the priority of faults is determined. The defect’s severity level is determined by the QA engineer.
The business value determines priority. The severity of a situation is determined by its functioning.
Its worth is subjective and might fluctuate over time based on the project’s circumstances. Its worth is objective and unlikely to fluctuate.
When a problem has a high priority and low severity, it means it has to be corrected right away but isn’t affecting the application. When a fault has a high severity and a low priority, it means it has to be corrected, but not right now.
The priority status is determined by the needs of the consumer. The product’s technical aspect determines the severity level.
During UAT, the development team prioritizes faults and fixes them. During SIT, the development team will prioritize and resolve bugs based on their severity.

Defect Severity and Priority Examples

Consider the following scenarios: low severity and high priority, and vice versa.

  • A logo problem for any shipping website can be of moderate severity since it will not hinder the website’s performance, but it can also be of high importance because you don’t want any subsequent shipments to proceed with the incorrect logo.

  • A flaw in reservation functionality that is of high severity but of low priority: Similarly, a defect in reservation functionality that is of high severity but of a low priority since it is expected to be released in the following cycle.

Triage of Defects

Defect triage is a technique that attempts to rebalance the process when the test team is faced with a challenge of limited resources. When there are a significant number of defects and a limited number of testers available to check them, defect triage assists in attempting to resolve as many problems as possible based on defect attributes such as severity and priority.

Defect Triage: How to Determine

Priority is typically used as the primary criterion for evaluating a problem in most systems. A good triage method, on the other hand, examines the severity as well.

The steps in the triage procedure are as follows −

  • The team reviews all flaws, even those that were rejected.

  • The substance of the problem, as well as its priority and severity settings, are used to make an initial assessment.

  • Determining the defect’s priority based on the inputs

  • The product manager assigns the defect to the right release.

  • The problem is sent to the appropriate owner/team for further action.

Before choosing a severity level, every tester should examine the following guidelines

The tester evaluates the severity parameter, whereas the product manager or the triage team evaluates the priority parameter. To minimize confusion with the development team, it is critical for a tester to pick the correct severity when prioritizing a fault.

  • Understand the importance and severity of the concepts of priority and severity.

  • Always designate a severity rating to a problem depending on its category, since this will influence its priority.

  • Recognize how a certain situation or Test Case will affect the end-user.

  • It’s important to think about how long it’ll take to correct the fault and how long it’ll take to verify it, based on its complexity.

An example of a high-severity yet the low-priority situation

Some older browsers render a webpage with several faults. The logo will not load, the text will jumble, and the graphics will be overly pixelated. The severity of the problem is significant since it affects both product functionality and user experience. However, because the issue primarily affects outdated browsers, it won’t affect a big number of people. As a result, bug priority is low.

High-severity and high-priority example

On Chrome, a website is evaluated and found to be fully functional. However, while using Firefox, the price page has significant issues. The text that details the rates and matching features contained in each plan, as well as the buy buttons for purchasing plans, have vanished. Anyone using Firefox in this scenario is unable to purchase the merchandise or even learn the details of the goods being sold.

The severity of the defect is high since vital functionality is plainly harmed. Bug priority is high because the malfunctioning functionality obstructs a critical point of the customer experience (actually purchasing the goods).

An example of a low-severity yet the high-priority situation

When examining the operation of a website on Chrome, it is discovered that several buttons are slightly out of place. They can still be readily clicked and accomplish what they were designed to do. As a result, functionality is unaffected, and the severity of the defect is minor. Bug priority is high, though, because out-of-place buttons don’t provide for a pleasant visual representation, and poorly designed websites actively turn off consumers. The problem must be resolved as soon as feasible.

An example of a low-severity, low-priority situation

During the testing of the website, mistakes were discovered in parts of the content, and the font and color did not match the website’s primary design. This is, without a doubt, a bug, but it is by no means a functional issue. As a result, the severity of the defect is minimal. Similarly, it does not require rapid attention, therefore bug priority is low.

The Function of Real-Time Devices

Without understanding the actual nature of the defect, it is currently impossible to assign bug priority and severity. It’s also crucial to understand how often a bug occurs and how it impacts the product.

Running software across actual devices and browsers is the best approach to find all issues. When it comes to website testing, make sure it’s covered by both human and automated testing. Selenium automation testing should be used in conjunction with manual testing to ensure that no defects are missed throughout the Quality Assurance process.

Conclusion

In software engineering, assigning the improper severity to a defect can slow down the STLC process and have a significant impact on the team’s overall performance. As a result, the individual in charge of defect assignment must be exact and accurate.

The severity of the Bug

The severity of the bug or the defect A problem or a Defect’s severity in testing refers to how much of an impact it has on the software program under test. A higher severity rating indicates that the bug/defect has a greater impact on system functionality. The severity level of a bug or defect is generally determined by a Quality Assurance engineer.

What is the meaning of priority?

The order in which a fault should be repaired is referred to as a priority. The higher the priority, the faster the problem should be fixed.

Flaws that render the software system unworkable are prioritized above defects that affect only a tiny portion of the software’s functioning.

Severity Vs Priority — The Main Difference

  • Priority refers to the order in which a developer should address a fault, whereas severity refers to the degree of influence a defect has on the product’s operation.

  • Priority is divided into three categories: low, medium, and high, while severity is divided into five categories: critical, moderate, and severe. There are four types of cosmetic procedures: major, moderate, minor, and cosmetic.

  • Priority has to do with scheduling, whereas severity has to do with functioning or standards.

  • Priority refers to how quickly the fault should be rectified, whereas Severity refers to how important the flaw is to the product’s functionality.

  • The manager/client decides on the priority of problems, whereas the QA engineer determines the severity levels of the faults.

  • Priority is determined by the worth of the business, whereas severity is determined by the functioning.

  • The priority value is subjective and liable to vary over time as the project circumstance changes, whereas the severity value is objective and less likely to alter.

  • Defects with a High Priority and Low Severity status must be corrected immediately but do not harm the application, whereas defects with a High Severity and Low Priority status must be fixed but not immediately.

  • Priority status is determined by client needs, whereas severity is determined by the product’s technical aspects.

Severity Levels

Types of Severity of Bug/Defect may be divided into four categories in software testing −

  • This flaw implies that the process has been completely shut off, and no further action can be taken.

  • Major − This is a significant flaw that causes the system to fail. Certain elements of the system, however, are still operational.

  • Medium − It results in some unfavorable behavior, but the system remains functioning.

  • Low − It won’t create any serious system failures.

Types of Priorities

Priority of bug/defect types may be divided into three categories −

  • Low − The flaw is an annoyance, but it can be repaired once the more important flaw has been addressed.

  • Medium − A flaw should be corrected throughout the usual course of development operations. It will have to wait till a new version is released.

  • High − The problem must be corrected as soon as feasible since it has a significant impact on the system and cannot be utilized until it is fixed.

How to Determine the Seriousness of a Defect?

  • Determine the frequency of occurrence − In some circumstances, the severity of a minor defect might be increased if it occurs frequently in the code. As a result, even if it is a tiny flaw, it is more serious from the user’s perspective.

  • Isolate the flaw − Isolating the problem can assist in determining the impact’s severity.

Difference between Priority and Severity

Priority Severity
The sequence in which the developer should resolve defects is specified by Defect Priority. The defect severity of a fault is defined as the influence it has on the product’s operation.
Priority is divided into three categories.

  • Low

  • Medium

  • High

There are five levels of severity.

  • Critical

  • Major

  • Moderate

  • Minor

  • Cosmetic

Priority has to do with scheduling. The term «severity» refers to the degree to which something is functional or adheres to a set of standards.
The priority of a bug determines how quickly it should be repaired. The severity of a problem on a product’s functionality is indicated by its severity.
In consultation with the manager/client, the priority of faults is determined. The defect’s severity level is determined by the QA engineer.
The business value determines priority. The severity of a situation is determined by its functioning.
Its worth is subjective and might fluctuate over time based on the project’s circumstances. Its worth is objective and unlikely to fluctuate.
When a problem has a high priority and low severity, it means it has to be corrected right away but isn’t affecting the application. When a fault has a high severity and a low priority, it means it has to be corrected, but not right now.
The priority status is determined by the needs of the consumer. The product’s technical aspect determines the severity level.
During UAT, the development team prioritizes faults and fixes them. During SIT, the development team will prioritize and resolve bugs based on their severity.

Defect Severity and Priority Examples

Consider the following scenarios: low severity and high priority, and vice versa.

  • A logo problem for any shipping website can be of moderate severity since it will not hinder the website’s performance, but it can also be of high importance because you don’t want any subsequent shipments to proceed with the incorrect logo.

  • A flaw in reservation functionality that is of high severity but of low priority: Similarly, a defect in reservation functionality that is of high severity but of a low priority since it is expected to be released in the following cycle.

Triage of Defects

Defect triage is a technique that attempts to rebalance the process when the test team is faced with a challenge of limited resources. When there are a significant number of defects and a limited number of testers available to check them, defect triage assists in attempting to resolve as many problems as possible based on defect attributes such as severity and priority.

Defect Triage: How to Determine

Priority is typically used as the primary criterion for evaluating a problem in most systems. A good triage method, on the other hand, examines the severity as well.

The steps in the triage procedure are as follows −

  • The team reviews all flaws, even those that were rejected.

  • The substance of the problem, as well as its priority and severity settings, are used to make an initial assessment.

  • Determining the defect’s priority based on the inputs

  • The product manager assigns the defect to the right release.

  • The problem is sent to the appropriate owner/team for further action.

Before choosing a severity level, every tester should examine the following guidelines

The tester evaluates the severity parameter, whereas the product manager or the triage team evaluates the priority parameter. To minimize confusion with the development team, it is critical for a tester to pick the correct severity when prioritizing a fault.

  • Understand the importance and severity of the concepts of priority and severity.

  • Always designate a severity rating to a problem depending on its category, since this will influence its priority.

  • Recognize how a certain situation or Test Case will affect the end-user.

  • It’s important to think about how long it’ll take to correct the fault and how long it’ll take to verify it, based on its complexity.

An example of a high-severity yet the low-priority situation

Some older browsers render a webpage with several faults. The logo will not load, the text will jumble, and the graphics will be overly pixelated. The severity of the problem is significant since it affects both product functionality and user experience. However, because the issue primarily affects outdated browsers, it won’t affect a big number of people. As a result, bug priority is low.

High-severity and high-priority example

On Chrome, a website is evaluated and found to be fully functional. However, while using Firefox, the price page has significant issues. The text that details the rates and matching features contained in each plan, as well as the buy buttons for purchasing plans, have vanished. Anyone using Firefox in this scenario is unable to purchase the merchandise or even learn the details of the goods being sold.

The severity of the defect is high since vital functionality is plainly harmed. Bug priority is high because the malfunctioning functionality obstructs a critical point of the customer experience (actually purchasing the goods).

An example of a low-severity yet the high-priority situation

When examining the operation of a website on Chrome, it is discovered that several buttons are slightly out of place. They can still be readily clicked and accomplish what they were designed to do. As a result, functionality is unaffected, and the severity of the defect is minor. Bug priority is high, though, because out-of-place buttons don’t provide for a pleasant visual representation, and poorly designed websites actively turn off consumers. The problem must be resolved as soon as feasible.

An example of a low-severity, low-priority situation

During the testing of the website, mistakes were discovered in parts of the content, and the font and color did not match the website’s primary design. This is, without a doubt, a bug, but it is by no means a functional issue. As a result, the severity of the defect is minimal. Similarly, it does not require rapid attention, therefore bug priority is low.

The Function of Real-Time Devices

Without understanding the actual nature of the defect, it is currently impossible to assign bug priority and severity. It’s also crucial to understand how often a bug occurs and how it impacts the product.

Running software across actual devices and browsers is the best approach to find all issues. When it comes to website testing, make sure it’s covered by both human and automated testing. Selenium automation testing should be used in conjunction with manual testing to ensure that no defects are missed throughout the Quality Assurance process.

Conclusion

In software engineering, assigning the improper severity to a defect can slow down the STLC process and have a significant impact on the team’s overall performance. As a result, the individual in charge of defect assignment must be exact and accurate.

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

Если кратко, то хороший баг-репорт позволяет:

  • воспроизвести проблему;
  • понять, в чем проблема, и какова ее важность.

Что такое баг, типы багов

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

Критичность и приоритет бага. Атрибуты баг-репорта

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

Критичность бага – это  атрибут, который характеризует влияние бага на общую функциональность разрабатываемого ПО.

По критичности баги делят на:

S1. Блокирующий (Blocker). Всё тестируемое ПО не может работать без устранения бага. Например, приёмник начинает перезагружаться сразу после включения, мы не сможем больше ничего протестировать из-за этого бага.

S2. Критический (Critical). Большая часть ПО не может корректно работать. Например, приёмник не может открывать закодированные каналы. До устранения этого дефекта можно протестировать UI, а также функционал, не связанный с расшифровыванием каналов.

S3. Значительный (Major). Блокирует работу одной из основных логических цепочек ПО. Например, неправильное сообщение об ошибке при отсутствии подписки на пакет оператора.

S4. Незначительный (Minor). Не нарушает основные логические цепочки приложения, с ним можно продолжать работать почти без потери качества. Здесь можно привести неточный перевод с русского на английский в меню приёмника.

S5. Тривиальный (Trivial). Эта степень присваивается, когда баг вообще не влияет на общее качество работы ПО. Например, незначительное пересечение элементов в меню.

Приоритет бага — это то, в каком порядке нужно решать проблемы. Существует три степени приоритетности:

P1. Высокий приоритет (High). Нужно исправить немедленно, потому что баг является крайне важным для всего релиза. Например, старое сообщение об отсутствии подписки на пакет, хотя обновление текстов являлось целью этого релиза.

P2. Средний приоритет (Medium). Точно нужно будет исправить, баг достаточно важен, но не требует немедленного решения. Например, некорректный перевод в меню приёмника.

P3. Низкий приоритет (Low). Нужно будет исправить, но баг не очень важный и не требует немедленного решения. Например, это могут быть баги в функционале, который уже не используется оператором, но ещё не был удалён из кода.

Что такое баг репорт, его типичная структура

Глоссарий ISTQB говорит, что баг репорт — это документ, содержащий отчет о любом недостатке в компоненте или системе, который может привести компонент или систему к невозможности выполнить требуемую функцию.

Но можно сказать и проще: баг репорт (bug report) – это технический документ, который содержит в себе полное описание бага, включающее информацию как о самом баге (краткое описание, критичность, приоритет и т.д.), так и об условиях возникновения данного бага.

Состав баг репорта приведен в таблице:

Заголовок (Summary)

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

Проект (Project)

Название тестируемого проекта

Компонент приложения (Component)

Название части или функции тестируемого продукта

Номер версии (Version)

Версия, на которой была найдена ошибка

Критичность

(Severity)

Наиболее распространена пятиуровневая система критичности:

S1 Блокирующий (Blocker)

S2 Критический (Critical)

S3 Значительный (Major)

S4 Незначительный (Minor)

S5 Тривиальный (Trivial)

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

Приоритет дефекта:

P1 Высокий (High)

P2 Средний (Medium)

P3 Низкий (Low)

Статус (Status)

Статус бага. Зависит от используемой процедуры и жизненного цикла бага. Например:

  • Новый
  • Открыт
  • Закрыт

Автор (Author)

Создатель баг репорта

Назначен на (Assigned To)

Имя сотрудника, назначенного на решение проблемы

Описание (Description)

Информация об окружении, на котором был найден баг: операционная система, сервис пак, имя и версия браузера, версия ПО чипа, версия библиотеки  и т.д.

Шаги, по которым можно легко воспроизвести ситуацию, приведшую к ошибке.

Полученный результат

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

Прикрепленный файл (Attachment)

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

Как правильно оформить баг-репорт

  1. Для начала нужно убедиться, что найденный баг ещё не был оформлен. Следует провести поиск его в соответствующем проекте по всем подходящим ключевым словам иили полям. Если баг уже есть, следует обновить его описание.
  2. Если баг не найден – нажимаем на кнопку создания бага. Не стоит забывать важное правило: один дефект — один баг в трекере.
  3. Далее нужно постараться кратко описать, что не работает — это и будет заголовок баг-репорта.
  4. После этого перейти к подробному описанию бага: указать шаги к воспроизведению.
  5. Указать ожидаемый результат. Можно добавить ссылку на спецификацию.
  6. Указать полученный результат.
  7. Указать версию ПО, также указать версию окружения.
  8. Если необходимо, приложить соответствующие артефакты: логи, скриншоты, дампы и т.д.

Ошибки при создании баг-репорта

Здесь перечислим проблемы, которые чаще всего встречаются при написании баг репорта.

Заголовок не понятен. Есть риск, что ни разработчик, ни коллеги не обратят внимания на довольно критичную проблему.

Отсутствуют шаги для воспроизведения. Есть риск, что разработчик, не поняв как повторить проблему, вернёт баг со статусом «Не воспроизводится».

Неправильно назначен баг. Возможно, баг по ошибке был назначен не на того разработчика или вообще остался в статусе “не назначен”. Есть риск, что багу долгое время не будет уделено внимание.

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

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

Жизненный цикл бага

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

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

  • Новый (New). Тестировщик нашел баг, дефект успешно занесен в «Bug-tracking» систему.
  • Открыт (Opened). После того, как тестировщик отправил ошибку, она либо автоматически, либо вручную назначается на человека, который должен её проанализировать. В зависимости от решения, баг может быть:
  • Отложен (Postponed). Исправление бага отложено, т.к. он не является критичным на данном этапе разработки или по другим причинам.
  • Отклонен (Rejected). По разным причинам дефект может и не считаться таковым, что вынуждает отклонить его. Не баг, а фича.
  • Дубликат (Duplicate). Если описанная ошибка уже ранее была внесена в «Bug-tracking» систему.
  • Назначен (Assigned). Если ошибка актуальна и должна быть исправлена в следующей сборке (build), происходит назначение на разработчика, который должен исправить ошибку.
  • Исправлено (Fixed). Ответственный за исправление бага разработчик заявляет, что устранил дефект.
  • Проверен (Verified). Тестировщик проверяет, действительно ли ответственный разработчик исправил дефект. Если бага больше нет, он получает данный статус.
  • Повторно открыт (Reopened). Если опасения тестировщика оправданы, и баг в новом билде не исправлен – он все так же потребует исправления, поэтому вновь открывается.
  • Закрытый (Closed). В результате определенного количества перепроверок баг все-таки окончательно устранен и больше не потребует внимания команды – он объявляется закрытым.

Более наглядно жизненный цикл бага можно посмотреть на диаграмме:

При использовании системы тест менеджмента TestIT существует возможность интеграции с системами баг-трекинга. В нашей компании это JIRA. Достаточно нажать “save and create bug” и мы получаем почти готовый баг репорт в JIRA.

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

В разделе Description уже есть разделы steps, actual result and expected result, что особенно актуально для начинающих тестировщиков и позволит им не пропустить важные разделы в баг репорте.

Вместо заключения

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

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

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

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