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.

Ссылки и действия