Ответы на вопросы после митапа по AI

Pavel Veinik

Ответы на вопросы после митапа по AIКраткая история IT: От ткацкого станка до нейросетей

Тестирование и QA с AI

- А как фронт тестировать кстати?

Тестирование фронтенда с помощью визуальных мультимодальных моделей стало стандартом индустрии. Вместо хрупких селекторов на основе DOM-дерева современные подходы используют прямое понимание интерфейса через зрение.

Детальный разбор механики работы и архитектуры: Мультимодальные LLM наподобие Claude 3.5 Sonnet или GPT-4.5 Vision принимают на вход скриншоты или непрерывный видеопоток приложения. Агент размечает элементы интерфейса с помощью ограничивающих рамок и предсказывает целевые координаты для взаимодействия. Архитектура строится на связке headless-браузера Playwright и AI-агента, использующего паттерн ReAct. Агент анализирует текущий стейт страницы, планирует следующий шаг, выполняет действие через протокол Chrome DevTools и валидирует результат по новому скриншоту. Для сложных проверок верстки применяется пиксельное сравнение через эмбеддинги изображений, что исключает ложные срабатывания при минимальных сдвигах CSS.

Конкретные технологии и лучшие практики:

  • Мультимодальные фреймворки: Использование браузерных агентов на базе Skyvern или Browser-Use для навигации без селекторов.
  • Интеграция с браузером: Библиотека ZeroStep позволяет писать тесты на естественном языке прямо внутри кода Playwright.
  • Локальные SLM: Для базовых проверок на этапе CI/CD используются компактные vision-модели уровня Qwen2-VL или Llama-3-Vision, запущенные через vLLM для экономии ресурсов.
  • Промптинг: Установка нулевой temperature для детерминированности тестов и передача дерева доступности Accessibility Tree вместе со скриншотом для точности.

Что может пойти не так и как этого избежать:

  • Галлюцинации координат: Модель может промахнуться мимо кнопки. Решается передачей размеченного скриншота Set-of-Mark, где каждому интерактивному элементу присвоен уникальный номер.
  • Замедление пайплайнов: Вызовы тяжелых API значительно увеличивают время прогона. Избежать этого помогает агрессивное кэширование повторяющихся шагов.

Ссылки на статьи, документацию, репозитории:


- Создание агентов в автоматизации тестирования - пока есть теория, но нет практики

Агенты для автоматизации тестирования уже перешли из разряда теорий в production-ready инструменты. Компании активно внедряют оркестрацию множества агентов для полного цикла QA.

Детальный разбор механики работы и архитектуры: Современный подход базируется на мультиагентных фреймворках CrewAI или AutoGen, где каждый агент имеет строгую специализацию. Обычно выделяются три роли: Planner, Executor и Validator. Planner анализирует требования и формирует план тестирования по паттерну Plan-and-Solve. Executor пишет скрипты на Python или TypeScript, используя инструменты для запуска тестов в изолированных контейнерах. Validator анализирует логи ошибок, трейсы и скриншоты, чтобы понять причину падения. Для долгосрочной памяти применяется GraphRAG. Агенты сохраняют информацию о зависимостях в проекте, чтобы при изменении одного компонента точечно запускать проверки в связанных модулях.

Конкретные технологии и лучшие практики:

  • Оркестрация: CrewAI для декларативного описания агентов-тестировщиков и их задач.
  • Фреймворки генерации: DSPy для автоматической оптимизации промптов генерации тестов на основе метрик покрытия кода.
  • Модели: Claude 3.5 Sonnet для написания кода тестов и анализа логов благодаря огромному окну контекста.
  • Хранение знаний: Neo4j в связке с LangGraph для управления состояниями агентов и хранения графа зависимостей тестовых артефактов.

Что может пойти не так и как этого избежать:

  • Зацикливание агентов: Executor и Validator могут бесконечно переписывать один и тот же тест. Решается жестким ограничением max_loops в настройках графа выполнения LangGraph.
  • Устаревание контекста: Агент может использовать старые версии библиотек. Важно добавлять в его арсенал инструмент для поиска актуальной документации через Tavily API.

Ссылки на статьи, документацию, репозитории:


- e2e тестирование

Сквозное e2e тестирование исторически было самым нестабильным и дорогим видом проверок. Внедрение генеративного AI в 2026 году радикально изменило этот процесс, сделав его самовосстанавливающимся.

Детальный разбор механики работы и архитектуры: Самовосстанавливающиеся e2e тесты строятся на динамическом анализе контекста выполнения. Когда традиционный фреймворк Cypress или Selenium сталкивается с ошибкой ненайденного элемента, процесс не прерывается. Вместо этого управление передается LLM. Модель получает текущий DOM, сетевые логи и скриншот экрана. С помощью эмбеддингов и векторного поиска агент ищет в базе знаний предыдущие успешные выполнения этого шага. Сопоставляя старый и новый контексты, модель понимает, что изменился ID элемента или структура верстки. Агент генерирует новый локатор на лету, возобновляет выполнение теста и отправляет патч с исправлением в репозиторий.

Конкретные технологии и лучшие практики:

  • Авто-восстановление: Интеграция AI-плагинов напрямую в Playwright через инструменты наподобие Healenium.
  • Выбор моделей: GPT-4.5 Turbo с функцией структурированного вывода Structured Outputs для гарантированного получения валидных JSON с новыми локаторами.
  • Оптимизация контекста: Использование алгоритмов обрезки DOM-дерева, чтобы уместить структуру страницы в лимиты LLM и снизить стоимость токенов.
  • Настройки: Использование параметра top_k равным единице для детерминированного выбора лучшего элемента-кандидата.

Что может пойти не так и как этого избежать:

  • Ложное восстановление: Агент может кликнуть на другой похожий элемент, сломав бизнес-логику теста. Необходимо внедрять строгие ассерты на конечное состояние интерфейса.
  • Утечка данных: Передача DOM-дерева в облачное API может скомпрометировать чувствительные данные. Решается маскированием данных на уровне браузера перед отправкой в LLM.

Ссылки на статьи, документацию, репозитории:


- Как максимально использовать ресурс AI для автоматизации тестирования

Максимальная отдача от AI в QA достигается путем интеграции агентов на каждом этапе жизненного цикла разработки, превращая AI из помощника в полноценного участника процесса непрерывной интеграции.

Детальный разбор механики работы и архитектуры: Полноценная архитектура включает несколько взаимодействующих подсистем. Первая система — агент статического анализа. Он работает на этапе создания Pull Request, анализирует код с помощью RAG по кодовой базе и генерирует юнит-тесты для непокрытых ветвей логики. Вторая система — генератор синтетических данных. Используя тонко настроенные SLM, система генерирует реалистичные, но анонимизированные тестовые наборы данных. Третья система — агент хаоса. Это автономный бот, который использует обучение с подкреплением для поиска уязвимостей. Он случайным образом взаимодействует с API и UI, стараясь вызвать ошибки сервера, и при успехе автоматически формирует подробный баг-репорт.

Конкретные технологии и лучшие практики:

  • Синтетические данные: Использование фреймворка Gretel AI или локальных инстансов Ollama для массовой генерации тестовых датасетов.
  • Генерация тестов: Интеграция CodiumAI Qodo напрямую в IDE разработчика и в пайплайны GitHub Actions.
  • Мультимодальный анализ багов: Отправка видеозаписей упавших тестов в Gemini 2.5 Pro, которая способна нативно анализировать видео кадр за кадром и указывать причину падения.
  • Тонкая настройка: Использование KV-cache оптимизаций во vLLM для быстрого скоринга тысяч сгенерированных тест-кейсов.

Что может пойти не так и как этого избежать:

  • Взрывное количество тестов: AI может нагенерировать тысячи бессмысленных проверок, увеличивая время сборки. Требуется внедрение агента-ревьюера для фильтрации тестов.
  • Нестабильность генерации: Из-за высокой температуры генерации данные могут получаться невалидными. Всегда закрепляйте схему вывода через JSON Schema.

Ссылки на статьи, документацию, репозитории:


- Скрытное ab-тестирования со стороны вендора.

Скрытое тестирование или теневое изменение поведения базовых моделей со стороны вендоров — одна из главных проблем при построении надежных AI-систем. Вендоры постоянно обновляют или добавляют скрытые системные промпты, что ломает автоматизацию.

Детальный разбор механики работы и архитектуры: Для противодействия скрытым изменениям используется архитектурный паттерн непрерывной оценки в рамках LLMOps. Он заключается в создании теневого контура тестирования. Система оркестрации LangSmith или Phoenix перехватывает запросы к API вендора. Параллельно с основным потоком, небольшая выборка эталонных датасетов регулярно прогоняется через текущую версию API. Результаты сравниваются с эталонными ответами через паттерн LLM как судья или через детерминированные метрики BLEU и ROUGE. Если система детектирует статистически значимое падение качества, срабатывает алерт и трафик автоматически переключается на резервную модель.

Конкретные технологии и лучшие практики:

  • Платформы LLMOps: LangSmith, Arize Phoenix или Promptfoo для непрерывного мониторинга ответов моделей.
  • Метрики: Использование фреймворка RAGAS для оценки фактичности и релевантности.
  • Роутинг: Семантические роутеры, которые умеют балансировать нагрузку и переключаться на резервные open-source модели при деградации проприетарного API.
  • Фиксация версий: Всегда указывать точную версию модели в API, например gpt-4-0613 вместо gpt-4, хотя даже это не дает полной защиты от скрытых изменений квантования.

Что может пойти не так и как этого избежать:

  • Ложные срабатывания: Модель-судья может ошибаться в оценке и блокировать нормальную работу системы. Рекомендуется использовать ансамбль из нескольких судей и настраивать пороги срабатывания.
  • Дороговизна оценки: Постоянный прогон золотых тестов стоит денег. Для экономии следует использовать быстрые и дешевые модели уровня Claude 3.5 Haiku или Llama-3-8B.

Ссылки на статьи, документацию, репозитории: