DiffTester: Ускорение генерации модульных тестов для диффузионных LLM через выявление повторяющихся паттернов
DiffTester: Accelerating Unit Test Generation for Diffusion LLMs via Repetitive Pattern
September 29, 2025
Авторы: Lekang Yang, Yuetong Liu, Yitong Zhang, Jia Li
cs.AI
Аннотация
Разработка программного обеспечения в значительной степени опирается на обширное модульное тестирование, что делает эффективность автоматизированной генерации модульных тестов (Unit Test Generation, UTG) особенно важной. Однако большинство существующих языковых моделей (LLM) генерируют тестовые случаи по одному токену за каждый прямой проход, что приводит к неэффективной UTG. Недавно появились диффузионные языковые модели (dLLM), предлагающие перспективные возможности параллельной генерации и демонстрирующие значительный потенциал для эффективной UTG. Несмотря на это преимущество, их применение в UTG всё ещё ограничено явным компромиссом между эффективностью и качеством тестов, поскольку увеличение количества токенов, генерируемых на каждом шаге, часто приводит к резкому снижению качества тестовых случаев. Чтобы преодолеть это ограничение, мы представляем DiffTester — фреймворк для ускорения, специально разработанный для dLLM в UTG. Основная идея DiffTester заключается в том, что модульные тесты, нацеленные на один и тот же метод, часто имеют повторяющиеся структурные паттерны. Динамически выявляя эти общие паттерны с помощью анализа абстрактного синтаксического дерева в процессе генерации, DiffTester адаптивно увеличивает количество токенов, создаваемых на каждом шаге, без ущерба для качества выходных данных. Для обеспечения всесторонней оценки мы расширяем оригинальный бенчмарк TestEval, который был ограничен Python, добавляя дополнительные языки программирования, включая Java и C++. Многочисленные эксперименты на трёх бенчмарках с двумя репрезентативными моделями показывают, что DiffTester обеспечивает значительное ускорение при сохранении покрытия тестов. Более того, DiffTester хорошо обобщается на различные dLLM и языки программирования, предоставляя практичное и масштабируемое решение для эффективной UTG в разработке программного обеспечения. Код и данные доступны публично по адресу https://github.com/wellbeingyang/DLM4UTG-open.
English
Software development relies heavily on extensive unit testing, which makes
the efficiency of automated Unit Test Generation (UTG) particularly important.
However, most existing LLMs generate test cases one token at a time in each
forward pass, which leads to inefficient UTG. Recently, diffusion LLMs (dLLMs)
have emerged, offering promising parallel generation capabilities and showing
strong potential for efficient UTG. Despite this advantage, their application
to UTG is still constrained by a clear trade-off between efficiency and test
quality, since increasing the number of tokens generated in each step often
causes a sharp decline in the quality of test cases. To overcome this
limitation, we present DiffTester, an acceleration framework specifically
tailored for dLLMs in UTG. The key idea of DiffTester is that unit tests
targeting the same focal method often share repetitive structural patterns. By
dynamically identifying these common patterns through abstract syntax tree
analysis during generation, DiffTester adaptively increases the number of
tokens produced at each step without compromising the quality of the output. To
enable comprehensive evaluation, we extend the original TestEval benchmark,
which was limited to Python, by introducing additional programming languages
including Java and C++. Extensive experiments on three benchmarks with two
representative models show that DiffTester delivers significant acceleration
while preserving test coverage. Moreover, DiffTester generalizes well across
different dLLMs and programming languages, providing a practical and scalable
solution for efficient UTG in software development. Code and data are publicly
available at https://github.com/wellbeingyang/DLM4UTG-open .