Learning to Generate Unit Test via Adversarial Reinforcement Learning
2508.21107v1
cs.SE, cs.AI
2025-09-02
Авторы:
Dongjun Lee, Changho Hwang, Kimin Lee
Резюме на русском
## Контекст
В современной программировании unit testing является ключевым практикой, обеспечивающей систематическую оценку программных продуктов, разработанных людьми или генерируемых с помощью технологий глубокого обучения. Однако автоматизация создания высококачественных unit tests остается сложной задачей, требующей новых подходов. Авторы работы предлагают UTRL — фреймворк, использующий методы reinforcement learning для обучения моделей глубокого обучения на генерацию высококачественных unit tests. Это решение адресует проблему недостатка методов, позволяющих глубоким моделям генерировать эффективные unit tests, и может сократить время и усилия, потраченные на ручное создание тестов.
## Метод
UTRL основывается на использовании двух моделей глубокого обучения, работающих в адверсарном режиме: Unit Test Generator (UTG) и Code Generator (CG). UTG обучается максимизировать discrimination reward, который определяется степенью того, насколько его тесты могут выявить ошибки в CG. CG, в свою очередь, максимизирует code reward, отражающий степень получения правильных решений, прошедших тесты UTG. Обучение происходит в рекуррентном режиме, что позволяет многократно улучшать качество генерируемых tests и solutions.
## Результаты
Эксперименты проводились на подборе данных с разным уровнем сложности, включая простые и сложные задачи. Результаты показали, что Qwen3-4B, обученная с помощью UTRL, генерирует unit tests, которые показывают более высокую точность и качество в сравнении с supervised fine-tuning на human-written tests. Более того, Qwen3-4B с UTRL показала превосходство по качеству generated tests в параллельных экспериментах с GPT-4.1, указывая на высокую эффективность UTRL в обучении LLMs для unit testing.
## Значимость
UTRL может применяться в области автоматизации тестирования и рефакторинга кода, повышая качество разработки и сокращая время, потраченное на ручное создание тестов. Также он открывает новые возможности для использования LLMs в процессе development, улучшая reliability и robustness программных решений. Этот подход может иметь потенциал для широкого применения в промышленной программной инженерии и создании самообучающихся тестовых систем.
## Выводы
UTRL представляет собой перспективный подход к автоматизации создания unit tests, позволяя LLMs построить высококачественные тесты, которые более точно отражают реальные требования. Необходимы будут дополнительные исследования для оптимизации решений, интеграции UTRL в существующие toolchains и расширения его функциональности для поддержки более широкого спектра задач в программировании.
Abstract
Unit testing is a core practice in programming, enabling systematic
evaluation of programs produced by human developers or large language models
(LLMs). Given the challenges in writing comprehensive unit tests, LLMs have
been employed to automate test generation, yet methods for training LLMs to
produce high-quality tests remain underexplored. In this work, we propose UTRL,
a novel reinforcement learning framework that trains an LLM to generate
high-quality unit tests given a programming instruction. Our key idea is to
iteratively train two LLMs, the unit test generator and the code generator, in
an adversarial manner via reinforcement learning. The unit test generator is
trained to maximize a discrimination reward, which reflects its ability to
produce tests that expose faults in the code generator's solutions, and the
code generator is trained to maximize a code reward, which reflects its ability
to produce solutions that pass the unit tests generated by the test generator.
In our experiments, we demonstrate that unit tests generated by Qwen3-4B
trained via UTRL show higher quality compared to unit tests generated by the
same model trained via supervised fine-tuning on human-written ground-truth
unit tests, yielding code evaluations that more closely align with those
induced by the ground-truth tests. Moreover, Qwen3-4B trained with UTRL
outperforms frontier models such as GPT-4.1 in generating high-quality unit
tests, highlighting the effectiveness of UTRL in training LLMs for this task.
Ссылки и действия
Дополнительные ресурсы: