---
title: "Визуальное тестирование"
id: "2055"
type: "page"
slug: "visual"
published_at: "2026-09-28T14:12:05+00:00"
modified_at: "2026-09-28T14:59:36+00:00"
url: "https://pastukhov.com/agents/test/docs/visual"
markdown_url: "https://pastukhov.com/agents/test/docs/visual.md"
excerpt: "Правила проверяют конкретные вещи: есть ли на странице кнопка, тот ли у неё текст. А…"
---

# Визуальное тестирование

[https://pastukhov.com/agents/test/docs/visual.md](https://pastukhov.com/agents/test/docs/visual.md)

Правила проверяют конкретные вещи: есть ли на странице кнопка, тот ли у неё текст. А сдвиг вёрстки, поменявшийся цвет или пропавший блок так не заметишь — зато это сразу видно, если сравнить картинки. На этом и построена визуальная проверка: снимок страницы сравнивается с образцом, который человек однажды одобрил.

## Снимок шага

Шаг теста объявляет, что именно снимать. Видов картинки четыре:

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

Отдельно бывают снимки без картинки — текстовые. Они хранят структуру страницы, её стили, дерево доступности (то, что «видят» программы чтения с экрана) и последовательность адресов. Такие снимки ловят то, чего на картинке не видно: например, кнопка стоит на месте, а ссылка под ней ведёт уже на другой адрес.

## Эталон

Снимок сравнивают не с предыдущим снимком, а с **эталоном** — образцом, который человек однажды одобрил. У эталона есть история версий: видно, кто и когда его одобрил и из какой сборки он взялся.

Первая сборка заводит эталоны сама — иначе сравнивать было бы не с чем. Поэтому первая сборка нового шага не считается провалом: она просто запоминает, как всё выглядит сейчас. Подробнее — в разделе [Эталоны](/agents/test/docs/baselines)
.

## Сначала дешёвое, потом ИИ

Сравнение идёт по порядку — от самого дешёвого способа к самому дорогому:

1. **Отпечаток содержимого.** По картинке считается короткий код, и если коды совпали, содержимое одинаковое. На этом сравнение заканчивается: пиксели не считаются, ИИ не вызывается, деньги не тратятся.
2. **Строгое сравнение.** Коды не совпали — картинки сравниваются попиксельно, а текстовые снимки построчно.
3. **Разбор ИИ.** Только на непонятных случаях подключается ИИ: он смотрит на отличие и пробует объяснить словами, что изменилось.

Последнее слово всё равно за человеком. ИИ может поднять важность отличия, но никогда не может её понизить и не может одобрить снимок вместо вас.

Отсюда и экономика: повторные прогоны почти ничего не стоят — одинаковые картинки отсеиваются по отпечатку, а платить приходится только за разбор новых непонятных случаев.

## Что такое сборка

Запуск с визуальными проверками называется **сборкой**. У неё есть ветка (метка, к которой привязаны эталоны), режим и состояние ревью — что человек уже посмотрел, а что ещё ждёт решения. Режимов три: полная сборка прогоняет все объявленные проверки, умная — только затронутые, сравнительная — сравнивает две среды между собой. Подробнее — в разделе [Проверка сборок](/agents/test/docs/verify)
.

## Что видит человек

У сборки есть одна строка-вердикт. Смотреть на неё проще, чем разбирать список отличий:

- **Визуально: успех** — все отличия разобраны, ничего не осталось.
- **Визуально: требуется ревью** — есть отличия, которые должен посмотреть человек.
- **Визуально: провал** — что-то сломалось: проверки не сработали или сборка упала.
- **Визуально: нет данных** — снимков нет вообще. Обычно это значит, что шаги теста ещё не объявляют, что снимать.

## Честные границы

Что визуальная проверка **не** делает — чтобы не было завышенных ожиданий:

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

Дальше: как устроена вкладка «Проверка» — список сборок, режимы и состояния ревью — в разделе [Проверка сборок](/agents/test/docs/verify)
.

[← Оглавление документации](/agents/test/docs)
