Как бороться с ошибкой, которая, кажется, исправила себя? [закрыто]

16

Я разработчик веб-приложений для внутренней системы. Пользователь сообщает, что есть ошибка.

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

Как мне ответить клиенту и пользователю?

Бен Ченг
источник
1
Выясните, как сделать это повторяемым.
Уайетт Барнетт
2
Сколько времени вы можете позволить себе это расследование? Насколько критичной была ошибка и ее негативные последствия? Если ответы очень малы и пренебрежимо малы, я бы сказал, что пометить их как исправленные с указанием обстоятельств, при которых они не были исправлены, и ждать, пока они вернутся, является вполне приемлемым использованием ресурсов вашей компании.
Newtopian
2
Это просто требует довольно стандартного стандартного ответа: « Уважаемый [пользователь], проблема с X, о которой вы сообщили на Yth, кажется, была решена в последнем выпуске Z. Пожалуйста, пометьте проблему как решенную, если это действительно так». Если нет, пожалуйста, отправьте это мне обратно с подробностями о том, как вы с этим столкнулись. "
Лилиенталь
1
@Lilienthal То, что ошибка не может быть воспроизведена, не означает, что она устранена. Вы даже не знаете, что в прошлом месяце был даже новый релиз.
Папараццо

Ответы:

32

Верните среду разработки в версию, в которой была замечена ошибка, и убедитесь, что она есть.

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

Если вы не можете воспроизвести ошибку в этой версии, тогда будут полезны стратегии, изложенные во многих других вопросах (спасибо Томасу за первоначальный список):

чокнутый урод
источник
2
По моему опыту, большинство команд просто выбирают опцию «невозможно воспроизвести» в системе продажи билетов и закрывают ее. Тестирование кода «тогда» и «сейчас», чтобы убедиться, что проблема существует и больше не кажется лучшим решением. Но это также требует больше времени, чем сказать «не может воспроизвести» и закрыть его, поэтому это может быть не вариант для каждой ошибки.
Пол Дж. Абернати
5
Зависит от того, насколько серьезна ошибка. Если это просто глупость компоновки, тогда действительно невозможно воспроизвести и сделать это, но если это может быть более зловещим, то несколько часов, чтобы закончить регрессионный тест, могут стоить того.
фрик с трещоткой
2
@ratchetfreak Кроме того, это зависит от того, насколько серьезен этот конкретный клиент. Если они в одиночку финансируют ваши зарплаты, возможно, стоит потешить их ;-)
Cort Ammon - Восстановить Монику
7
Проблемы, которые уходят сами собой, возвращаются сами собой.
Пит Беккер
1
Это все вопрос рабочей нагрузки. Если у вас есть одна ошибка, которую можно было воспроизвести месяц назад и которой больше нет, и еще одна ошибка, которую можно воспроизвести сейчас , то сначала вы исправляете одну, которая воспроизводима. Если вы когда-нибудь попадете в состояние, когда вам совершенно скучно, тогда вы можете провести расследование. И когда проблема возвращается сама собой, тогда, конечно, это воспроизводимая ошибка, и вы начинаете ее исправлять :-)
gnasher729
2

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

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

Затем вы идете к человеку, который сообщил об ошибке (вы можете сделать это в приложении отслеживания ошибок, если у вас есть, вам не нужно идти лично) и говорите, что вы не смогли воспроизвести ошибку, но добавили некоторые дополнительные ведение журнала, чтобы получить более подробную информацию о том, что делает процесс в случае повторного появления ошибки. Затем закройте ошибку.

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

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

HLGEM
источник
1

Невоспроизводимые сумки - худшие! Это может быть исправлено в то же время, или оно все еще может быть там, но является спорадическим или шаги для воспроизведения недостаточно определены. Вы должны принять решение о том, насколько высока опасность ошибки и насколько вы расширите ее исследование. Вы делаете онлайн-менеджер рецептов или программное обеспечение для управления ядерными ракетами?

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

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

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

JacquesB
источник