Ответ
При обнаружении дефекта я создаю баг-репорт в системе отслеживания задач (Jira, YouTrack, Redmine). Его структура должна быть чёткой и воспроизводимой.
Обязательные поля баг-репорта:
- Заголовок (Title): Краткое и информативное описание проблемы.
- Плохо: "Не работает кнопка"
- Хорошо: "Кнопка 'Отправить' остаётся неактивной после ввода email в неверном формате на странице регистрации"
- Шаги воспроизведения (Steps to Reproduce): Нумерованный список точных действий.
- Фактический результат (Actual Result): Что происходит на самом деле.
- Ожидаемый результат (Expected Result): Как система должна вести себя согласно требованиям.
- Окружение (Environment): ОС, браузер, версия приложения, устройство.
- Приоритет/Серьёзность (Priority/Severity): Оценка влияния на бизнес и пользователей.
- Вложения (Attachments): Скриншоты, видео, логи консоли или сервера.
Пример структуры в Jira:
Summary: Ошибка 500 при попытке добавить товар в корзину с нестандартным символом в названии
Steps:
1. Откройте каталог товаров.
2. Найдите товар с названием, содержащим символ "&" (например, "Масло & Сыр").
3. Нажмите кнопку "В корзину".
Actual Result: Появляется сообщение "Внутренняя ошибка сервера (500)".
Expected Result: Товар успешно добавляется в корзину, появляется уведомление об успехе.
Environment:
- OS: Windows 11
- Browser: Chrome 128.0.6613.138
- App Version: 2.5.1
Severity: High (блокирует покупку)
Priority: Medium (не на главном потоке)
Attachment: console_log_error_500.txt, screenshot_error.png
Дополнительно дефект может быть отражён в тестовой документации (TestRail, Qase) для обновления статуса связанных тест-кейсов.
Ответ 18+ 🔞
А, слушай, вот это тема — как правильно баг впиздюрить в систему, чтобы тебя не послали нахуй разработчики. Потому что если ты напишешь «не работает» и всё, тебе такой ответ прилетит, что мало не покажется. Так что, блядь, учись.
Что надо впихнуть в баг-репорт, чтобы было понятно даже этому, блядь, полупидору, который код на коленке писал:
-
Заголовок (Title): Не «Всё сломалось, пиздец!», а конкретно, что и где. Примеры, блядь:
- Мудацкий вариант: «Кнопка глючит»
- Нормальный вариант: «Кнопка "Купить" на странице товара не реагирует на клик после выбора размера "XL"»
-
Шаги воспроизведения (Steps to Reproduce): Вот тут, сука, главное — расписать всё по шагам, как для дебила. Чтобы любой взял и повторил. «Нажал туда-сюда» — не катит.
-
Фактический результат (Actual Result): Что на самом деле вылезло. «Вылетело в синий экран» или «В консоли ошибка "Uncaught TypeError: undefined is not a function"».
-
Ожидаемый результат (Expected Result): А как должно было быть по-твоему, умник? По требованиям, блядь.
-
Окружение (Environment): Где это случилось? Windows, Mac, какой браузер, какая версия приложения? А то придут и скажут: «У меня на IE6 работает, иди нахуй».
-
Приоритет/Серьёзность (Priority/Severity): Оцени, насколько всё хуёво. Это High, если пользователь не может купить, или Low, если опечатка в справке. Не ставь всем Critical, а то тебя перестанут воспринимать всерьёз, доверия ебать ноль.
-
Вложения (Attachments): Скриншот, видео, логи из консоли браузера (F12 -> Console) или с сервера. Без этого — твои слова просто пиздёж, чувак.
Вот, смотри, как это выглядит в живой системе, типа Jira:
Summary: Ошибка 500 при попытке добавить товар в корзину с нестандартным символом в названии
Steps:
1. Откройте каталог товаров.
2. Найдите товар с названием, содержащим символ "&" (например, "Масло & Сыр").
3. Нажмите кнопку "В корзину".
Actual Result: Появляется сообщение "Внутренняя ошибка сервера (500)".
Expected Result: Товар успешно добавляется в корзину, появляется уведомление об успехе.
Environment:
- OS: Windows 11
- Browser: Chrome 128.0.6613.138
- App Version: 2.5.1
Severity: High (блокирует покупку)
Priority: Medium (не на главном потоке)
Attachment: console_log_error_500.txt, screenshot_error.png
И да, ёпта, не забудь потом в своей тестовой помойке (TestRail, Qase) отметить, что тест-кейс провалился из-за этого бага. Чтобы отчётность была в порядке, а то начальство спросит — а ты бздеть начнёшь.