Мой блог
Почему агентный ИИ требует больше инженеров по тестированию, а не меньше
Развитие автономных систем разработки меняет привычный процесс выпуска программного обеспечения: интеллектуальные ассистенты готовят пул-реквесты, проводят масштабные миграции кодовой базы и за считаные минуты заявляют о безопасности внесенных правок. Однако убежденность индустрии в том, что внедрение ИИ приведет к сокращению отделов тестирования, оказывается ошибочной. Чем больший объем кода генерируют автономные алгоритмы, тем острее ощущается дефицит специалистов, способных осуществлять независимый контроль качества кода, а не просто полагаться на автоматические отчеты.
Масштабные отраслевые исследования наглядно подтверждают этот разрыв между скоростью генерации и доверием к результатам. В опросе Stack Overflow Developer Survey 2025 года 84% специалистов заявили, что уже используют или планируют внедрять ИИ в разработку, причем более половины программистов обращаются к нему ежедневно. При этом уровень доверия к точности нейросетей снизился: 46% респондентов открыто не доверяют выдаваемым ответам, а 66% разработчиков называют главной проблемой решения, которые выглядят почти верными, но содержат скрытые ошибки. Схожая картина прослеживается в отчете Google Cloud DORA за 2025 год: внедрение ИИ достигло 90%, более 80% опрошенных отметили рост продуктивности, но лишь 24% участников исследования выразили высокое доверие к качеству генерируемого материала. Высокая утилитарная ценность на фоне дефицита доверия расширяет спектр задач инженеров по качеству, а не сужает его.
Скорость пайплайнов не гарантирует корректность работы
Инженеры по качеству, работающие с агентными системами и CI-гейтами, сталкиваются с тем, что ИИ-инструменты формулируют выводы с абсолютной уверенностью даже в тех случаях, когда код ошибочен. Уверенность формулировок нейросети не тождественна корректности ее вычислений. Практика показывает, что ни генератор тестов, ни ИИ-ревьюер пул-реквестов не должны оценивать собственную работу.
В качестве примера автор первоисточника приводит инцидент на пилотном проекте автоматического ревьюера: пул-реквест успешно прошел конвейер CI менее чем за четыре минуты, однако спустя двое суток на рабочей панели мониторинга отобразились некорректные температурные показатели. Из-за незатронутой тестами ветки кода произошел сбой в пересчете градусов Цельсия в Фаренгейты. Конвейер непрерывной интеграции оставался зеленым, тогда как система функционировала неправильно, превратив успешные отчеты сборки в формальную иллюзию надежности.
Статистика подтверждает системный характер подобных инцидентов. Согласно отчету компании CodeRabbit (State of AI vs Human Code Generation Report), в рамках которого было изучено 470 открытых пул-реквестов на GitHub, изменения с участием ИИ содержали в 1,7 раза больше дефектов по сравнению с кодом, написанным людьми. Проблемы с логикой и корректностью возникали на 75% чаще, а количество замечаний по безопасности превышало человеческие показатели до 2,74 раза. Исследование Veracode GenAI Code Security Report за 2026 год показало средний уровень прохождения тестов безопасности на отметке 56%, при этом около 44% задач по генерации кода приводили к появлению известных уязвимостей. Корректный синтаксис уже доступен моделям, но обеспечение надежного и безопасного поведения по-прежнему требует человеческого анализа.
Галлюцинации в зависимостях как фактор риска
Помимо логических ошибок, генеративные модели склонны выдумывать несуществующие элементы внешней инфраструктуры. В исследовании USENIX Security 2025 года под названием «We Have a Package for You!» были изучены 16 генерирующих код LLM на выборке из 576 000 примеров. Коммерческие модели галлюцинировали названия пакетов в среднем в 5,2% случаев, тогда как у открытых моделей этот показатель достиг 21,7%, породив более 205 000 уникальных фиктивных имен библиотек.
Возникновение таких фантомных пакетов открывает дорогу атакам типа slop squatting: злоумышленники регистрируют выдуманное нейросетью имя в публичных репозиториях (npm, NuGet) и ждут, пока агент или разработчик скачает вредоносный пакет в проект. Проверка происхождения зависимостей (provenance checks) должна находиться на одном уровне критичности с функциональным тестированием. Если агент генерирует несуществующую зависимость, процесс слияния ветки обязан прерываться до запуска модульных тестов.
Архитектура CI-гейтов в эпоху ИИ-агентов
При масштабных автоматизированных обновлениях, таких как переход организации с .NET 8 на .NET 10 за две недели с помощью ИИ, критически важно настраивать гейты качества, не принимающие на веру текстовые отчеты агентов. Для проверки измененного кода требуются следующие защитные рубежи:
- Контроль мутационного тестирования (mutation score) на уровне 60–70% для затронутой логики: тестовый набор должен гарантированно выявлять искусственно внесенные дефекты, а не просто обеспечивать номинальное покрытие строк.
- Тестирование на основе свойств (property-based testing) для участков с высокими рисками, где одиночные примеры не описывают все граничные состояния системы.
- Проверка происхождения и валидности внешних зависимостей для защиты от вредоносных подделок и галлюцинаций.
- Анализ дублирования и нестабильности кода (churn), сигнализирующий о бессистемных повторах логики со стороны ИИ-агента.
- Полная независимая верификация любых утверждений агента о завершении миграции, рассматривающая отчет бота исключительно как неподтвержденную гипотезу.
Мутационное тестирование демонстрирует, реагируют ли тесты на реальные сбои: процент покрытия строк может быть высоким, но упускать сценарии вроде упомянутого сбоя шкал температур. Проверки на основе свойств гарантируют работу логики во всем допустимом диапазоне параметров, а фильтры churn отслеживают тенденцию моделей переписывать одну и ту же мысль разными способами. При этом автоматизация не заменяет классическое тестирование API, проверку авторизации, дымовые тесты и сквозную автоматизацию пользовательского интерфейса (например, с использованием FlaUI и PowerShell), равно как и проверку инсталляционных пакетов NuGet, MSI или MSM при тихой установке.
Эволюция роли тестировщика
Опасения, что способность ИИ создавать тесты сделает человека ненужным, не оправдываются на практике. Агенты могут набрасывать черновые варианты сценариев, однако они не способны объективно верифицировать собственные результаты. В опросах разработчиков недоверие к автоматическим ответам остается ключевой причиной обращения за помощью к живым коллегам. Критический скептицизм становится фундаментальным профессиональным навыком тестировщика.
Если темпы выпуска кода нейросетями опережают возможности команды по его осмыслению и верификации, проект получает не рост продуктивности, а накопленный отложенный инцидент. Успех внедрения современных систем автоматизации зависит от специалистов, готовых подвергать сомнению любые утверждения агентов, интегрировать глубокие мутационные проверки в CI и удерживать независимый контроль там, где генеративные модели демонстрируют внешнюю гладкость формулировок при скрытой ненадежности логики.
