Новости
Автоматическая генерация тестов по состоянию исполнения с применением больших языковых моделей
Аннотация
В программных системах с длительным жизненным циклом, как правило, накапливается значительное количество высокоуровневых интеграционных тестов, которые исторически служат наиболее прагматичным средством проверки функциональности. Перспективным направлением представляется автоматическая генерация на их основе модульных тестов для отдельных компонентов («вырезка» модульных тестов, test carving), что позволяет повысить точность локализации дефектов и обеспечить быструю обратную связь при внесении изменений. В статье предложен метод автоматической генерации модульных тестов на основе состояния исполнения программы. В ходе выполнения существующего высокоуровневого теста фиксируются состояние целевого объекта, аргументы вызова, возвращаемый результат и взаимодействия с зависимостями. На основе собранных данных строится дескриптор исполнения, по которому затем синтезируется модульный тест: сначала детерминировано формируется предварительный код, после чего большая языковая модель выполняет его рефакторинг и стилистическую адаптацию. Итоговый код теста строится большой языковой моделью, что отличает предложенный метод от существующих инструментов вырезки модульных тестов. Описана реализация метода для JVM-программ на основе интерфейса отладчика JDI, ориентированная на работу с крупными проектами. Экспериментальная оценка проведена на 70 парах «тест/целевой метод» из семи открытых Java-проектов. Сравнивались тесты, построенные ИИ-агентом без данных исполнения, по дескриптору исполнения и путём рефакторинга предварительного кода, а также сам предварительный код, взятый в качестве итогового теста без рефакторинга. ИИ-агент с доступом к данным, собранным при помощи предложенного метода, построил модульные тесты, которые в среднем воспроизводят с теми же аргументами и результатом 86 % вызовов целевого метода из исходного теста, а при дополнительном учёте значений полей целевого объекта – 63%. Для тестов, сгенерированных агентом без доступа к данным исполнения, эти показатели составили 72% и 43% соответственно.
Ключевые слова
Издание
Труды Института системного программирования РАН, том 38, вып. 6, часть 2, 2026, стр. 67-92.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(6)-26
Для цитирования
Полный текст статьи в формате pdf
Вернуться к содержанию тома