«Не грузится приложение? Попробуй запустить через другой браузер!». Это самый частый совет, который мы получаем, когда веб-приложение не запускается на «родном» браузере. Дабы потенциальный пользователь не страдал от необходимости перехода на другой браузер из-за вашего сайта, на этапе подготовки к релизу разработчикам советуют «пропустить» его через кроссбраузерное тестирование. Попробуем разобраться, действительно так ли это так необходимо, как это делается и какие подводные камни могут ждать нас на этом пути.
Уникальные браузеры
Начнём с того, что ни одно веб-приложение (сайт) не будет одинаково работать во всех браузерах. Это обусловлено и разными версиями одного приложения, и разницей в поведении браузера на десктопе и мобильном устройстве, и различным окружением: плагинами, настройками браузера и т. д. Именно поэтому кроссбраузерное тестирование призвано максимально сблизить параметры работы приложения во всех веб-обозревателях.
Конечно, сегодня существует возможность проверки работы приложения в разных браузерах, даже если они не установлены на вашем компьютере. Однако, это не самый надёжный способ.
Кроссбраузерное тестирование начинается с выбора веб-обозревателей. На сегодня необходимо рассматривать по крайней мере четыре наиболее популярных браузера (согласно статистике http://gs.statcounter.com)
- Google Chrome (для тестирования, как правило, берется последняя версия), им пользуются 48,06% юзеров в мире;
- Internet Explorer, 19,6% пользователей;
- Mozilla Firefox (последней версии), 16,74% пользователей;
- Safari, 10,63% пользователей (в США — 16,88%).
Некогда популярная Opera скатилась до рейтинговой отметки «другие браузеры» и, помимо Восточной Европы, используется редко. Самым же популярным по статистике является Google Chrome, поэтому, как правило, он принимается за основной браузер для тестов.
Как выбрать приоритетный браузер?
Приоритетный браузер всегда определяет заказчик. Исходя из специфики приложения и коммерческого таргетирования, он изначально рассчитывает на определённых пользователей. Это логично. Но не стоит упускать из виду тот факт, что не всегда заказчик достаточно осведомлён о том, насколько широк круг потенциальных пользователей. Поэтому задача тестировщиков, как людей более опытных в сфере веб-тестирования, помочь и подсказать, какой браузер в том или ином случае должен стать «главным».
Кроме пожелания заказчика выбор браузеров для тестирования обусловлен и другими объективными критериями: популярность браузера (согласно статистике) и целевой регион — если, скажем, приложение «нацелено» на Россию, то имеет смысл включить в тестирование Opera, а если на пользователей из США или Западной Европы, тестировать в Opera смысла нет.
Основные моменты, которые должны быть проверены в первую очередь — это вёрстка (шрифт, цвет, расположение элементов) и JavaScript (может «отрабатывать» по-разному).
Кроссбраузерное тестирование может быть упрощено за счёт различных инструментов. Например, можно тестировать на виртуальной машине. Это удобное решение в тех случаях, когда необходимо проверить разные версии одного браузера. Также виртуальная машина подойдет, когда тестирование нужно провести в браузере Safari на Mac OS, а реального устройства на этой «оси» нет. При этом стоит помнить об опасности возникновения дефектов, которые не воспроизведутся на реальном устройстве. Например те, что связаны с отображением элементов.
Зачем «откатывать» Explorer?
Функция Compatibility mode даёт возможность эмулировать более ранние версии браузера. Настройка в таком случае производится в средствах разработчика. Однако, использование этого режима не рекомендовано, поскольку тестирование не даст достоверных результатов. Одним из вариантов тестирования на нескольких версиях IE является создание нескольких снапшотов (снимков системы) на виртуальной машине.
Почему мы выделяем тестирование «старых» версий только для IE? Дело в том, что этот браузер, в отличие от других, «встроен» в операционную систему Windows, и многие не самые продвинутые пользователи могут даже не знать о наличии других браузеров и пользоваться старыми версиями IE. Если компьютер находится в корпоративной сети, то автоматическое обновление часто отключается из-за внутренних требований и ограничений. Также пользование старой версией IE может быть банальной привычкой или необходимостью, диктуемой конкретным ПО. (Например, корпоративная система обработки заявок для предприятия была создана несколько лет назад и написана исключительно под IE). А поскольку каждая версия IE содержит свои уникальные ошибки, особенности отображения веб-страниц, а также не поддерживает некоторые свойства CSS, то проверить на ошибки последнюю версию браузера будет недостаточно.
Поэтому если тестирование проводится разово, то нет ничего лучше, чем «откатить» браузер до более ранней версии. Это не займет много времени, делается буквально в два клика. А основной плюс «откатки» в том, что результаты тестирования в таком случае будут максимально достоверными.
Инструменты — вторичны
Кроссбраузерное тестирование чаще всего проводится на уровне MAT, т. е. с использованием корректных данных. Пристальное внимание при этом уделяется GUI, поскольку большинство кроссбраузерных дефектов касается интерфейса.
Важно отметить, что найденные в ходе кроссбраузерного тестирования дефекты, которые воспроизводятся в любом браузере, не относятся к кроссбраузерным. Поэтому само кроссбраузерное тестирование целесообразно проводить, когда система «стабильна» и вся функциональность отлажена. Иначе объём работы может увеличиться в разы, что повлечёт дополнительные временные и финансовые затраты.
Тестируя все возможные браузеры и версии, не стоит выполнять ненужную работу, когда тестируются «странные» комбинации операционной системы и браузера. Например: нецелесообразно тестировать приложение в Safari на Windows, так как большая часть пользователей браузера работает в Mac OS.
Не стоит доверять и вспомогательным сервисам. И хотя такие инструменты, как Saucelabs, Scout, CrossBrowserTesting, призваны облегчить работу над кроссбраузерным тестированием, у них есть свои явные минусы. При том, что такие сервисы в основном платные, большинство их них позволяют увидеть только статические данные без возможности тестирования функциональности. Поэтому к их помощи можно прибегнуть в крайнем случае.
Надеемся, что прояснение основных аспектов и стадий кроссбраузерного тестирования поможет определиться, насколько оно необходимо. Так или иначе, актуальность проблемы кроссбраузерности в ближайшее время будет только возрастать.
Об авторах: Александр Панченко — директор департамента тестирования web-приложений, Ольга Демешко — специалист по тестированию ПО, ЗАО «Технологии качества» (бренд A1QA).