Серия «Разработка с ИИ: полный цикл», часть 5. Платформа GoRunWithAI.
Тестирование — этап, на котором ИИ-разработка либо становится системой, либо рассыпается. Код производится быстро — значит, быстро производятся и дефекты. Хорошая новость: тестирование — самый благодарный этап для ИИ. У теста есть объективная петля обратной связи: сгенерировал → прогнал → починил → повторил. В GoRunWithAI этот контур поймал три бага, которые без него уехали бы в прод.
python:3.12-slim с PostgreSQL, как в CI: «работает у меня» исключено по построению.Баг 1. Обновления контента молча пропускались. Писал тест на повторный импорт статьи с новой датой публикации — и тест упал: MissingGreenlet при обновлении тегов (ленивая загрузка в async). Страшнее кода была маскировка: импорт глотал исключения, и на редеплое статьи просто не обновлялись. Тест превратил молчаливый провал в красный прогон; фикс — eager-загрузка тегов.
Баг 2. Планировщик дублировался. Тест «публикация по расписанию создаёт задачу кросспостинга» показал: при двух воркерах uvicorn планировщик стартует в каждом процессе — и анонсы дублируются (в проде мы это увидели воочию: две одинаковые задачи в очереди). Фикс архитектурный: один воркер, миграции — до старта сервера.
Баг 3. Тесты, зависящие от окружения. Два теста кросспостинга падали без токена Telegram в окружении — проверка «падает из-за кода или из-за среды?» через чистый прогон подтвердила: среда. Урок: тест обязан детерминированно настраивать окружение сам.
Обратите внимание: все три — не «ИИ написал кривой код», а системные проблемы, которые без тестового контура обнаружились бы в проде с потерянными постами и дублями в канале.
Тест-кейсы из критериев приёмки. Каждая функция конвейера получала тесты из критериев приёмки: «черновики с датой в прошлом публикуются», «черновики без даты получают даты с шагом 7 дней», «повторное назначение дат идемпотентно». Цепочка «требования → тесты → код» из статьи 1 сработала буквально.
Тест впереди. Для фичи «анонсы при автопубликации» сначала появился падающий тест (публикация создаёт задачу кросспостинга), затем реализация до зелёного.
Интеграционные проверки прода. Поверх юнит-тестов: healthcheck-контейнеров в compose, проверка импорта контента после деплоя (ожидание «Imported 8 markdown files»), внешние проверки сайта (HTTP 200, редиректы, сертификат). Автоматизация деплоя сама по себе стала тестом: пуш в master → деплой → проверки — и только потом «ок».
Честные проверки падений. Два упавших теста кросспостинга проверялись на «предсуществующие или нет»: изменения временно откатывались (stash), тесты гонялись на чистом дереве. Метод, который в агентной разработке стоит ввести правилом: не чини «чужое» падение, сначала докажи, что оно не твоё.
ИИ умеет писать тесты, которые всегда зелёные. Чек-лист ревью ИИ-тестов:
Итоговая панель по всем пяти этапам — как она выглядела в проекте:
| Этап | Ключевая метрика | В GoRunWithAI |
|---|---|---|
| Аналитика | Дефекты «не так поняли» | 0 в проде: требования прошли ИИ-критику |
| Проектирование | Переделки архитектуры | 0 крупных; изменения — по записанным триггерам |
| Разработка | Lead time задачи | типовые фичи — один вечер |
| Ревью | Precision находок | >60% после калибровки |
| Тестирование | Баги в проде на запуск | 2 инфраструктурных, 0 в бизнес-логике |
| Сквозная | Доставка ценности | работающий прод через ~2 месяца неполного рабочего времени |
Последняя строка — главная. Если скорость написания кода выросла, а доставка ценности — нет, у вас ускорился один участок конвейера. В нашем случае доставка совпала с написанием: прод запущен, первая статья опубликована по расписанию, анонсы уходят в канал.
ИИ не заменил ни одного этапа разработки — он изменил их экономику. Аналитика стала строже, проектирование — документированнее, код — массовым, ревью — многослойным, тесты — наконец-то написанными. Но центральная роль человека только выросла: инженер теперь — постановщик целей, куратор контекста и единственный носитель ответственности. GoRunWithAI — моё доказательство: так может работать даже команда из одного человека.
💬 Обсудим? Какая метрика из таблицы болезненнее всего в вашей команде — lead time, дефекты в проде или ожидание ревью? И верите ли вы своему CI? Делитесь в комментариях или в [Telegram-канале GoRunWithAI]. Покрытие и стабильность CI платформы GoRunWithAI — на открытом дашборде: смотрите, как эти метрики выглядят вживую.
📌 Дальше в серии: финальный кейс — GoRunWithAI от идеи до продакшена: сроки, стоимость, инциденты и уроки. Не пропустите — подписывайтесь на канал.