У нас есть многоязычный веб-сайт, на котором ошибка была обнаружена несколько дней назад. Он отображал данные на других языках на другом языке, а также была выбрана смесь данных, подобная английскому языку, но также отображала данные на других языках на странице и наоборот. Он делает это редко, но присутствует на сайте. Просмотр кода также не помогает, потому что это не всегда происходит.
Любое предложение в поиске проблемы своевременно? Я прошу стратегии здесь.
web-development
testing
bug
maz3tt
источник
источник
Ответы:
Первый шаг - попытаться определить, что может вызвать проблемы такого типа. Поскольку это связано с выбором правильного языка для разделов кода, начните с рассмотрения следующего:
Теперь, когда вы охарактеризовали возможности того , что может пойти не так, пришло время , чтобы убедиться , что у вас есть данные, нужно попытаться выяснить , что же пошло не так.
Наконец, как только вы сузили проблему до того момента, когда вы знаете, как ее воспроизвести и что ее вызывает, напишите наименьший автоматизированный тест, который вы можете вызвать, чтобы вызвать проблему в коде. Если вы сузили проблему до одного класса или пары классов, которые не работают вместе, воспроизведите ее на этом уровне. Для этого не нужно создавать 100 потоков, просто проведите самый маленький тест, который может вызвать проблему в 100% случаев.
Теперь вы можете это исправить и быть достаточно уверенным, что это больше не повредит вам.
источник
Ошибка не является невоспроизводимой. Вы просто еще не узнали, как воспроизвести это.
Ни одна ошибка не является случайной, если вы не генерируете исключение, основанное на возвращаемом значении некоторого оператора Random ().
Я знаю, что это может показаться семантикой, но мысленно обнадеживающе сказать это себе.
Очень сложно и сложно найти способ воспроизвести ошибку, которая возникает только из-за сложных условий гонки или чего-то подобного.
Что касается того, как его найти, я бы включил / добавил бы логи в приложение в местах, которые могли бы дать вам больше информации.
Затем скажите людям, которые видят ошибку (независимо от того, являются ли они разработчиками, QA, конечными пользователями), чтобы они сообщали, как только они видят это в то время, когда это произошло, а затем просматривают ваши журналы. Запросите у них другую информацию, так как ошибка может произойти только из-за взаимодействия нескольких разных систем или из-за состояния гонки.
Надеюсь, вы сможете найти лидерство.
источник
Вы можете попытаться найти места в вашем коде, где вы можете распознать, что проблема возникла (например, несовместимые параметры в методе), добавить проверки в ваш код и позволить им добавлять дополнительную информацию в журнал отладки (например, трассировка стека, объекты). добавлено в сеанс и т. д.)
Делая это, вам, если повезет, вы можете получить информацию о происшествиях и вернуться к проблеме.
источник
Автоматизация должна помочь, если одни и те же шаги по воспроизведению иногда оказываются неудачными, автоматизируйте это и поместите в цикл. Запустите в 50000 раз, и это очень вероятно произойдет.
источник
попытайтесь найти шаблоны, чтобы определить условия, в которых эта проблема проявляется. Это должно указать вам на разделы вашего кода, которые не работают (или ведут себя непоследовательно).
источник
Вы можете обнаружить , когда проблема будет происходит? Если да, можете ли вы надежно сбросить информацию о состоянии системы на этом этапе?
Если на оба эти вопроса дан ответ «да», введите в свой код столько информации, сколько возможно, когда ошибка действительно произойдет, затем подождите.
Это не замена того, что предложили другие (вам все еще нужно будет обдумать, как код может перейти в состояние, которое вы видите), но пока вы не можете воспроизвести ошибку по желанию, Это хорошая идея, чтобы не тратить впустую случаи, когда это появляется.
источник