Разработчики Thoughtbot поделились опытом превращения автоматизированного ИИ-решения для исправления flaky-тестов в рабочий инструмент. Хотя Claude предложил базовый скрипт за одну ночь, потребовалось еще две недели доработки, чтобы система стала надежной и пригодной для реального продакшена. Кейс наглядно демонстрирует разрыв между прототипом от LLM и готовым инженерным решением.
Процесс начался с генерации кода, который должен был автоматически перезапускать упавшие тесты и анализировать их логи. Однако первая итерация оказалась слишком поверхностной: модель не учитывала специфические зависимости проекта и особенности CI-конвейера. Инженерам пришлось вручную интегрировать ИИ-логику в существующую инфраструктуру тестирования, настраивая контекст и фильтрацию ошибок.
Основная сложность заключалась в обработке «шумных» данных и минимизации ложноположительных срабатываний. Команде пришлось внедрить дополнительные слои валидации, чтобы ИИ не помечал как «исправленные» тесты, которые просто случайно прошли со второй попытки. В итоге решение стало частью процесса разработки, сократив время на ручной анализ нестабильных тестов, но потребовав значительных усилий по настройке промптов и пайплайнов.
Ключевые факты
- Исходный прототип был создан с помощью Claude за одну ночь.
- Доведение решения до рабочего состояния заняло две недели инженерной работы.
- Основная проблема заключалась в интеграции ИИ в существующий CI-процесс и фильтрации ложных срабатываний.
- Итоговый инструмент автоматизирует перезапуск и анализ причин падения тестов, снижая нагрузку на разработчиков.
- Кейс подчеркивает необходимость глубокой доработки «быстрых» ИИ-решений для их интеграции в сложные программные системы.