Я — Анна Круглова, в Диасофт занимаюсь развитием инструментов автоматизации тестирования на базе искусственного интеллекта. В нашей компании процесс создания тестов для API и событий полностью автоматизирован с помощью ИИ. В этой статье расскажу, как это устроено и как изменился подход к работе тестировщиков.
Особенности сложных API и событий
В Диасофт для проектирования микросервисов и межсервисных взаимодействий используется low-code платформа Digital Q.Archer. На её основе генерируется код сервисов.
Раньше автоматизировали только автотесты для стандартных CRUD-операций. Они типовые и легко шаблонизируются. А вот тесты для API и событий с уникальной бизнес-логикой приходилось писать вручную.
Проблема в том, что CRUD-операции охватывают лишь малую часть функциональности продукта. Основная ценность — в сложных бизнес-процессах: расчёте процентов, применении комиссий, обработке лимитов и других нетривиальных сценариях. Ручное тестирование сотен таких кейсов требовало огромных ресурсов и замедляло релизы.
Сложные API и события не просто передают данные — они реализуют бизнес-операции. Их логика может затрагивать множество объектов, запускать цепочки событий и требовать строгой последовательности вызовов. Проверки должны учитывать не только статус ответа, но и то, как изменилось состояние системы и соответствует ли это бизнес-правилам.
ИИ пишет тест как опытный разработчик: как так получилось?
Мы не просто подключили ИИ к процессу — мы интегрировали его в технологический конвейер платформы Digital Q.DevOps. Теперь ИИ — это полноценный Агент автотестирования, встроенный в платформу.
Процесс построен как чёткая последовательность шагов. ИИ (в виде LLM) выступает как «интеллектуальное ядро», но его действия строго контролируются платформой. Ключевой принцип — итеративность и обратная связь от реального окружения. ИИ не просто генерирует код, а сразу запускает его, анализирует ошибки и улучшает тест. Это делает его похожим на опытного разработчика, который умеет отлаживать свои решения.
Три особенности Digital Q.DevOps, которые помогают контролировать ИИ:
Единый источник правды — Digital Q.Archer: Все контракты API и событий хранятся в одной системе. Оркестратор берёт оттуда актуальные спецификации, исключая работу с устаревшими данными.
Встроенная инфраструктура запуска: В платформе уже есть сервисы для выполнения автотестов на тестовых стендах. Агент ИИ использует их через HTTP, передавая сгенерированный код. Это позволяет безопасно запускать код в изолированной среде (пода).
Доменные правила (Domain Rules): Оркестратор проверяет, соответствует ли сгенерированный код внутренним стандартам — например, использованию базового класса SpecBase. Если нет — отправляет тест на доработку с указанием ошибок.
Как это работает
Процесс состоит из нескольких этапов, где тестировщик и ИИ взаимодействуют через Оркестратор:
- Старт: Тестировщик выбирает сервис и описывает тест-кейс на бизнес-языке.
- Получение контрактов: Оркестратор загружает Swagger (API) и JSON-схемы событий, парсит и фильтрует их.
- Отбор эндпоинтов и событий: Оркестратор передаёт LLM отфильтрованные эндпоинты и тест-кейс. LLM определяет релевантные сущности. Процесс повторяется для событий. Пользователь видит и подтверждает выбор.
- Генерация: Оркестратор передаёт LLM отобранные эндпоинты, события, тест-кейс и доменные правила. LLM генерирует код автотеста на Groovy.
- Валидация кода: Оркестратор проверяет соответствие кода стандартам. При ошибках — возвращает ИИ на исправление.
- Запуск и итеративная отладка: Код запускается на стенде. При падении теста — ошибка возвращается в LLM. Цикл повторяется до стабильного прохождения (обычно 2–3 итерации).
- Финальная обработка и публикация: После успеха Оркестратор добавляет служебную информацию, сохраняет статистику и коммитит тест в Git-репозиторий продукта.
Язык кода автотеста
ИИ генерирует код на Groovy — языке, близком к Java. Это удобно, так как микросервисы в Диасофт в основном на Java. Однако архитектура не привязана жёстко к языку — при необходимости можно адаптировать её под Python или Java.
Отдельно про тестирование событий
Тестирование событий сложнее API: нужно инициировать действие, перехватить событие в брокере и проверить его структуру. ИИ справляется благодаря формализованным описаниям из Digital Q.Archer. Сервис запуска умеет подписываться на топики и валидировать сообщения. ИИ генерирует код, использующий эти возможности.
Как ИИ меняет работу тестировщиков
Происходит сдвиг от написания кода к управлению требованиями на бизнес-языке.
Что теперь делает тестировщик?
- Готовит инструкцию для ИИ (тест-кейс). Чем точнее описан сценарий (например, «Создать вклад, начислить проценты по ставке 5%, проверить итоговую сумму»), тем быстрее и точнее ИИ сгенерирует тест. Это требует глубокого понимания продукта и умения формализовать бизнес-логику.
- Верифицирует готовый автотест. Тестировщик теперь — «приёмщик» результата. Важно не то, как написан код, а соответствует ли он исходному сценарию. Только специалист с пониманием бизнес-логики может это оценить.
Советы по работе в новых условиях
При составлении тест-кейса:
- Описывайте бизнес-процесс, а не последовательность действий в UI или вызовов API.
- Указывайте цели и ожидаемый результат.
- Используйте терминологию предметной области — она понятна и бизнес-аналитикам, и ИИ.
При проверке сгенерированного теста:
- Сосредоточьтесь на логике проверок (assertions).
- Убедитесь, что ИИ правильно понял, что именно нужно проверить.
- Оцените, достаточно ли проверок для подтверждения сценария.
- Не вычитывайте код построчно — оценивайте его смысловое соответствие задаче.
ИИ не заменяет тестировщика. Он снимает рутину по написанию кода, позволяя сосредоточиться на главном — глубоком анализе качества продукта с точки зрения бизнеса. Требования к квалификации растут, но и ценность работы возрастает в разы.