Ответ
Статус 'Cannot Reproduce' (CNR, «Не воспроизводится») присваивается баг-репорту, когда тестировщик или разработчик не может воссоздать описанную проблему, следуя указанным шагам в заданном окружении.
Основные причины возникновения статуса CNR:
- Неполный или неточный баг-репорт:
- Пропущены ключевые шаги или предварительные условия.
- Неточные данные для ввода.
- Не указана конкретная версия приложения/браузера/ОС.
- Различия в окружении:
- Версия ПО, операционной системы, браузера, библиотек.
- Конфигурационные настройки (разрешение экрана, локаль, часовой пояс).
- Состояние данных (конкретная запись в БД, кэш).
- Проблемы, зависящие от состояния или времени:
- Гонки условий (race conditions).
- Проблемы, проявляющиеся только под нагрузкой.
- Ошибки, связанные с истекшими таймерами или сессиями.
Действия для разрешения ситуации 'Cannot Reproduce':
| Действие | Описание |
|---|---|
| Уточнение у автора | Запросить у нашедшего баг дополнительные детали: скриншоты/видео, логи, точные версии, дампы данных. |
| Воспроизведение на идентичном окружении | Использовать ту же ОС, версию браузера, набор данных, что и автор отчета. |
| Расширенное логирование | Добавить в код детальное логирование или использовать инструменты отладки (Chrome DevTools, Fiddler) для анализа сетевых запросов и состояния приложения. |
| Проверка смежных областей | Попробовать выполнить похожие, но не идентичные действия. |
| Использование инструментов записи | Попросить автора использовать встроенные средства записи экрана (например, в Selenium IDE, браузере) при следующем возникновении. |
Пример плохого и хорошего описания шагов:
**Плохо (вероятный CNR):**
Шаги: 1. Зайти в корзину. 2. Оформить заказ.
Ожидаемый: Заказ создан.
Фактический: Ошибка.
**Хорошо:**
Окружение: Chrome 121, Windows 11, v2.5.1 приложения.
Предусловие: В корзине 1 товар "Телефон X" (ID=555).
Шаги:
1. Перейти на страницу /cart.
2. Нажать кнопку "Checkout".
3. В форме выбрать "Доставка курьером".
4. Нажать "Оплатить картой".
Ожидаемый: Переход на страницу успешного оформления (/success).
Фактический: Появилась алерт-ошибка "Payment failed" (скриншот приложен).
Логи из консоли браузера: `Error 400: Invalid shipping method ID`.
Если после всех усилий воспроизвести проблему не удается, баг может быть закрыт с пометкой CNR, но его следует переоткрыть при появлении новой информации.
Ответ 18+ 🔞
Да ты посмотри, что творят-то! Присылают они мне, сука, баг-репорт, а я его воспроизвести не могу! Статус такой есть, «Cannot Reproduce», или по-нашему — «Не воспроизводится, блядь». Сидишь, ебёшь мозг, повторяешь шаги, а нихуя не падает! Чистая магия, ёпта!
А всему виной обычно вот эта хитрая жопа, которая отчёт писала. Основные причины, почему так выходит, — они же, как говна за баней!
Почему так бывает, ёбана?
- Отчёт — говно полное. Там шаги пропущены, данные левые, версия не указана. Написали: «Нажимаю кнопку — всё падает». А какую кнопку, в каком окне, после каких действий, под каким знаком зодиака, блядь? Хуй поймёшь!
- Окружение другое. У тебя Windows 11, а у него — Linux на дохлом ноуте. У тебя браузер свежий, а у него — Internet Explorer, который уже в аду варится. Или в его базе какая-то ебучка записана, а у тебя — чистая.
- Проблема-невидимка. Гонки какие-то, ёбушки-воробушки, когда два процесса друг другу мешают. Или только под нагрузкой вылазит, когда тысяча пользователей одновременно жмёт. А ты один сидишь — и нихуя.
Что делать, если тебе впендюрили такой баг?
| Что делаем | Зачем, нахуй? |
|---|---|
| Допрашиваем автора | Пишем ему: «Чувак, бля, а скриншоты есть? А логи консоли? А какая у тебя версия сборки, не та, что вчерашняя?». Требуй всё, вплоть до дампа памяти, если надо. |
| Клонируем его конуру | Ставим ту же операционку, тот же браузер, те же данные в базу. Воссоздаём его кривое окружение один в один. |
| Включаем режим параноика | Добавляем в код тонну логов, включаем все инструменты разработчика, смотрим каждый сетевой запрос. Ищешь ту самую иголку в стоге сена. |
| Шаримся рядом | Может, баг не на этих точных шагах, а если сделать почти так же? Пробуешь разные варианты, как маньяк. |
| Просим записать | Если баг плавающий, говоришь: «Друг, в следующий раз, как увидишь, сразу жми «Запись экрана»!». Пусть видео пришлёт, а не словами пересказывает. |
Смотри, вот тебе наглядный пиздец:
**Пиздец, а не описание (гарантированный CNR):**
Шаги: 1. Зайти в корзину. 2. Оформить заказ.
Ожидаемый: Заказ создан.
Фактический: Ошибка.
(И сиди потом, гадай, что за ошибка и на каком шаге, блядь)
**А вот как надо бы, по-человечески:**
Окружение: Chrome 121, Windows 11, версия приложения v2.5.1.
Предусловие: В корзине уже лежит один товар "Телефон X" (ID=555).
Шаги:
1. Перейти на страницу /cart.
2. Нажать кнопку "Checkout".
3. В форме выбрать "Доставка курьером".
4. Нажать "Оплатить картой".
Ожидаемый: Переход на страницу успешного оформления (/success).
Фактический: Вылезла алерт-ошибка "Payment failed" (скриншот приложен).
Логи из консоли браузера: `Error 400: Invalid shipping method ID`.
Вот когда всё так расписано — это другое дело! А если после всех танцев с бубном, после впиндюривания в логи и воссоздания его кривой среды, баг так и не проявился — тогда да, можно закрыть с этим CNR. Но! Если он потом снова вылезет с новыми доказательствами — сразу переоткрываем, блядь, и продолжаем копать. Волнение ебать, но терпения ноль!