Разделы

Цифровизация

Исследователи из R&D-центра «Т-Технологий» представили новые методы оценки и ускорения генерации модульных тестов с помощью больших языковых моделей

Исследователи R&D-центра «Т-Технологий» представили TAM-Eval и RM-RF — два метода, которые дополняют друг друга и позволяют быстро оценить качество автоматически созданных тестов, не запуская их на реальном коде и не проходя долгий процесс сборки. Это позволяет сократить время тестирования и снизить нагрузку на инфраструктуру. Об этом CNews сообщили представители «Т-Банка».

TAM-Eval — это воспроизводимая система оценки того, как большие языковые модели справляются с задачами сопровождения тестов в репозиториях: создают новые тесты, исправляют сломанные и обновляют существующие при изменении кода. RM-RF — модель предварительной экспертизы, которая до сборки и запуска проекта предсказывает, выполнится ли сгенерированный большой языковой моделью тест и улучшит ли он качество проверки кода.

Суть открытия

Юнит-тесты — это живой актив, который меняется в зависимости от кода, но зачастую исследовательские подходы оценивают генерацию тестов в отрыве от реального процесса разработки и изменений репозитория. TAM-Eval решает именно эту проблему: он моделирует сценарии сопровождения тестов на уровне тест-файлов с учетом контекста репозитория. При этом он оценивает качество без ручных эталонных ответов, а через реальный прогон тестов, изменение покрытия кода и метрики мутационного тестирования.

Чтобы улучшать генерацию тестов, нужно много итераций, но полноценная проверка требует значительных ресурсов. RM-RF снимает это ограничение. Модель обучается заранее без запуска кода предсказывать три ключевых показателя качества: выполнится ли тест корректно, увеличит ли он покрытие и улучшит ли способность тестов выявлять ошибки. Это позволяет быстро ранжировать варианты и отсеивать слабые до прогона в реальном пайплайне.

В результате TAM-Eval позволяет сравнивать подходы к задачам сопровождения тестов в реальных проектах, а RM-RF ускоряет циклы генерации и улучшения тестов, снимая зависимость от инфраструктуры сборки и запуска.

В TAM-Eval сформирован воспроизводимый набор из 1539 сценариев сопровождения тестов на Python, Java и Go в 192 репозиториях. При этом на этапе отбора было отсеяно 94% кандидатов, чтобы оставить только проекты, которые стабильно запускаются и подходят для сравнения.

RM-RF обучен и протестирован на 22285 примерах. Модель достаточно точно отличает полезные тесты от бесполезных (среднией показатель точности — около 0,69 по совокупной метрике качества), а порядок, в котором модель ранжирует тесты по качеству, совпадает с результатами реального запуска проекта. В результате проверка, которая при полном запуске проекта могла бы занять несколько дней, на этапе предварительной оценки без сборки и выполнения кода сокращается до нескольких часов.

Уникальность метода

Новые разработки снимают два типичных ограничения автоматической генерации тестов с помощью больших языковых моделей — нереалистичность экспериментальных постановок и высокую стоимость обратной связи:

Александр Мугла, «Росатом»: Мы развернули в приграничном регионе собственную аппаратную базу полного цикла
Александр Мугла, «Росатом»: Мы развернули в приграничном регионе собственную аппаратную базу полного цикла Бизнес

– TAM-Eval устанавливает стандартизированную и приближенную к реальности систему оценки сопровождения юнит-тестов на уровне тест-файлов и репозитория. Проверка строится на объективных инженерных показателях и не требует ручных эталонных ответов.

– RM-RF может использоваться как модель оценки при обучении больших языковых моделей для генерации модульных тестов, в том числе как reward-модель при обучении с подкреплением. Поскольку она позволяет оценивать качество тестов без сборки и запуска проектов, обучение можно масштабировать и использовать больше разнообразных программных сред. По сути, это быстрый механизм предварительной оценки, который помогает отбирать тесты, не запуская полный цикл сборки и тестирования.

Область применения

Обе разработки ориентированы на использование в реальных инженерных процессах. При практическом применении такие инструменты могут улучшать опыт разработки, сокращая время на написание тестов и повышая качество программного кода за счет более полного покрытия кода тестами.

Методы применимы в отраслях, где требуется автоматизация процесса разработки программного обеспечения: в финтехе, электронной коммерции, телекоммуникациях, а также в промышленности, энергетике и транспорте.

Андрей Бурилов, ИТ-директор Мосбиржи: Финансовые операции станут частью кода
Андрей Бурилов, ИТ-директор Мосбиржи: Финансовые операции станут частью кода цифровизация

Станислав Моисеев, руководитель Центра исследований и разработок «Т-Технологий»: «Эти методы делают работу больших языковых моделей с тестами более предсказуемой и эффективной для реальных процессов разработки. TAM-Eval задает стандарт сравнения моделей и агентов в сопровождении тестов по измеримым метрикам, а RM-RF позволяет отсеивать слабые тесты и ранжировать сильные без дорогостоящего запуска пайплайна на каждом шаге.

Простой пример — медицинская диагностика человека. Полноценное обследование для каждого надежно, но дорого и долго, поэтому сначала делают быстрый чекап организма, чтобы обнаружить конкретные проблемы со здоровьем. По этой логике RM-RF — это предварительный скрининг качества тестов до запуска, а TAM-Eval — полноценная оценка по инженерным метрикам».