Никита Осипов
Т-Банк
Доклад основан на реальном опыте написания автотестов на Java, Spring и JUnit 5 с помощью AI-агента OpenCode на базе модели Qwen 3.5 397B, развернутой в закрытом контуре, — путь воспроизводим и с более мощными моделями по внешнему API.
Написание автотестов на Java + Spring — это не только логика тестов, но и постоянный однотипный код: конфигурационные классы, бины, геттеры/сеттеры, одинаковые структуры тестовых методов для разных эндпоинтов. QA-инженер тратит значительную часть времени не на проверку бизнес-логики, а на воспроизведение одних и тех же шаблонов.
Первая реакция на появление LLM — попытка решить это одним запросом: «напиши мне все тесты для этого сервиса». Результат предсказуем: код не компилируется, импорты неверные, Spring-контекст не поднимается, тесты не учитывают структуру проекта. Это создает иллюзию, что инструмент бесполезен, — хотя проблема в подходе, а не в инструменте.
В докладе разбирается путь от этой точки до системной работы с агентом. Фундамент системы — источник правды: агент автоматизирует решения, а не принимает их; тестовые сценарии живут в TMS, проверяет и утверждает их человек, а каждый сгенерированный тест привязан к своему кейсу.
Дальше — три принципа. Первый — управление памятью: как передать агенту структуру репозитория, конфигурации Spring и базовые классы тестов, чтобы генерация велась в рамках реального проекта, а не абстрактных примеров, — и как поддерживать эти знания свежими, потому что устаревшая память опаснее отсутствующей. Второй — гранулярность задач: почему запрос «напиши тесты для сервиса» дает плохой результат, а разбиение до уровня одного метода кардинально меняет качество — особенно критично для JUnit 5; она же не дает ревью превратиться в узкое место. Третий — контроль контекстного окна: как падает качество генерации по мере роста контекста сессии и как агент начинает «забывать» структуру проекта.
Отдельно рассматриваются параллельная работа — одновременная генерация тестов для нескольких Spring-сервисов в независимых сессиях — и доверие к сгенерированным тестам: лестница независимых проверок от ревью и статического анализа до «агента-вредителя», мутационного подхода, где вторая LLM пытается испортить код так, чтобы тесты остались зелеными.
Центральный кейс — полностью интеграционные тесты через Kafka, которые агент написал, сам прогнал и сам починил: ни одной ручной правки в логике, консоль в кадре.
Доклад рассчитан на бэкенд-инженеров по автоматизации тестирования уровня мидл и выше, пишущих автотесты на Java. Опыт работы с AI-агентами не требуется — достаточно понимания структуры Spring-проекта и базового знакомства с JUnit 5.
Доклад будет особенно полезен тем, кто уже пробовал использовать LLM для генерации тестов и разочаровался в результате.
Т-Банк