Каким образом можно проверять наличие визуальных дефектов в автоматическом режиме?

У меня возник вопрос по поводу автоматизированного тестирования графического интерфейса веб-приложений. Мы знаем, что тестирование функциональности можно выполнять с помощью таких инструментов, как Selenium и его аналоги. Однако как можно автоматизировать тестирование визуальной части сайта? Существуют ли методы для автоматического обнаружения и выявления искаженных элементов, неправильного отображения форм, несоответствующих шрифтов и других визуальных несостыковок? Кроме того, есть ли способы, отличные от ручного тестирования, для этой задачи?
  • 7 октября 2024 г. 10:44
Ответы на вопрос 3
Автоматическое тестирование визуальных дефектов веб-приложений действительно представляет собой важную задачу, и для ее решения существуют различные подходы и инструменты. Вот несколько методов и инструментов, которые можно использовать для автоматического тестирования визуальной части сайтов:

### 1. **Скриншотное тестирование**

Используя этот метод, вы можете делать скриншоты веб-страниц в разных состояниях и сравнивать их с эталонными изображениями. Например:

- **BackstopJS**: Этот инструмент позволяет проводить визуальное тестирование, сравнивая текущие скриншоты с ожидаемыми. Он интегрируется с различными фреймворками и позволяет выполнять тесты на различных устройствах и разрешениях экрана.

- **Percy**: Платформа для визуального тестирования, которая автоматически проверяет изменения во внешнем виде интерфейса при изменении кода. Percy интегрируется с CI/CD процессами и может автоматически генерировать визуальные сравнения.

### 2. **Визуальная регрессионная проверка**

Визуальная регрессия — это метод, при котором изменения в коде проверяются на предмет их влияния на внешний вид приложения. Инструменты, которые можно использовать:

- **Applitools Eyes**: С помощью ИИ этот инструмент может обнаруживать визуальные дефекты и регрессию. Он поддерживает множество языков программирования и фреймворков.

- **Visual Regression Tracker**: Это open-source решение для отслеживания визуальной регрессии, позволяющее вам управлять скриншотами и вручную их сравнивать.

### 3. **Сравнение DOM и стилей**

Эти инструменты анализируют DOM-представление страницы и применяемые CSS-стили для выявления несоответствий:

- **Gemini**: Это инструмент для визуального тестирования, который позволяет осуществлять сравнение страниц на основе DOM и стилей.

### 4. **Кроссбраузерное тестирование**

Различные инструменты могут помочь вам проверить, как ваш интерфейс отображается в разных браузерах и устройствах:

- **BrowserStack**: Платформа для тестирования, которая позволяет выполнять кроссбраузерное тестирование и фиксировать визуальные несовпадения.

- **Sauce Labs**: Еще одна платформа для кроссбраузерного тестирования, которая обеспечивает различные устройства и браузеры.

### 5. **Метрики доступности и отзывчивости**

Использование инструментов, которые автоматически проверяют доступность и отзывчивость интерфейса:

- **axe-core**: Этот инструмент может помочь в выявлении проблем с доступностью, которые могут быть связаны с визуальными несоответствиями.

- **Lighthouse**: Этот инструмент Google может анализировать производительность и доступность приложения, включая визуальные аспекты.

### Заключение

Автоматическое тестирование визуальной части веб-приложений — это сложная задача, но современные инструменты предоставляют множество возможностей для ее реализации. Выбор инструмента зависит от ваших конкретных требований, бюджета и процесса разработки. Для наилучших результатов может быть полезным комбинировать несколько инструментов и методов.
Это называется скриншотные тесты. Собственно также в селениуме делаете прогон, а в ключевых точках делаете скриншоты. 
Потом сравниваете с эталоном / предыдущим прогоном.
Готовые инструменты для этого уже есть
Делать скриншоты страницы на каждое изменение и сравнивать до и после, далее вырезать изменившиеся части и их в отчете показывать для визуального контроля уже человеком.
Похожие вопросы