Как начать кросс-браузерное тестирование |
10.07.2017 09:48 |
Оригинал статьи: https://dojo.ministryoftesting.com/lessons/getting-started-with-cross-browser-testing Автор: Алекс Лэнгшалл (Alex Langshall) Перевод: Ольга Алифанова. Вы, как тестировщик, получили на тестирование юзер-стори, и ответственный за нее разработчик попросил вас провести кросс-браузерное тестирование. Что это значит? Зачем тестировать юзер-стори в разных браузерах? Какие браузеры выбрать для тестирования? На что обращать внимание в процессе? Тестировщики должны задавать эти вопросы и себе, и другим заинтересованным лицам, если для юзер-стори или проекта требуется тестировать в различных браузерах. Детально проанализировать поведение приложения тяжело даже в одном браузере, не говоря уже о всем многообразии браузеров, которое может поддерживаться вашим приложением. Давайте разберем эти вопросы детальнее и рассмотрим возможные пути решения, которые сделают ваше кросс-браузерное тестирование успешным. Определение кросс-браузерного тестирования Кросс-браузерное тестирование – это тестирование фичи в различных релевантных приложению браузерах. Это важная часть тестирования: несмотря на существование веб-стандартов, разные браузеры внедряют их различным образом. На глубоком уровне разные элементы страницы ведут себя по-разному в разных браузерах. Поведение фичи в Safari, к примеру, может сильно отличаться от ее работы в Chrome. Если есть вероятность функциональных или косметических отличий в поведении системы в разных браузерах, без кросс-браузерного тестирования просто не обойтись. Оно должно проводиться для каждого аспекта удобства использования, отображения или функциональности, разрабатываемого вашей командой. Кросс-браузерное тестирование удостоверяет, что пользовательский опыт будет единым вне зависимости от браузера. Неважно, новый это код или уже существующая фича: приложение должно единообразно работать в разных браузерах. Оставим за кадром споры об "ужасном Internet Explorer": многие пользователи вынуждены пользоваться браузером, предоставленным им на работе, в школе, или выбранным из-за определенных характеристик другого ПО. Все они заслуживают того, чтобы их нужды принимались во внимание вне зависимости от того, насколько хорошим или плохим вы считаете выбранный ими браузер. Выбор браузеров Конечно, тестировать абсолютно все существующие в мире браузеры – это утопия. Их чересчур много, чтобы это тестирование имело какой-то смысл. Разумнее сэкономить время, выбрав конкретные браузеры, подходящие для тестирования. Использование подхода, основанного на рисках, может еще больше сузить выборку браузеров, снимая с вас необходимость тестирования в различных окружениях и браузерах, ассоциирующихся с ними. Если у вашего продукта или сайта есть явно задекларированный перечень поддерживаемых браузеров, то именно в них вы и будете регулярно тестировать. Если вы поддерживаете только IE11, Firefox, Safari и Chrome, вы можете ограничить ваше тестирование этой четверкой. Если внятно сформулированной браузерной политики не существует, получите доступ к статистике использования и возьмите для тестирования пять браузеров-лидеров – это неплохой способ получить вполне приличное покрытие кросс-браузерного тестирования приложения. Если у вас есть доступ к аналитике через Google Analytics, или что-нибудь вроде Kissmetrics, вы можете определить, какие конкретно браузеры используются посетителями вашего сервиса. Это, конечно, поможет вам спланировать выборку браузеров, но это ни в коем случае не серебряная пуля. Некоторые тестировщики планируют кросс-браузерное тестирование, используя таблицы вроде той, которая приведена чуть ниже. Она позволяет тестировщику убедиться, что все необходимые вариации и поддерживаемые ОС и мобильными ОС браузеры покрыты, а неподдерживаемые или не нуждающиеся в проверке исключены из тестирования. Неплохая идея для выбора браузеров – отобрать те, которые потенциально вызывают максимум проблем у вашего приложения. Возможно, у службы поддержки есть статистика, сколько дефектов заведено на определенные браузеры или их версии. Большинство браузерозависимых багов часто проявляются в IE11 и Safari из-за их закрытого исходного кода. Разработчикам зачастую приходится использовать обходные пути, чтобы добиться единообразия в поведении приложения в разных браузерах, поэтому поведению веб-элементов в этих браузерах нужно уделять особое внимание. Chrome и Firefox относятся к так называемым "вечнозеленым" браузерам – они автоматически обновляются, как только новая версия становится доступной. Обновляются они быстро и часто – примерно раз в месяц. Safari и IE11 обновляются значительно реже, и их обновления завязаны на обновления операционных систем. За изменениями браузеров можно следить, сравнивая бета-версии этих браузеров, или текущую версию с предыдущей. Chrome Canary и Firefox Developer Version дают возможность посмотреть на новую версию заранее, как и Safari Technology Preview. Немного об оборудовании Если у вас есть ограничения по оборудованию, а доступ есть только к одной машине, то, возможно, наилучшим вариантом будет выбрать Mac для тестирования. Это позволит вам установить виртуальную машину с Windows и IE для тестирования. К сожалению, легально обзавестись виртуальной машиной с Mac Os куда тяжелее, если вы тестируете под Windows. Учитывайте так же, какое оборудование вам понадобится для тестирования в браузерах не для ПК. Safari – стандартный браузер для устройств под iOS. Для Android это Chrome, хотя на обеих платформах существуют и альтернативные браузеры, а "родные" браузеры зависят от типа телефона. К примеру, у Samsung есть собственный предустановленный браузер. Инвестируя в мобильное тестирование, имейте под рукой минимальное и максимальное разрешение экрана мобильного устройства. Если приложение может использоваться в других типах не-десктопных браузеров, то, возможно, хорошей идеей будет приобретение таких устройств, как Xbox, PlayStation, AppleTV или даже Wii U – у всех них есть специфические браузеры для консольной платформы. Что же именно тестировать в разных браузерах? В зависимости от специфики юзер-стори, которую вы тестируете, неплохо начать с крупных изменений интерфейса или новых фич, задействованных во всех тестируемых сценариях. Если время на тестирование сильно ограничено, сконцентрируйтесь на том, что с высокой вероятностью может сломаться в определенных браузерах. Если под рукой есть дизайн-макеты приложения, используйте их как спецификацию для кросс-браузерного тестирования. Сравнивая элементы в макете и в браузере, вы быстро увидите различия, которые, возможно, являются багом. Общайтесь с разработчиками! То, как именно они внедряли фичу, и то, какие обходные пути они использовали – это важная информация, которая может помочь вам определить, что вам тестировать, и являются ли наблюдаемые вами различия багами – возможно, это просто специфика внедрения той или иной фичи. С чего начать? Приведенный ниже список – ни в коем случае не исчерпывающий, но его можно использовать как точку отсчета.
- Кнопки, поля, текстовая область, фон, панели должны выглядеть одинаково вне зависимости от браузера. - Шрифты должны выглядеть единообразно.
Обращайте внимание на необъяснимые ошибки Javascript, связанные с поведением приложения в браузере. Это поведение может меняться в зависимости от наличия открытых инструментов разработчика в процессе тестирования. Протестируйте приложение как с открытыми, так и с закрытыми инструментами. Пользователи в норме не открывают панель разработки, пользуясь сервисом. Советы и рекомендации Ниже несколько советов и рекомендаций, которые могут помочь при воспроизведении багов и оформлении баг-репортов. Версии браузеров:
Доступ к инструментам разработчика
Управление зумом:
Очистка кэша и временных файлов браузеров:
Изолированные профили Chrome и Firefox:
Что дальше? Набив руку, вы сможете быстро просканировать сайт/приложение на предмет распространенных проблем и выработать чутье на баги, специфичные для проекта. Джеймс Бах рассказывал про эвристику "Вприпрыжку". Тестирование при помощи этой эвристики дает возможность найти интересные баги. Браузеры зачастую используются в далеко не идеальных условиях: вкладки остаются открытыми длительное время, браузер висит в режиме ожидания, пока пользователь работает с другими приложениями, а в фоне что-то делает операционная система. Случайные "прыжки" по продукту в таких неидеальных условиях могут дать вам информацию, с какими неожиданными проблемами может столкнуться пользователь. Использование кросс-браузерных инструментов. Инструменты вполне могут быть учтены при планировании кросс-браузерного тестирования. К примеру, BrowseEmAll – это инструмент, позволяющий посмотреть на разные графические движки в одном и том же окне. Пользователи, конечно, не будут пользоваться этим браузером, но этот инструмент идеален для быстрой проверки отображения общих элементов, верстки, и отсутствующего содержания. Browserstack – это облачный инструмент, запускающий различные браузеры внутри одной браузерной сессии. Их плагин позволяет получить доступ к сайтам внутри вашей корпоративной сети или файерволла. Он превосходно подходит для тестирования специфических версий браузера, которые могут быть недоступны на тестовой машине.браузер запускается в виртуальном режиме. Если продукт или приложение опирается на специфический движок (например, WebGL), такая виртуализация не даст вам представления о поведении системы в реальном браузере. Для прогона автотестов в разных браузерах существует масса инструментов. К примеру, Selenium Grid позволяет хранить браузерные сессии и запускать в них автотесты. Если поддержка серверов для Selenium Grid финансово невыгодна, можно обратиться к Sauce Labs – она предоставляет облачное решение для хорошего тестового покрытия различных браузеров. Справочные материалы:
|