Обнаружение сбоев JQuery и IE8

Недавно мне было предложено помочь отладить проблему с веб-сайтом, который вызвал сбой IE8 при определенных условиях. Компания, которая владеет веб-сайтом, не смогла воспроизвести проблему, но получала много отчетов от затронутых пользователей.

Я смог воспроизвести проблему и в итоге обнаружил, что это вызвано этой проблемой jQuery/IE 8. Проблема возникает, когда фоновое изображение применяется к тегу body, используя CSS, и загружается jQuery. Сообщение в комментариях к ошибке jQuery при условии, что этот пример jsFiddle, который, по крайней мере, воспроизводит проблему последовательно.

  • Перейдите в http://fiddle.jshell.net/ZKPZq/6/ с IE8.
  • Щелкните правой кнопкой мыши на экране результатов и обновите его - IE8 будет аварийно завершен

Проблема, которую я имею, это надежное воспроизведение в тестовой среде. Может ли кто-нибудь предложить методы для проверки такого рода вещей? Несмотря на копирование точного кода, используемого в примере jsFiddle, я не могу последовательно воспроизводить проблему локально - он может полагаться на определенный момент времени, но я не уверен. Я хотел бы добавить что-то в автоматизированный набор тестов, который проверяет эту проблему (исправление jQuery было применено ранее и случайно удалено в более поздней версии).

Как я могу проверить наличие сбоев браузера? Сайт написан на Perl, и некоторые автоматические тесты выполняются с использованием Selenium и WWW:: Mechanize.

Примечание: Я рассмотрел возможность размещения этого файла Pro Webmasters, но прочитав FAQ, я думаю, что он больше подходит для SO.

Ответ 1

Я не думаю, что вы можете сделать что-то другое, кроме как тестирования как единичных тестов, так и стресс-тестов с максимально возможными комбинациями факторов.

Это характер так называемого Mandelbugs.

Ответ 2

Учитывая, что единственная последовательная вещь, похоже, не проблема, если вы загружаете JQ перед объявлением стиля, я бы попытался настроить JQ на загрузку с разными интервалами после загрузки объявления CSS/связанного файла CSS.

Сразу после того, как стиль установлен так хорошо, как только DOM готов. Мое предположение было бы в том, что JQ ссылается на то, что IE8 сделал доступным, что он еще не был готов поделиться только в результате чего-то действительно глупого в процессе DOM-загрузки.

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

Edit: честно говоря, JQ, вероятно, делает что-то нечетное в 1.62, или эта ошибка будет более известной в целом. IE8 уже несколько лет.

Ответ 3

Вы можете попробовать тестирование с некоторыми предложениями SauceLabs, которые обеспечивают кросс-платформенные возможности кросс-браузерного тестирования.