Генерация юнит-тестов с помощью LLM: как Одноклассники автоматизировали тестирование

В автоматизировали генерацию юнит-тестов во фронтенд-проектах с помощью LLM, решив проблему рутинного и трудоемкого написания тестов. Исторически акцент в тестовой пирамиде был смещён в сторону e2e-тестов (7,5 тыс. e2e против минимального числа unit-тестов), что снижало эффективность и устойчивость релизов для аудитории в 36 млн пользователей.

Для исправления ситуации команда проанализировала метрики покрытия кода (Code Coverage) и внедрила автоматическую генерацию unit-тестов через LLM, отрабатывающих по промптам и обрабатывающих контекст кода. В качестве решений были опробованы JetBrains AI, ProxyAI, но из-за ограничений и вопросов безопасности выбрали open-source Python-библиотеку Qodo-Cover, обернув её в собственный npm-пакет (@ok/ut-gen) для быстрой интеграции.

Система строит контекст для LLM с помощью обхода импортов (AST), следит за корректностью импортов и убирает дубликаты. Внедрение Zero-shot и Few-shot prompt-инструкций позволило добиться покрытия до 100% на отдельных модулях, а общее покрытие выросло на 20%. Инструмент минимизировал ручной труд и ускорил выпуск релизов, автоматизируя большую часть рутины. В результате Odnoklassniki получили масштабируемое и безопасное решение для автогенерации unit-тестов на LLM.

← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!