Серьезность и приоритет в тестировании программного обеспечения: различия, матрица и реальные примеры

  1. Главная
  2. Блог
  3. Тестирование программного обеспечения

Тестирование программного обеспечения

Серьезность и приоритет в тестировании программного обеспечения: Различия, матрица и реальные примеры

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

8 мин чтения
Серьезность vs приоритет в тестировании ПО: различия, матрица и реальные примеры

Главное

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

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

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

Короткий ответ

Серьезность ответы: насколько сильно эта ошибка влияет на продукт? Сбой или потеря данных являются серьезными, а косметический сбой — нет.

Приоритетные ответы: как скоро нам следует это исправить? Это зависит от затронутых клиентов, сроков, доходов, юридической ответственности и репутации бренда.

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

Серьезность и приоритет рядом

Аспект Серьезность Приоритет
Вопрос Насколько сильное влияние? Как скоро это должно быть исправлено?
Фокус Техническое воздействие на систему Деловые потребности и планирование
Обычно устанавливается Тестировщик или QA-инженер Владелец продукта или менеджер проекта
Основа Наблюдаемое поведение Клиенты, выручка, сроки, риск
Изменения со временем? Редко Часто
Решает Насколько серьезен дефект Порядок очереди исправлений

Уровни серьезности

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

Уровень Значение Пример
Критический (S1) Сбой системы, потеря данных или нарушение безопасности, обходного пути нет. При сохранении счета удаляются записи о клиентах.
Майор (S2) Ключевая функция не работает или существует только сложное обходное решение. Поиск не возвращает результатов ни по одному запросу
Умеренный (S3) Функция частично не работает, и существует разумное обходное решение. Фильтр по дате не работает, но сортировка по дате работает.
Малый (S4) Небольшое неудобство, функциональность сохранена. Всплывающая подсказка появляется в неправильном положении
Тривиальный (S5) Только косметика Немного смещенный значок

Уровни приоритета

Уровень Значение Типичное действие
P1, срочно Должно быть исправлено сейчас Откажитесь от других работ и рассмотрите возможность исправления
P2, высокий Должно быть исправлено до следующего выпуска Расписание текущего спринта
P3, средний Должно быть исправлено в ближайшее время Место в предстоящем спринте
P4, низкий Исправьте, когда есть емкость Сохраняйте отставание и время от времени просматривайте его.

Запишите, что означает каждый уровень для вашей команды, в идеале указав целевое время ответа для каждого. «P1 означает, что кто-то начнет в течение часа» гораздо полезнее, чем «P1 означает очень важно».

Четыре комбинации с примерами

Самый ясный способ понять это — рассмотреть каждую комбинацию:

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

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

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

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

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

Низкая серьезность, высокий приоритет

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

Низкая серьезность, низкий приоритет

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

Одна ошибка, два разных приоритета

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

Контекст Серьезность Приоритет
Небольшой внутренний инструмент Незначительный П4
Общественный бренд только что провел ребрендинг, анонс будет объявлен на этой неделе. Незначительный П1 или П2

Серьезность не изменилась, поскольку влияние на систему такое же. Но деловая ситуация сделала свое дело. Время тоже может изменить ситуацию. Ошибка, которая сегодня имеет статус P3, может стать P1 за неделю до запуска крупного клиента.

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

Кто определяет серьезность и приоритет?

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

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

Как оценить ошибку

Если вы не уверены, проработайте эти вопросы.

По серьезности:

  1. Потеряет или повредит ли он данные или раскроет личную информацию?
  2. Мешает ли это работе основной функции?
  3. Есть ли обходной путь и может ли его найти обычный пользователь?
  4. Какая часть функции затронута?

В приоритете:

  1. Сколько пользователей пострадало и какие?
  2. Стоит ли это денег или создает юридический риск или риск несоблюдения требований?
  3. Будет ли релиз, демо-версия или распродажа?
  4. Насколько это заметно и может ли это повредить вашей репутации?
  5. Блокирует ли это другую работу, например тестирование?

Запуск сортировки ошибок

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

  1. Подготовьтесь. Тестировщик следит за тем, чтобы каждая новая ошибка имела четкие этапы, доказательства и предполагаемую серьезность.
  2. Подтвердите. Убедитесь, что его можно воспроизвести и он не является дубликатом.
  3. Принятие решения. Согласуйте степень серьезности, установите приоритет и назначьте владельца.
  4. Замкните цикл. Отклоните, отложите или запланируйте каждую ошибку и запишите причину.

Делайте это коротко и часто. В последние дни перед освобождением обычно проводится ежедневная 15-минутная сортировка. Серьезность и приоритет также влияют на ваше решение о выпуске, поэтому заранее согласуйте правила, такие как «не допускать открытых ошибок S1 или S2 при выпуске», как часть ваших критериев выхода.

Серьезность и приоритет в отчете об ошибке

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

Title:    Checkout returns error 500 when a coupon is applied
Severity: S1 - blocks purchase, no workaround
Priority: P1 proposed - sale starts Friday
Build:    2.14.0, production
Reach:    All customers using a coupon (around 30% of orders)
Steps:    1. Add an item  2. Apply SAVE10  3. Click Pay
Result:   Error 500 and no order is created
Expected: Order is created with the discount applied

Эти цифры являются примерами. В реальном отчете используйте измеренные значения из журналов и объясните свои рассуждения. Узнайте больше в нашем руководстве о том, как написать отчет об ошибке. Это также поможет узнать, что означают коды ошибок, поэтому держите под рукой нашу шпаргалку по кодам состояния HTTP.

Распространенные ошибки

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

Итоги

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

Часто задаваемые вопросы

В чем разница между серьезностью и приоритетом?

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

Может ли ошибка иметь низкую серьезность и высокий приоритет?

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

Может ли ошибка иметь высокую серьезность и низкий приоритет?

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

Кто устанавливает серьезность и приоритет?

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

Что следует исправить в первую очередь: высокую серьезность или высокий приоритет?

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

Продолжайте учиться

Работайте с Stack Quora

Нужна помощь с тестированием, WordPress или SEO?

Мы помогаем командам выпускать лучшее программное обеспечение и развивать свои сайты. Расскажите нам, над чем вы работаете, и мы предложим четкий следующий шаг.

Продолжайте читать

Больше руководств по тестирование, искусственный интеллект и современные разработки

Понравилась эта статья? Выберите тему и сразу приступайте к нашим новейшим руководствам.

Искусственный интеллект

Объяснение галлюцинаций искусственного интеллекта: почему языковые модели все выдумывают и как их уменьшить

Галлюцинации ИИ объяснили: что это такое, почему языковые модели их создают, распространенные типы, как уменьшить их с помощью заземления и подсказо…

Читать статью →
DevOps

Объяснение переменных среды: файлы .env, секреты и правильно выполненная конфигурация

Переменные среды объясняются на примерах Python, которые мы запускали: их чтение и установка, почему каждое значение является строкой, файлы .env, н…

Читать статью →
Разработка ПО

Объяснение ограничения скорости API: алгоритмы, заголовки и обработка ошибок 429

Ограничение скорости API объясняется с помощью проведенного нами моделирования: сегмент токенов, фиксированное окно, скользящее окно, 429 ответов, з…

Читать статью →
Автоматизация тестирования

Издевательство в Python: unittest.mock, патч и ошибки, из-за которых тесты лгут

Издевательство на Python с помощью unittest.mock, протестировано: Mock и return_value, Side_effect, исправление использования имени, спецификация и …

Читать статью →
Тестирование ПО

Объяснение покрытия кода: покрытие линий или ветвей и что на самом деле означает 100%

Покрытие кода объяснено с помощью реального запуска покрытия.py: покрытие строк, ветвей и условий, чтение отчета, почему 100%-ное покрытие все еще м…

Читать статью →
Базы данных и SQL

DELETE, TRUNCATE и DROP в SQL: различия, откат и когда использовать каждый из них

Объяснение DELETE, TRUNCATE и DROP на примере протестированного SQL: что каждый из них удаляет, откат, триггеры, сброс идентификаторов, скорость и ч…

Читать статью →
Базы данных и SQL

Объяснение представлений SQL: создавайте, используйте и избегайте ловушек, с примерами

Представления SQL, объясненные с помощью запросов, которые мы выполняли: создание представления, результаты в реальном времени, скрытие столбцов, пр…

Читать статью →
Разработка ПО

Интерфейс TypeScript и тип: реальные различия, протестированные с помощью компилятора

Интерфейс TypeScript против типа, проверенный реальным компилятором: что могут делать оба, что может делать только один, слияние объявлений, расшире…

Читать статью →
Разработка ПО

Объяснение Python *args и **kwargs: гибкие функции с понятными примерами

Python *args и **kwargs, объясненные с помощью кода, который мы запускали: упаковка и распаковка, порядок параметров, аргументы только по ключевым с…

Читать статью →
Разработка ПО

Лямбда-функции Python: синтаксис, реальное использование и когда их не следует использовать

Лямбда-функции Python, объясненные с помощью кода, который мы запускали: синтаксис, сортировка с помощью ключа, карты и фильтра, замыкания, ловушка …

Читать статью →
Искусственный интеллект

Что такое ИИ-агенты? Как они работают: можно запустить простой цикл агента

Что такое агенты ИИ? Простое руководство по циклу агента, инструментам, памяти и ограничениям, с небольшим циклом Python, который мы запустили, реал…

Читать статью →
DevOps

Мониторинг и наблюдаемость: реальная разница с журналами, метриками и трассировками

Объяснение мониторинга и наблюдаемости: известные и неизвестные сбои, журналы, метрики и трассировки, пошаговое руководство по инцидентам при оформл…

Читать статью →
DevOps

Docker Volumes против Bind Mounts: правильное сохранение данных контейнера

Объяснение томов Docker и монтирования привязки: почему исчезают данные контейнера, именованные тома, монтирование привязки, tmpfs, примеры создания…

Читать статью →
Автоматизация тестирования

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

TDD и BDD объясняются с помощью одной функции скидки, созданной в обоих направлениях: красно-зеленый рефакторинг с кодом, который мы запускали, сцен…

Читать статью →
Тестирование ПО

Пользовательское приемочное тестирование (UAT): процесс, контрольный список и реальные примеры

Приемочное тестирование пользователей объяснило: кто его проводит, чем оно отличается от контроля качества, семиэтапный процесс, шаблон тестового сц…

Читать статью →
Базы данных и SQL

Объяснение значений NULL в SQL: IS NULL, COALESCE, NULLIF и ловушки, которых следует избегать

Значения SQL NULL объяснены с помощью запросов, которые мы выполнили: трехзначная логика, IS NULL, COALESCE, NULLIF, как агрегаты, соединения и сорт…

Читать статью →
Базы данных и SQL

Оператор SQL CASE WHEN: синтаксис, реальные примеры и распространенные ошибки

SQL CASE WHEN объяснен с помощью запросов, которые мы выполняли: простые формы и формы для поиска, порядок условий, повороты с помощью SUM, трюки CO…

Читать статью →
Разработка ПО

Что такое JWT? Веб-токены JSON, объясненные на рабочем примере

Что такое JWT? Объяснение JSON Web Tokens: три части: токен, созданный и измененный в коде, который мы запускали, JWT и сеансы, хранилище, токены об…

Читать статью →
Разработка ПО

Объяснение цикла событий JavaScript: стек вызовов, микрозадачи и таймеры с примерами

Цикл событий JavaScript объясняется с помощью кода, который мы запускали: стек вызовов, очереди задач и микрозадач, почему setTimeout 0 не является …

Читать статью →
Разработка ПО

Генераторы Python и объяснение доходности: экономьте память с помощью реальных примеров

Генераторы Python и доходность, объясненные с помощью кода, который мы запускали: как они приостанавливаются и возобновляются, измеряют экономию пам…

Читать статью →
Искусственный интеллект

Что такое вложения? Простое объяснение векторов и косинусного сходства

Что такое вложения? Простое руководство по векторам, косинусному подобию и семантическому поиску с небольшим примером, который мы использовали, общи…

Читать статью →
DevOps

Сине-зеленое и канареечное развертывание: различия, компромиссы и как выбрать

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

Читать статью →
Автоматизация тестирования

Ненадежные тесты: что их вызывает и как их исправить навсегда

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

Читать статью →
Тестирование ПО

Нагрузочное тестирование и стресс-тестирование: различия, метрики и примеры k6

Объяснение нагрузочного и стресс-тестирования: что доказывает каждое из них, тесты на всплески и выдержки, важные метрики, почему средние значения в…

Читать статью →
Тестирование ПО

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

Объяснение тестового случая и тестового сценария: четкие определения, параллельная таблица, одна функция сброса пароля, взятая из сценариев в случаи…

Читать статью →
Базы данных и SQL

Оптимизация SQL-запросов: чтение планов выполнения и исправление медленных запросов с указанием времени

Оптимизация SQL-запросов проверена на миллионе строк: читайте планы выполнения, добавляйте правильные индексы, исправляйте неразмещаемые фильтры, ис…

Читать статью →
Базы данных и SQL

SQL UNION против UNION ALL: различия, примеры и проверка производительности

SQL UNION и UNION ALL объяснены с помощью запросов, которые мы выполнили: дубликаты, правила, которым следуют оба, реальная ошибка данных, измеренна…

Читать статью →
Разработка ПО

Учебное пособие по API JavaScript Fetch: GET, POST, обработка ошибок и тайм-ауты

Учебное пособие по API JavaScript Fetch, протестированное на локальном сервере: GET и POST, почему не выдается ошибка 404, многоразовый помощник, ст…

Читать статью →
Разработка ПО

Обработка файлов Python: чтение, запись, CSV, JSON и pathlib с примерами

Обработка файлов Python объясняется с помощью кода, который мы запускали: открытые режимы, чтение больших файлов, CSV, JSON, pathlib, двоичные файлы…

Читать статью →
Разработка ПО

Классы и объекты Python: учебник ООП с реальными примерами

Классы и объекты Python, объясненные с помощью кода, который мы запускали: __init__, методы, атрибуты класса и экземпляра, наследование, свойства, м…

Читать статью →
Искусственный интеллект

Что такое большая языковая модель? Как работают LLM, объяснено без шумихи

Что такое большая языковая модель? LLM объясняется простым языком: токены, встраивания, внимание, обучение, температурные и контекстные окна, крошеч…

Читать статью →
DevOps

Команды Linux для начинающих: основное руководство по терминалу с примерами

Команды Linux для начинающих, сгруппированные по задачам: навигация, файлы, просмотр журналов, grep, каналы, разрешения, процессы и архивы, с практи…

Читать статью →
Автоматизация тестирования

Selenium vs Playwright: ключевые различия, сравнение кода и что выбрать

Сравнение Selenium и Playwright: архитектура, ожидание, поддержка браузера и языка, отладка, одинаковый тест в обоих инструментах, советы по миграци…

Читать статью →
Тестирование ПО

Разделение эквивалентности: метод проектирования тестов, объясненный на рабочих примерах

Объяснение эквивалентного разделения: как найти действительные и недействительные разделы, рабочие примеры для возрастов, паролей и купонов, проведе…

Читать статью →
Тестирование ПО

Серьезность и приоритет в тестировании программного обеспечения: различия, матрица и реальные примеры

Объяснение серьезности и приоритета при тестировании программного обеспечения: четкие определения, четырехсторонняя матрица с примерами, шкалы уровн…

Читать статью →
Базы данных и SQL

Учебное пособие по подзапросам SQL: типы, коррелирующие подзапросы и EXISTS с примерами

Руководство по подзапросам SQL с выполненными нами запросами: скалярные подзапросы, IN, FROM и SELECT, коррелированные подзапросы, EXISTS, ловушка N…

Читать статью →
Базы данных и SQL

Объяснение транзакций SQL и ACID: COMMIT, ROLLBACK и уровни изоляции

Транзакции SQL и ACID, объясненные с помощью банковского перевода, который мы выполнили: COMMIT, ROLLBACK, точки сохранения, блокировки, уровни изол…

Читать статью →
Разработка ПО

Git merge vs rebase: отличия, примеры и когда что использовать

Git merge vs rebase с реальным выводом log, сравнительной таблицей, золотым правилом rebase и безопасным рабочим процессом для команды.

Читать статью →
Разработка ПО

Генераторы списков в Python: синтаксис, примеры и когда их избегать

Генераторы списков в Python: синтаксис, фильтры, if-else, вложенные циклы, измеренное время и случаи, когда обычный цикл for лучше.

Читать статью →
Базы данных и SQL

SQL JOIN: объяснение с примерами (Inner, Left, Right, Full)

Разберите SQL JOIN шаг за шагом на примерах таблиц и запросов: INNER, LEFT, RIGHT, FULL, CROSS и SELF, а также частые ошибки и советы по производите…

Читать статью →