Кампания — это работа «под ключ»: агенту говорят, что должно быть покрыто, и он сам проходит весь путь от разведки сайта до готовых проверок. Человек вмешивается не на каждом шаге, а только там, где нужно решение: одобрить план, ответить на вопрос, принять тест.
Зачем это нужно: иначе пришлось бы вручную решать, какие проверки завести, писать их и следить за порядком. Кампания берёт эту рутину на себя, но оставляет за человеком главные решения — намеренно.
Фазы
Кампания идёт по фазам, и в интерфейсе видно, на какой она сейчас:
- Предпроверка — подготовка: проверяется, что кампанию вообще можно запустить.
- Разведка — агент выясняет, что в приложении есть: проходит по сайту через подключённый браузер.
- План — агент решает, какие проверки нужны, чтобы закрыть пробелы покрытия.
- Согласование плана — кампания останавливается и ждёт человека.
- Генерация тестов — по одобренному плану готовятся тесты, каждый как предложение.
- Прогон — тесты запускаются.
- Починка — если что-то сломалось, предлагается исправление.
- Итог — сводка: что сделано, что осталось и что ждёт решения.
По ходу кампанию можно поставить на паузу — тогда браузер освобождается — или остановить совсем; остановка требует причины. В проекте идёт только одна кампания за раз: сначала нужно разобраться с живой, а не запускать ещё одну.
Остановка на согласовании плана
Главный шов кампании — согласование плана. Когда план готов, кампания не идёт дальше сама: она держится в браузере и ждёт, пока человек одобрит план, отправит его на доработку с замечанием или отклонит. Для отклонения пояснение обязательно, для доработки заметка попадает в следующий проход.
Пока кампания ждёт, окно браузера занято — так и задумано: человек видит то же, что видит агент, и может проверить его выводы. Пауза, наоборот, браузер отпускает. Дальше без человека кампания не проходит — это защита от того, чтобы агент сам придумал, что и как проверять, и сам это утвердил.
Сгенерированный тест не одобряется сам
Каждый сгенерированный тест попадает не в рабочий набор, а на проверку — как предложение. Файл теста записывается только после того, как человек его примет; до этого в проекте ничего не меняется. Решение человека отмечается в журнале аудита: видно, кто и когда принял тест.
Сама кампания принять тест за человека не может, и внешние инструменты тоже: одобрение доступно только людям.
Бюджеты кампании
Дорогая часть кампании — обращения к ИИ, поэтому у неё есть потолок расходов. Потолок проверяется на границах фаз — перед планированием, генерацией и починкой, — а не в середине работы. Если лимит исчерпан, кампания останавливается на границе и задаёт вопрос: поднять потолок и продолжить или закрыть кампанию.
В проекте задаются и другие пределы: число попыток починки на тест и на сборку, число кампаний починки одновременно. Они устроены так же: ограничивают расход, но ничего не одобряют — ни план, ни тест.
Открытые вопросы
Иногда агенту не хватает сведений: нужен доступ или решение по спорному месту. Тогда он задаёт вопрос прямо в кампании и ждёт ответа. Такие вопросы не теряются: они видны в сводке «что требует внимания» и в списке вопросов, ждущих человека; просроченные отмечены.
Ответ возвращает кампанию к работе, и история ответов сохраняется — по ней видно, какие решения уже принимали.
Рейтинг
Есть необязательный рейтинг участников. По умолчанию он выключен — включается отдельным переключателем в настройках проекта. Когда включён, он считает только то, что принесло пользу: подтверждённые дефекты и одобренные изменения. Токены, число тестов и активность в рейтинг не идут никогда — иначе выгодно было бы гнать объём, а не находить настоящие проблемы.
Очки получают только люди: подтверждают дефекты и ставят диагнозы именно они. Сезон — скользящие 90 дней, то есть старые заслуги постепенно уходят из счёта.
Дальше: как проверять одни и те же сценарии на разных стендах и не хранить пароли в файлах проекта, — в разделе Среды, учётные данные и переменные.