
Привет, Хабр!
В этой статье поделюсь интересными и иногда любопытными результатами сравнения современных языковых моделей (LLM) на задаче синтеза тестов.
Все измерения проводились на внутреннем бенчмарке Explyt, который включает в себя как закрытые, так и open source проекты на Java и Kotlin, со Spring и без.
В качестве метрик используются как формальные: покрытие строк тестируемого класса/метода, число запускаемых тестов, число компиляционных ошибок, мутационное покрытие, так и LLM-as-judge метрики: сложность/полезность/детализация тестовых сценариев, соответствие тестового метода сценарию на естественном языке и тд.
Эксперименты проводились поверх Explyt Test плагина для IntelliJ IDEA. К нему подключались модели — на бенчмарке измерялось качество синтеза тестов.
Для более точной оценки мы попарно сравниваем модели друг с другом.
GPT-4o vs GPT-4.1
Начнем с хорошего базового варианта gpt-4o от OpenAI и сравним ее с новой моделью gpt-4.1.
На нашем внутреннем бенчмарке, согласно LLM-as-judge метрикам, gpt-4.1 пишет более сложные, детальные и полезные сценарии в отличие от своей предшественницы — gpt-4o, которая в основном тестирует happy-path сценарии.
Также gpt-4.1 лучше имплементирует запрошенное в сценариях поведение, метрика показывает 0,86 vs 0,66 (c p-value = 0,0006).
По формальным метрикам — среднее покрытие кода (coverage) и число запускаемых тестовых классов — модели показали себя примерно одинаково, без статистически значимого отличия.
Новая модель gpt-4.1 дешевле, но она тратит больше токенов, поэтому ее стоимость на нашем бенчмарке близка к gpt-4o.
OpenAI o4-mini vs GPT-4.1
Посмотрим теперь на рассуждающую модель от OpenAI в сравнении с обычными LLM.
OpenAI o4-mini превосходит gpt-4.1 по числу запускаемых тестов (31 vs 25) и среднему покрытию кода (0,637 vs 0,391 c p-value=0,01).
Также за счет цепочек рассуждений у o4-mini медиана числа выходных токенов в 3,5 раза больше, чем у gpt-4.1. Как следствие, на бенчмарке цена у рассуждающей модели выросла примерно в 1,36 раза.
DeepSeek-R1-0528/V3 vs GPT-4.1
Теперь перейдем к большим open-weight моделям от китайского стартапа DeepSeek.
Сразу отметим, что самое приятное у китайских моделей — это цена при неплохом качестве. DeepSeek-v3 и DeepSeek-R1-0528 на нашем бенчмарке потратили примерно в 8-9 раз меньше $, чем OpenAI gpt-4.1 (~0,4$ vs 3,46$).
По качеству же мы не можем сказать, что DeepSeek R1 или v3 значимо отличаются от gpt-4.1. По формальным метрикам обе модели (v3 и R1-0528) даже превосходят в абсолютном значение gpt-4.1, но не статистически значимо. По следованию инструкциям есть недочеты у DeepSeek, например, иногда (в 6% случаев) они синтезируют отличное число тестов от указанного пользователем в промпте.
В целом, это достойный вариант, учитывая, что вы можете при желании дообучить веса модели и развернуть их в контуре компании.
Qwen3-32B w/ reasoning vs Qwen2.5-coder
Среди открытых и менее требовательных к GPU ресурсам вариантов, мы сравнили две модели из семейства Qwen от Alibaba — старый специализированный на коде Qwen2.5-coder-32B против Qwen3-32B, который запускался со включенной опцией enable-reasoning
.
На удивление general purpose модель Qwen3 не сильно хуже по метрикам, чем специализированный Qwen2.5-coder. Стоит отметить, что тестовые сценарии у Qwen3 получаются более детальными и полезными по сравнению с Qwen2.5-coder. Но по формальным метрикам, он в абсолютных значениях проигрывает кодовой модели, хотя и не статически значимо. Из неприятного, Qwen3 иногда зацикливается при синтезе ответа, что не случается с Qwen2.5-coder.
С включенным режимом рассуждений Qwen3 не превосходит кодовую модель, при этом ожидаемо больше тратит токенов на ответ, примерно в 2 раза, и соответственно, замедляет время синтеза ответа (медиана количества синтезируемых токенов — 18114 vs 9664).
В целом, учитывая, что Qwen3 — модель общего назначения, результаты бенчмарка довольно неплохие. С другой стороны, это сравнение показывает, что пока не время списывать со счетов предыдущую кодовую модель от Alibaba.
Заключение
Мы продолжим сравнивать новые модели на нашем бенчмарке и будем делиться с вами своими наблюдениями. Если интересует какое-то конкретное сравнение, напишите в комментариях.
В нашей команде я являюсь руководителем AI направления и отвечаю за улучшение и контроль качества тестового плагина Explyt Test. Буду рад вашей обратной связи в GitHub Issues и чате.
shelomitsky2011
Прошу прощения, может я недостаточно внимательный, но итогов в виде прямого сравнения всех моделей не хватает