# Кроссбраузерное тестирование (Cross-browser testing)

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

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

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

Вы должны попытаться протестировать его на реальных физических устройствах, где это возможно. Если у вас нет средств для тестирования всех этих различных комбинаций браузеров, операционных систем и устройств на физическом оборудовании, вы также можете использовать эмуляторы (эмулировать устройство с помощью программного обеспечения на вашем настольном компьютере) и виртуальные машины (программное обеспечение, которое позволяет вам эмулировать несколько комбинаций операционной системы/программного обеспечения на вашем настольном компьютере). Это очень популярный выбор, особенно в некоторых случаях - например, Windows не позволяет одновременно устанавливать несколько версий Windows на одну машину, поэтому использование нескольких виртуальных машин часто является единственным вариантом. Наконец, вы можете стать умнее при тестировании, используя инструменты аудита или автоматизации; это разумный выбор по мере того, как ваши проекты становятся больше, поскольку выполнение всего этого тестирования вручную может занять очень много времени. Вы можете настроить собственную систему автоматизации тестирования (популярным приложением является Selenium), которая может, например, загружать ваш сайт в различных браузерах. Вы также можете пойти дальше, если хотите. Существуют коммерческие инструменты, такие как Sauce Labs, Browserstack, LambdaTest, TestingBot и CrossBrowserTesting, которые делают это за вас, не беспокоясь о настройке, если вы хотите вложить деньги в тестирование.

Также часто бывает полезно протестировать предварительные версии браузеров.

**Cross-browser Testing Checklist**

* Функциональное тестирование;
* Специальные возможности (accessibility);
* Проверка CSS;
* Проверка HTML или XHTML;
* Проверка страницы с включенным JavaScript и без него;
* Функциональность Ajax и JQuery;
* Проверка размера шрифта;
* Макет страницы в разных разрешениях;
* Все изображения и выравнивание;
* Разделы верхнего и нижнего колонтитула;
* Выравнивание содержимого страницы по центру, по левому или правому краю;
* Стили страницы;
* Форматы даты;
* Специальные символы с кодировкой HTML;
* Функция увеличения и уменьшения масштаба страницы.

Источники:

* [Кроссбраузерное тестирование: цели и задачи](https://luxhard.com/krossbrauzernoe-testirovanie-tseli-i.html)
* [Top 10 Cross Browser Testing Tools In 2022 (Latest Ranking)](https://www.softwaretestinghelp.com/best-cross-browser-testing-tools-to-ease-your-browser-compatibility-testing-efforts/)

Доп. материал:

* [Why Cross Browser Testing is Important](https://www.mindfulqa.com/cross-browser-testing/)
* [Ликбез по браузерам для Windows в 2020](https://habr.com/ru/post/518834/)
* [Comparison of web browsers](https://en.wikipedia.org/wiki/Comparison_of_web_browsers)
* [Live cross browser testing. Running Microsoft Edge and Android with Selenoid](https://www.youtube.com/watch?v=ZwnbuLCZYU4)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/vidy-metody-urovni-testirovaniya/krossbrauzernoe-testirovanie-cross-browser-testing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
