Загрузка данных


Глава 5. Дефекты
5.1. Понятие дефекта и рекомендации к его описанию
 * Дефект (defect, bug, problem, fault) — недостаток в компоненте или системе, способный привести к ситуации отказа.
 * Классификация дефектов:
   * По степени серьёзности: критические (сбой ПО, потеря данных), значительные (снижение производительности/удобства), малозначительные (не влияют на функции, ухудшают качество).
   * По типу: функциональные (неправильная работа функций), нефункциональные (производительность, безопасность, удобство), логические (ошибки в алгоритмах).
   * По стадии возникновения: дефекты проектирования, кодирования, тестирования.
 * Методы обнаружения: ручное тестирование, автоматизированное тестирование, статический анализ кода (без запуска программы), динамический анализ кода (в процессе выполнения ПО).
 * Этапы устранения: 1. Идентификация \rightarrow 2. Разработка исправления \rightarrow 3. Внедрение исправления \rightarrow 4. Повторное тестирование.
 * Меры предотвращения: соблюдение стандартов разработки, повышение квалификации программистов, инструменты статического/динамического анализа, регулярное тестирование.
Структура описания дефекта (Баг-репорта)
> При составлении следует избегать субъективных и размытых слов: «корректный/некорректный», «правильный/неправильный», «длинный».
> 
 * Заголовок (Headline, Summary): отвечает на три вопроса: «Где?», «Что?», «Когда?».
 * Окружение (Environment): подробные технические данные без сленга (версия и сборка ОС, точная версия браузера, локаль).
 * Шаги воспроизведения (Steps to Reproduce): исчерпывающий пошаговый путь воспроизведения для персонала любой квалификации.
 * Актуальный результат (Actual Result): реальное ошибочное поведение программы.
 * Ожидаемый результат (Expected Result): правильная реакция системы согласно требованиям или спецификации.
 * Критичность (Severity): степень влияния бага на работу приложения.
 * Скриншоты (Attachments): визуальные материалы, область захвата которых однозначно раскрывает место и суть проблемы.
5.2. Уровни критичности и связь с приоритетом
 * Критичность (Severity): техническая оценка влияния дефекта на приложение. Определяется тестировщиком с точки зрения конечного пользователя.
 * Приоритет (Priority): очередность и срочность устранения ошибки разработчиками. Назначается проектным менеджером (иногда тестировщиком).
   * Взаимосвязь: Severity не определяет очередность исправления напрямую. Менеджер может присвоить малозначительному дефекту приоритет «Resolve immediately», а критическому — «Low priority», исходя из бизнес-требований.
Шкала критичности (Severity)
 * Blocker (Блокирующий): ПО полностью неработоспособно, тестирование продолжать невозможно.
 * Critical (Критический): частичная блокировка критических функций, падения системы, потеря данных, невозможность установить ПО или сбой лицензирования.
 * Major (Серьезный): существенное нарушение нормальной работы функций, некорректные расчеты, но дальнейшее тестирование возможно.
 * Average (Средний): не блокирует работу, есть обходные пути; частичные расхождения со сценарием, сбои навигации.
 * Minor (Незначительный): мелкие недочеты, не влияющие на функционал (опечатки, расхождения форматов, отступы, неверный порядок колонок).
 * Trivial (Несущественный): минимальные дефекты GUI, не ухудшающие восприятие интерфейса.
 * Enhancement (Рекомендация): предложения по улучшению функциональности или интерфейса.
5.3. Правила изменения уровней критичности
Оценка Severity субъективна и может корректироваться. Тестировщику запрещено завышать критичность исключительно ради привлечения внимания менеджера.
 * Понижение уровня допускается, если:
   * дефект воспроизводится на устаревшей/редкой ОС (например, Windows 7);
   * ошибка воспроизвелась единожды и не имеет четкого алгоритма шагов;
   * проблема затрагивает крайне редко используемый функционал.
 * Повышение уровня допускается, если:
   * ошибка интерфейса бросается в глаза на виду или несет оскорбительный/негативный подтекст;
   * дефект находится в основном, самом важном сценарии использования;
   * ошибка потенциально может нанести критический ущерб пользователю.
5.4. Жизненный цикл дефекта
 * Open (Обнаружен / Новый): дефект зарегистрирован тестировщиком в баг-трекере. Менеджер изучает отчет и принимает решение: передать в работу, отложить (Postponed) или вернуть на доработку (To Be Reformulated).
 * Assigned (Назначен): менеджер назначает ответственного разработчика и выставляет поле Priority.
 * In Progress (В работе): разработчик приступил к исправлению.
 * Resolved (Решен): разработка завершена. Разработчик указывает статус/резолюцию:
   * Fixed (исправлено);
   * Won't Fix (не будет исправлено);
   * FAD / Function as designed (работает как задумано);
   * Duplicate (дубликат существующей задачи);
   * Cannot Reproduce (не воспроизводится);
   * Fixed Indirectly (исправлено косвенно).
   * Дополнительно указывается сборка, в которой дефект устранен (Fixed Version).
 * Проверка (Валидация): тестировщик берет сборку с соответствующим Fixed Version и проверяет исправление.
 * Closed (Закрыт) / Reopen: если дефект исправлен — переводится в Closed; если проблема воспроизводится — возвращается в статус Open.
5.5–5.6. Требования к качественному баг-репорту
 * Точность: обязательно приводить ссылку на пункт требований/ТЗ, который был нарушен.
 * Однозначность: полное исключение сленга, указание версий всех задействованных компонентов.
 * Полнота: наличие подробных шагов, реального и ожидаемого результатов, а также любой сопутствующей информации (логи, дампы, скриншоты), ускоряющей локализацию бага.