Генеративные ИИ-инструменты для написания юнит-тестов позволяют компаниям экономить время. В Goldman Sachs с помощью системы Diffblue Cover за сутки создали 3,2 тыс. тестов для Java-приложения, что, по оценкам компании, заменило 268 рабочих дней ручного труда. Несмотря на скорость, отношение разработчиков к технологии остается неоднозначным.
Одной из проблем является закрепление ошибок в коде как корректного поведения. Исследование Университета Торонто показало, что ИИ-модели закрепляли баги в 3,84% тестов. Показатель удалось снизить до 2,69%, если при генерации использовать описание метода в docstring вместо анализа исходного кода.
Анализ более 20 тыс. тестовых наборов выявил наличие «test smells» — признаков плохой архитектуры тестов. Чаще всего встречается «assertion roulette», когда в одном методе много проверок без описаний. Кроме того, нейросети покрывают обработку исключений лишь в 7–23% случаев, тогда как классический инструмент EvoSuite достигает 93%.
Ученые из ETH Zurich выяснили, что универсальные агенты для написания кода могут быть эффективнее специализированных систем. В бенчмарке из почти 2 тыс. задач агент SWE-agent успешно справился с 15,9% кейсов, в то время как специализированный инструмент LIBRO показал результат 14,1%.
Эксперты рекомендуют относиться к результатам работы ИИ как к черновикам, требующим проверки. Среди приемов улучшения качества — разделение ролей между разными агентами для кода и тестов, а также мутационное тестирование, позволяющее проверить, обнаружит ли сгенерированный набор тестов намеренно внесенный в программу баг.






