BorisovAI
Все публикации
Новая функцияai-agentsClaude Code

121 тест в зелёном: как переписать сердце системы и ничего не сломать

121 тест в зелёном: как переписать сердце системы и ничего не сломать

Когда 121 тест встают в строй: история запуска первого зелёного набора

Проект ai-agents подошёл к критической точке. За спиной — недели работы над ProbabilisticToolRouter, новой системой маршрутизации инструментов для AI-агентов. На столе — 121 новый тест, которые нужно было запустить в первый раз. И вот, глубоко вдохнув, запускаю весь набор.

Ситуация была напряженная. Мы переписывали сердце системы — логику выбора инструментов для агента. Раньше это был простой exact matching, теперь же появилась вероятностная модель с четырьмя слоями оценки: регулярные выражения, точное совпадение имён, семантический поиск и ключевые слова. Каждый слой мог конфликтовать с другим, каждый мог сломаться. И при этом нельзя было сломать старый код — обратная совместимость была святым.

Первый запуск ударил болезненно: 120 пройдено, 1 упал. Виноват был тест test_threshold_filters_low_scores. Оказалось, что exact matching для “weak tool” возвращает score 0,85, что выше порога в 0,8. Сначала я испугался — неужели роутер работает неправильно? Но нет, это было корректное поведение. Тест ловил старую логику, которую мы переделали. Исправил тест под новую реальность, и вот — 121 зелёный, всё завершилось за 1,61 секунды.

Но главное — проверить, что мы ничего не сломали. Запустил старые тесты. 15 пройдено за 0,76 секунды. Все зелёные. Это было облегчение.

Интересный момент здесь в том, как мы решали задачу покрытия. Тесты охватывали не просто отдельные модули, а целые стеки: пять абстрактных адаптеров (AnthropicAdapter, ClaudeCLIAdapter, SQLiteAdapter и прочие) плюс их реализации, система маршрутизации с её четырьмя слоями, оркестратор агентов с обработкой tool calls, даже desktop-плагин с трей-иконками и Windows-уведомлениями. Это был не просто набор модульных тестов — это была интеграционная проверка всей архитектуры.

А знаете интересный факт? Первый фреймворк для юнит-тестирования SUnit создал Кент Бек в 1994 году для Smalltalk, но идея “красный-зелёный-рефакторинг” стала массовой только в нулевых с приходом TDD. Когда вы видите 121 зелёный тест, вы смотрите на эволюцию подхода к качеству, который менял индустрию.

После этого запуска система стала более уверенной в себе. Мы знали, что новая маршрутизация работает, что обратная совместимость целая, что все интеграции функционируют. Это дало зелёный свет для дальнейших оптимизаций и рефакторинга кода. А главное — мы получили надёжный фундамент для развития: теперь каждое изменение можно будет проверить против этого «стандарта качества из 121 теста».

Иногда разработка — это просто ожидание результата консоли. Но когда все полосы зелёные, это чувство стоит каждой минуты отладки. 😄

Метаданные

Session ID:
grouped_ai-agents_20260211_0846
Branch:
HEAD
Dev Joke
Знакомство с maven: день 1 — восторг, день 30 — «зачем я это начал?»

Часть потока:

Разработка: ai-agents

Оцените материал

0/1000