Проверка интерфейса, которая учится один раз: снимите страницу и объясните проблему словами — дальше агент сам проверяет это правилами и сравнивает каждую сборку с одобренным эталоном
Агент тестирования — программа для проверки вашего сайта, приложения или внутренней системы, которую вы запускаете на своём сервере. Вы открываете страницу в Chrome, снимаете экран и объясняете словами, что не так, — ИИ превращает замечание в правило: маленькую проверку, которая дальше выполняется прямо в браузере. Правило работает быстро, ничего не стоит и находит ту же проблему на всех похожих страницах, поэтому чем дольше продукт работает, тем меньше в нём ИИ и тем дешевле обходятся проверки. Из правил и записанных действий собираются тесты, тесты запускаются по расписанию — выполнять их умеет встроенный исполнитель прямо в контейнере, поэтому отдельный компьютер с Chrome не обязателен, — каждый шаг оставляет снимок-доказательство, одинаковые ошибки склеиваются в одну проблему, а сломавшиеся проверки агент чинит сам. А ещё продукт сравнивает каждую сборку с одобренным эталоном: сдвиг вёрстки, поменявшийся цвет или пропавший блок видно на картинке, хотя описать их правилом трудно. Отличия рассматривает человек — ИИ лишь подсказывает. А если чего-то не хватает, продукт можно расширить своими скриптами на Python: файл в папке проекта становится шагом теста, движком сравнения или обработчиком завершённого прогона — пересобирать продукт для этого не нужно. А найти нужное — правило, экран, проблему или файл знаний — помогает поиск по всему приложению: начните печатать в поле боковой панели.
Экраны одной кнопкой: снимок видимой области, адрес, заголовок и структура страницы сохраняются сразу
Замечания словами прямо на странице: «кнопка не видна на тёмном фоне» — и всё, без формулировок для машины
ИИ превращает одно замечание в проверку целого класса проблем, а не одной страницы
Проверка — обычный код на JavaScript, работает в браузере без обращения к модели: быстро и бесплатно
Навык test-manager идёт в комплекте и сам подсказывает агенту, как писать проверки
Копилка знаний проекта: агент дописывает в неё, что уже понял про ваш интерфейс
Типы экранов: вход, оплата, кабинет — проверки привязываются к нужным страницам
Съёмка для визуального теста: снимок всей страницы, стабилизация от мерцания и маски на динамические области
Эталоны под контролем: у каждого хранится история версий и видно, кто и когда одобрил
Скрипты расширяют продукт без пересборки: файл Python в папке проекта становится шагом теста, движком сравнения или обработчиком прогона
Прогоны из коробки: встроенный исполнитель в контейнере выполняет тесты без отдельного Chrome и дополнения
Действия: записал один раз вход и переходы — и повторяем на любом запуске
Действия словами: опишите, что нужно сделать, — агент напишет скрипт, вы прогоните и подтвердите
Тесты: последовательность шагов «открыть страницу → выполнить действия → проверить правила»
Расписание: проверка каждый день или в выбранные дни недели и часы
Доказательства: снимок экрана у каждого шага, включая неудачные
Проблемы: одинаковые ошибки склеиваются в одну строку с числом повторов
Сводка «что требует внимания»: значки по проектам и переход в нужную вкладку
Сборки вместо одиночных запусков: у каждой есть ветка, режим и состояние ревью
Разбор проблем сборки: одинаковые падения собираются в группы с понятным пояснением
Тест целиком из скриптов идёт без браузера: проверки адресов API, баз данных и файлов работают по расписанию как обычные тесты
Поиск по всему приложению: проекты, экраны, правила, тесты, проблемы, скрипты, знания и файлы документации — в одном поле ⌘K
Автоисправление: сломался скрипт проверки — агент починит сам и пометит «нужна проверка»
Внешний доступ: список проблем и смена статуса по ключу — для агента-программиста
Чат с ИИ-агентом внутри продукта: разборы, правки, вопросы по интерфейсу
Живая страница: модель может посмотреть и потрогать вашу открытую вкладку Chrome
Всё на вашем сервере: один контейнер, данные и снимки остаются у вас
Проекты — папки под контролем git: проверки, действия и тесты — обычные файлы
Лицензия нужна только для отправки сообщения агенту: проверки и запуски работают всегда
Вердикт всегда за человеком: ИИ только подсказывает, а одобряет или отклоняет ревьюер
Покрытие и карта приложения: видно, что уже защищено проверками, а что ещё нет
Каждый запуск скрипта оставляет запись в журнале: точка подключения, источник, статус и хвост ошибки при сбое
В простое тихо: фоновые задачи просыпаются по событию, а не по таймеру, а через 15 минут простоя память возвращается серверу
Автоисправление включается галочкой в тесте: агент чинит проверки не всегда, а когда это разрешено — по умолчанию выключено
Экраны: как страница выглядит сейчас
Экран — это снимок видимой области плюс адрес, заголовок и структура страницы
Снимок делается одной кнопкой из панели дополнения и сохраняется сразу — без промежуточного «Проверить и сохранить»
У каждого снимка видно, откуда он пришёл: снят вручную, сделан действием или получен в запуске
Картинка хранится в базе вместе с проектом — файлы не разбрасываются по диску
Замечания словами — и проверка готова
Замечание пишется обычным текстом: «кнопка не видна на тёмном фоне» — без формулировок для машины
Нажмите «Вызвать агента» — в чат подставится отчёт: замечания, снимок, знания и правила проекта
В ответ приходит готовое правило — маленькая проверка, которую можно тут же прогнать
Замечание не разбирается само: разбор запускает человек, чтобы ничего не тратилось впустую
Проверки без ИИ: быстро, бесплатно, каждый день
Правило — небольшой скрипт, который браузер выполняет сам, без обращения к модели
Проверка укладывается в пару секунд, поэтому её можно гонять при каждом выпуске
Чем больше правил накоплено, тем меньше остаётся работы для ИИ — проверки дешевеют
Правило видит контраст, размеры, количество и текст элементов, а не только «элемент есть»
Действия: вход, оплата, кабинет — записал и повторяй
Включите запись в панели, работайте как обычно, остановите — шаги покажутся списком
Пароли в файлы не попадают: вместо значения подставляется переменная из настроек проекта
Действие можно описать словами — агент напишет скрипт, вы прогоните и подтвердите
Шаги выполняются по одной строке, без циклов и условий, — так переходы между страницами переживаются надёжно
Тесты: шаги и порядок
Тест — последовательность: открыть страницу, выполнить действие, проверить правила
Шаги собираются в интерфейсе, каждый проверяется при сохранении: сослаться на удалённое действие не получится
У шага есть «продолжать при ошибке» — для тех мест, где одна ошибка не должна останавливать всё
Тест живёт обычным файлом в папке проекта и попадает в вашу историю правок
У шага может быть объявление съёмки — тогда запуск теста превращается в сборку со сравнением с эталонами
Запуски: очередь, исполнитель, доказательства
Запуск попадает в очередь на сервере, и его забирает первый свободный исполнитель: встроенный (безоконный, в контейнере) или Chrome с дополнением в режиме исполнителя — так называется настройка, при которой проверки выполняет именно этот браузер
Очередь не ждёт: оба исполнителя стоят у её двери, и запущенный прогон забирается за миллисекунды, а не через несколько секунд
Гонки не бывает: прогон забирает кто-то один. У встроенного исполнителя и Chrome — разные семейства эталонов, поэтому движок выбирают на проект; первая сборка на другом движке придёт как новые эталоны
Каждый шаг оставляет снимок экрана и результаты проверок — видно, где именно всё сломалось
Вердикт понятный: «пройдено», «проблемы» или «ошибка» — и в каждом случае есть чем подтвердить
Если исполнитель пропал, запуск через полчаса помечается ошибкой и сам не продолжается
Запуск с визуальными проверками называется сборкой: у неё есть ветка, режим и состояние ревью
Расписание: проверка каждое утро
Недельная сетка: выберите дни недели и время, когда тест должен запускаться сам
Время считается по часовому поясу проекта — тому, который вы указали при создании
Пропущенные моменты не догоняются: выключенный компьютер — это пропущенный запуск, следующий сработает в своё время
Для расписания нужен постоянно включённый компьютер с Chrome — надёжность проверок равна надёжности этой машины
Проблемы: одна проблема — одна строка
Проблемы появляются только из запусков: ручные проверки их не создают, это доказательства, а не проблемы
Одинаковые ошибки склеиваются по отпечатку — проект, правило и обезличенный текст ошибки
В карточке видно последний снимок, элемент, из какого запуска пришло и сколько раз повторялось
Закрытая проблема открывается сама только при повторе той же ошибки, а «игнорируется» — уже никогда
Автоисправление: агент чинит свои проверки
Если сломалась проверка, а не сайт, агент чинит её сам: получает код, текст ошибки и снимок
Исправление применяется сразу и помечается «исправлено агентом — нужна проверка»
Расход под контролем: одно исправление на цель в час и не больше пяти на проект в сутки
Ответ «это не поломка проверки, страница правда изменилась» — законный результат, тогда ничего не меняется
Автоисправление — это галочка в самом тесте, и по умолчанию она выключена: агент чинит проверки только там, где вы разрешили; поручить ему починку вручную можно в любой момент
Сводка «что требует внимания»
Сверху общие цифры: открытые проблемы, проблемные запуски за неделю, неподтверждённые правила
Отдельно — исправления без проверки и разборы замечаний, которые не удались или ждут очереди
По каждому проекту только непустые значки; клик открывает проект сразу на нужной вкладке
Цифры обновляются сами, без перезагрузки страницы — и видно, когда следующий запуск по расписанию
Дополнение Chrome: панель прямо на странице
Дополнение ставится в один клик из «Настройки → Тестирование UI»: сервер записывает папку с готовой привязкой
Панель — перетаскиваемое окно 380×560 на странице: снять экран, проверить правила, записать действие
Проект определяется по адресу страницы — выбирать вручную ничего не нужно
Честно: дополнение приватное, в каталоге Chrome его нет; после обновления сервера папку перезаписывают и нажимают «Обновить» в браузере
Дополнение больше не обязательно для прогонов: их выполняет встроенный исполнитель. Chrome с дополнением нужен для ручной съёмки экранов, записей и прогонов в живом окне
Закрытая панель выгружается из памяти: пока она свёрнута, страница ничего не держит, а отметка связи идёт только при открытой панели
Проблемы уходят агенту-программисту
По ключу доступны список и карточка проблемы, включая ссылку на снимок, и смена статуса
Агент-программист читает проблемы, правит код сайта и закрывает их сам
Без ключа адреса отвечают «не настроено», с неправильным ключом — отказ; вход по паролю здесь не действует
Ключ — как пароль: выдавайте его только тем, кому доступ действительно нужен
Чат с ИИ-агентом и живая страница
Чат подключается внешним Pastukhov Agent: адрес и ключ указываются при установке
В чате агент разбирает замечания, пишет действия и чинит сломанные проверки
Модель может посмотреть вашу открытую вкладку — через адрес живой страницы или общий язык браузерных команд
Свои вкладки она закрыть не может: закрываются только те, которые открыл сам агент
Проекты и файлы: всё под git, всё на своём сервере
Проект — папка на диске: настройки, правила, действия, тесты и замечания обычными файлами
Всё это под git: историю правок видно, любую версию можно вернуть, папку можно перенести на другой сервер
Правки в историю вносит человек — сервер сам этого не делает, поэтому вы решаете, что и когда зафиксировано
Ежедневный поток (снимки, запуски, проблемы, расписания) живёт в базе: его слишком много для файлов
Визуальные проверки: сравнение с эталоном
Шаг теста заранее объявляет, что снимать: часть экрана, всю страницу, компонент или элемент
Отдельно снимаются структура страницы, стили, дерево доступности и порядок адресов — они ловят то, чего не видно на картинке
Одинаковые снимки сравниваются по отпечатку и не стоят ничего: ИИ подключается только к непонятным случаям
Итог сборки понятен: визуально успех, требуется ревью, провал или нет данных
Проверка сборок и просмотр различий
Сборка — запуск с визуальными проверками: у неё есть ветка, режим и состояние ревью
Режимы: полная (все проверки), умная (только затронутые), сравнительная (две среды рядом)
Отличия сравнивают четырьмя способами: рядом, наложением, слайдером и переключателем
У каждого шага остаётся снимок и результаты проверок — видно, где именно сломалось
Ревью: вердикт всегда за человеком
Доска проверки собирает всё, что ждёт решения, и задачи на исправление
Одобрить, запросить правки, отклонить или поставить задачу — решает человек; ИИ только подсказывает
Массово принимаются только те отличия, безопасность которых доказали строгие правила
Роли и отметка дизайн-ревьюера: кто смотрит, кто решает и кто одобряет общие компоненты
Журнал аудита помнит, кто, что и на каком основании одобрил
Разбор сборок и починка тестов
Одинаковые падения собираются в группы по причине — не нужно разбирать одно и то же десять раз
У каждой группы есть пояснение словами; если ИИ недоступен, продукт честно показывает сухую статистику
Подсказка ИИ и вердикт человека хранятся отдельно и никогда не подменяют друг друга
Починка теста проходит через человека: предложение, одобрение, проверочная сборка, откат точного прежнего файла
Покрытие, карта и агентские кампании
Инвентарь «поверхность × состояние»: у каждой строки видно, покрыта ли она тестами и кто ответственный
Решение «сознательно не покрыто» требует причины и даты пересмотра — пустых клеток не бывает
Обход строит карту приложения прямо из браузера; маршруты можно раскрасить по фактическому покрытию
Агентская кампания ведёт от разведки до итога и останавливается, пока человек не одобрит план
CI, отчёт и общие ссылки
Статус сборки читается из конвейера: ожидание, провал или успех — и всегда из живых данных
Честно: сборка без проверок — это провал, а не автоматическое прохождение
Инструмент viz даёт те же факты из командной строки, а коды выхода — это и есть договор с конвейером
Отчёт печатается вместе с блоком границ — что визуальная проверка ловит, а что нет
Общие ссылки показывают сборку без входа: только чтение, с водяным знаком и сроком действия
Эксплуатация и здоровье системы
Реестр исполнителей: онлайн, деградация или офлайн и пометка, кто это — встроенный исполнитель или Chrome с дополнением; любого можно поставить на паузу
Очередь показывает, что ждёт: сборки, задачи ИИ, кампании починки, обходы, доставки уведомлений
Лестница бюджетов 50/80/100 предупреждает и блокирует, но никогда не выставляет счёт
Проверки здоровья объясняют, что не работает и что исправить; при сбое отключаются только массовые действия
Перенос данных двигает настройки и эталоны между серверами, но никогда не переносит учётные данные
В простое ничего не тратится: фоновые задачи просыпаются по событию, а через 15 минут простоя память возвращается серверу; снимок памяти и принудительное освобождение — на странице операций
Настройки визуального тестирования
Восемь пресетов приложений: один выбор вместо тридцати полей
Пороги и слои проверок: визуальный, текст, сеть, консоль, доступность, дизайн-токены, производительность, адреса
Стабилизация съёмки включена по умолчанию: заморозка времени, отключение анимаций, ожидание шрифтов и тишины сети
Ветки, автоодобрение безопасных отличий и бюджеты ИИ настраиваются под проект
Чек-лист настройки ведёт от подключения агента до первого вердикта и честно показывает, что уже сделано
Скрипты: продукт растёт без пересборки
Скрипт — обычный файл с кодом на Python в папке проекта: рядом с правилами и действиями, хранится вместе с проектом
Правку видно сразу: следующий запуск берёт новую редакцию файла — перезапускать продукт не нужно
Пригодится там, где браузера мало: проверить адрес API, посчитать строки в базе, заглянуть в файл, отправить уведомление по итогам прогона
Скрипт можно подключить шагом теста, движком сравнения снимков, классификатором отличий или обработчиком завершённого прогона
У каждой попытки одна запись в журнале: что запускалось, чем закончилось и сколько длилось; выключатель проекта и общий выключатель останавливают всё разом
Встроенный исполнитель: проверки работают сразу
Тесты выполняются без отдельного компьютера
Раньше проверки по расписанию требовали компьютера с Chrome и нашим дополнением — сервер сам страницы не открывал. Теперь встроенный исполнитель живёт прямо в контейнере: это безоконный браузер, который выполняет тесты сразу после установки. Отдельная машина с Chrome больше не нужна, и расписание работает, даже когда никто не сидит за компьютером.
В простое продукт ничего не держит запущенным: исполнитель просыпается, когда в очереди появляется прогон, и закрывается, когда работа закончена. Дополнение Chrome при этом никуда не пропадает — оно остаётся для ручной съёмки экранов, записей действий, замечаний на живой странице и прогонов, которые нужно видеть глазами.
Прогоны и снимки визуальных сборок выполняются без отдельного компьютера и без дополнения
В простое исполнителя нет вовсе: он запускается к прогону и завершается, когда работа закончена
Только безоконный: посмотреть прогон глазами нельзя — для этого оставляйте Chrome с дополнением
Снимки образуют отдельное семейство эталонов — движок выбирают на проект и не смешивают
Виден в списке исполнителей отдельной строкой, с паузой и возобновлением, как у Chrome
Поиск по всему приложению
Одно поле вместо долгих переходов
Когда проектов и правил становится много, искать нужное руками долго. Поиск живёт в боковой панели и ищет по всему приложению: правила и действия, тесты, экраны и замечания, проблемы, скрипты, знания проекта и файлы документации. Достаточно начать печатать — находки появляются по мере ввода, сгруппированные по видам, а совпадения по заголовку идут первыми.
Строка результата ведёт туда, где живёт находка: правило откроет нужную вкладку, проблема — свою карточку, а файл знаний покажется прямо в окне, без перехода. Секреты и учётные данные в поиск не попадают — искать по ним нельзя даже случайно.
Одно поле в боковой панели ищет по всему приложению — проектам, экранам, правилам, тестам, проблемам, скриптам и файлам
Горячие клавиши: ⌘K (или Ctrl+K) открывает поиск, Enter — переход к первой находке, Esc — очистка
Находки сгруппированы по видам, совпадения по заголовку — первыми
Файлы знаний и документации открываются на просмотр прямо над находками, без перехода
Русские и английские слова ищутся одинаково; секреты и учётные данные не индексируются