Приведи пример идеального баг-репорта
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Пример идеального баг-репорта
Добротный баг-репорт — это документ, который дает разработчику всю информацию, необходимую для понимания и воспроизведения проблемы. Вот пример идеального баг-репорта.
Структура идеального баг-репорта
Title (Заголовок) Краткое, четкое описание проблемы, которое сразу дает понять в чем суть.
- ✓ Правильно: "При отправке форму с пустым email возвращается 500 ошибка вместо валидации"
- ✗ Неправильно: "Ошибка в форме", "Что-то не работает"
Priority (Приоритет) Классификация критичности бага.
- Critical — функционал полностью сломан, система недоступна
- High — функционал работает, но некорректно, большой impact
- Medium — функционал работает, небольшие проблемы
- Low — косметические проблемы, опечатки
Severity (Серьезность) Какой реальный impact на пользователя.
Environment (Окружение)
- URL: https://staging.example.com
- Браузер: Chrome 120 на MacOS
- Устройство: MacBook Pro 16inch
- БД версия: PostgreSQL 14
- Backend версия: v2.1.0
Steps to Reproduce (Шаги воспроизведения) Пошаговое описание того, как воспроизвести баг:
- Перейти на страницу https://staging.example.com/signup
- В поле Email оставить пусто
- Заполнить остальные поля:
- Password: "TestPass123"
- Confirm Password: "TestPass123"
- Name: "John Doe"
- Нажать кнопку "Sign Up"
- Нажать кнопку "Submit"
Expected Result (Ожидаемый результат) Что ДОЛЖНО произойти:
Система должна показать сообщение об ошибке под полем Email: "Email is required" (красный текст). Форма не должна отправляться на сервер. Пользователь остается на той же странице.
Actual Result (Фактический результат) Что происходит ВМЕСТО этого:
После нажатия на кнопку "Submit" система отправляет запрос на сервер, в ответ возвращает HTTP 500 Internal Server Error. На экране отображается "Something went wrong" сообщение. В Network tab видно:
POST /api/v1/users
Status: 500
Response: {"error": "Internal Server Error"}
Attachments (Вложения)
Скриншот экрана:
[Скриншот формы с пустым Email полем]
Network снимок:
Request:
POST /api/v1/users HTTP/1.1
Content-Type: application/json
{"password": "TestPass123", "name": "John Doe"}
Response:
HTTP/1.1 500 Internal Server Error
{"error": "Internal Server Error"}
Видео (если необходимо для понимания):
[Ссылка на видео с воспроизведением бага]
Additional Details (Дополнительно)
- Баг воспроизводится каждый раз (100% воспроизводимость)
- Проверил на Firefox 120 — баг воспроизводится
- Проверил на Android Chrome — баг воспроизводится
- На Production это работает правильно (валидирует форму)
- На версии v2.0.0 этого бага не было
Related Issues (Связанные issues)
- Похож на #234 (ошибка 500 при регистрации)
- Может быть связано с изменениями в #250 (рефакторинг валидации)
Business Impact (Бизнес impact) Пользователи не могут зарегистрироваться вообще. Это блокирует новых пользователей. Critical для signup процесса.
Пример реального баг-репорта
Title: Empty email field causes 500 error instead of client-side validation
Priority: Critical
Severity: Blocker
Environment:
- URL: https://staging.prepbro.ru
- Browser: Chrome 120.0.0.0
- OS: macOS 14.2
- App Version: v2.1.0
Steps to Reproduce:
1. Open https://staging.prepbro.ru/signup
2. Leave Email field blank
3. Fill in:
- Password: TestPass123
- Confirm: TestPass123
- Name: John Doe
4. Click "Sign Up"
Expected: Error message "Email is required" appears, form not submitted
Actual: HTTP 500 returned, generic error shown
Attachments:
- Screenshot_error_500.png
- network_log.json
- video_repro.mp4
Notes:
- 100% reproducible
- Happens on Firefox and Safari too
- Works correctly on Production
- Regression from v2.0.0 (changelog shows validation refactoring)
- Related to #234
Золотые правила баг-репорта
1. Быть максимально конкретным
- Не "кнопка не работает", а "кнопка "Save" не сохраняет данные в БД"
2. Предоставить все детали для воспроизведения
- Разработчик не должен гадать
- Следуя шагам, он должен сразу увидеть баг
3. Включить скриншоты и видео
- Картинка стоит 1000 слов
- Видео еще больше
4. Быть объективным
- Факты, не эмоции
- "Кнопка возвращает ошибку 500", не "Эта проклятая кнопка!"
5. Не описывать решение
- Ты не разработчик, не решай как чинить
- Описывай что сломано, не как чинить
6. Проверить на дубликаты
- Перед созданием нового баг-репорта проверить, нет ли похожих
- Это сэкономит время всем
7. Быть вежливым и профессиональным
- Баг-репорты читают люди
- Бережное отношение помогает лучшему взаимодействию
Идеальный баг-репорт дает разработчику все, что ему нужно. Не нужны вопросы, не нужна уточнение. Просто читает, воспроизводит, чинит.