ИИ в тестировании: 84 теста, поймавшие реальные баги GoRunWithAI

ИИ в тестировании: 84 теста, поймавшие реальные баги GoRunWithAI

Серия «Разработка с ИИ: полный цикл», часть 5. Платформа GoRunWithAI.


Тестирование — этап, на котором ИИ-разработка либо становится системой, либо рассыпается. Код производится быстро — значит, быстро производятся и дефекты. Хорошая новость: тестирование — самый благодарный этап для ИИ. У теста есть объективная петля обратной связи: сгенерировал → прогнал → починил → повторил. В GoRunWithAI этот контур поймал три бага, которые без него уехали бы в прод.

Тестовый контур проекта

Три бага, пойманных тестами до прода

Баг 1. Обновления контента молча пропускались. Писал тест на повторный импорт статьи с новой датой публикации — и тест упал: MissingGreenlet при обновлении тегов (ленивая загрузка в async). Страшнее кода была маскировка: импорт глотал исключения, и на редеплое статьи просто не обновлялись. Тест превратил молчаливый провал в красный прогон; фикс — eager-загрузка тегов.

Баг 2. Планировщик дублировался. Тест «публикация по расписанию создаёт задачу кросспостинга» показал: при двух воркерах uvicorn планировщик стартует в каждом процессе — и анонсы дублируются (в проде мы это увидели воочию: две одинаковые задачи в очереди). Фикс архитектурный: один воркер, миграции — до старта сервера.

Баг 3. Тесты, зависящие от окружения. Два теста кросспостинга падали без токена Telegram в окружении — проверка «падает из-за кода или из-за среды?» через чистый прогон подтвердила: среда. Урок: тест обязан детерминированно настраивать окружение сам.

Обратите внимание: все три — не «ИИ написал кривой код», а системные проблемы, которые без тестового контура обнаружились бы в проде с потерянными постами и дублями в канале.

Сценарии, которые работали

Тест-кейсы из критериев приёмки. Каждая функция конвейера получала тесты из критериев приёмки: «черновики с датой в прошлом публикуются», «черновики без даты получают даты с шагом 7 дней», «повторное назначение дат идемпотентно». Цепочка «требования → тесты → код» из статьи 1 сработала буквально.

Тест впереди. Для фичи «анонсы при автопубликации» сначала появился падающий тест (публикация создаёт задачу кросспостинга), затем реализация до зелёного.

Интеграционные проверки прода. Поверх юнит-тестов: healthcheck-контейнеров в compose, проверка импорта контента после деплоя (ожидание «Imported 8 markdown files»), внешние проверки сайта (HTTP 200, редиректы, сертификат). Автоматизация деплоя сама по себе стала тестом: пуш в master → деплой → проверки — и только потом «ок».

Честные проверки падений. Два упавших теста кросспостинга проверялись на «предсуществующие или нет»: изменения временно откатывались (stash), тесты гонялись на чистом дереве. Метод, который в агентной разработке стоит ввести правилом: не чини «чужое» падение, сначала докажи, что оно не твоё.

Ревью тестов важнее ревью кода

ИИ умеет писать тесты, которые всегда зелёные. Чек-лист ревью ИИ-тестов:

  1. Есть ли настоящие проверки результата, а не «тест запустился»?
  2. Падает ли тест, если сломать реализацию? (Сломайте руками — тест обязан покраснеть.)
  3. Не тестирует ли тест детали реализации вместо поведения?

Метрики этапа и всей серии

Итоговая панель по всем пяти этапам — как она выглядела в проекте:

Этап Ключевая метрика В GoRunWithAI
Аналитика Дефекты «не так поняли» 0 в проде: требования прошли ИИ-критику
Проектирование Переделки архитектуры 0 крупных; изменения — по записанным триггерам
Разработка Lead time задачи типовые фичи — один вечер
Ревью Precision находок >60% после калибровки
Тестирование Баги в проде на запуск 2 инфраструктурных, 0 в бизнес-логике
Сквозная Доставка ценности работающий прод через ~2 месяца неполного рабочего времени

Последняя строка — главная. Если скорость написания кода выросла, а доставка ценности — нет, у вас ускорился один участок конвейера. В нашем случае доставка совпала с написанием: прод запущен, первая статья опубликована по расписанию, анонсы уходят в канал.

Практический минимум для старта

  1. Генерируйте тест-кейсы из критериев приёмки каждой новой задачи — это бесплатно и сразу показывает дыры в требованиях.
  2. Введите ревью тестов с чек-листом «ассерты / мутационная проверка / поведение, а не реализация».
  3. Настройте агента на разбор падающих прогонов CI.
  4. Заведите метрику «дефекты в проде на релиз» — без неё вся серия остаётся теорией.

Финальное слово серии

ИИ не заменил ни одного этапа разработки — он изменил их экономику. Аналитика стала строже, проектирование — документированнее, код — массовым, ревью — многослойным, тесты — наконец-то написанными. Но центральная роль человека только выросла: инженер теперь — постановщик целей, куратор контекста и единственный носитель ответственности. GoRunWithAI — моё доказательство: так может работать даже команда из одного человека.


💬 Обсудим? Какая метрика из таблицы болезненнее всего в вашей команде — lead time, дефекты в проде или ожидание ревью? И верите ли вы своему CI? Делитесь в комментариях или в [Telegram-канале GoRunWithAI]. Покрытие и стабильность CI платформы GoRunWithAI — на открытом дашборде: смотрите, как эти метрики выглядят вживую.

📌 Дальше в серии: финальный кейс — GoRunWithAI от идеи до продакшена: сроки, стоимость, инциденты и уроки. Не пропустите — подписывайтесь на канал.