Практика автоматизации · Dev Crabs
Как заказчику принимать код, созданный с помощью AI
Приёмка программного обеспечения начинается с проверяемого бизнес-сценария и пакета передачи: исходники, сборка, доступы, тесты и восстановление. Участие AI не меняет ожидаемый результат: другая команда должна уметь запустить продукт, проверить его ограничения и продолжить работу.
Обсудить независимую проверку →Что считать готовым результатом
Сначала запишите, кто выполняет действие, с какими данными и какой результат нужен бизнесу. Например: сотрудник партнёра выгружает отчёт своей организации за выбранный месяц, а сотрудник другой организации не может получить этот файл ни из интерфейса, ни прямым запросом.
Для каждого обязательного сценария нужны версия продукта, условия проверки, ожидаемый результат и фактическое доказательство. Назначьте человека, который принимает результат, и заранее определите, какие дефекты останавливают запуск. Число строк кода, промптов или закрытых задач само по себе этих сведений не даёт.
Практическое правило Dev Crabs: переходить к запуску, когда критичные сценарии подтверждены на согласованной версии, передачу можно повторить без личного компьютера разработчика, а открытые ограничения имеют владельца и согласованное решение. Это инженерная схема приёмки; порядок подписания документов и договорные условия здесь не рассматриваются.
Что изменилось с появлением агентов
GitHub в Octoverse от 28 октября 2026 года сообщает: в сентябре более 40% pull request на платформе начинались с черновика агента, против 17% в марте. Pull request — предложение изменения в репозитории, а не готовый клиентский продукт.
Это данные GitHub о работе на своей платформе. Они не измеряют качество вашего приложения, долю AI-кода в российских проектах или выполнение требований заказчика. Сравнение активности также не доказывает, что именно агенты вызвали весь наблюдаемый рост.
Наш вывод: при большом потоке изменений полезно привязать приёмку к небольшой проверяемой версии и бизнес-сценариям. Это рекомендация по организации работы, а не измеренная экономия времени или гарантия снижения ошибок.
Что запросить у подрядчика вместе с кодом
Попросите состав передачи до финальной демонстрации. Для веб-приложения отправной точкой может быть следующий список; конкретный объём зависит от архитектуры и границ проекта.
- Репозиторий и версия. Доступ организации заказчика, история изменений, тег или SHA принятого коммита, перечень внешних репозиториев и владельцев. Проверьте, что назначенный сотрудник может получить исходники и управлять доступами в согласованном объёме.
- Инструкция сборки и запуска. Версии среды, команды установки и сборки, зафиксированные зависимости, системные библиотеки, начальная схема базы, безопасные тестовые данные. Отдельно — сервисы, без которых сценарий не работает.
- Конфигурация и секреты. Образец настроек без значений секретов, назначение переменных, владелец хранилища и процедура выдачи и смены доступа. Секреты передают через согласованный защищённый канал, а не в README.
- Зависимости и компоненты. Список пакетов, версий и лицензий, известные уязвимости и принятые решения по ним. Наличие списка не доказывает безопасность; важны актуальность проверки и разбор применимых находок.
- Проверки. Требования, сценарии, тестовые роли и данные, команды запуска тестов, результаты именно для передаваемой версии. Отдельно перечислите непроверенное и известные дефекты.
- Эксплуатация. Порядок обновления и миграций, резервирования и восстановления, место журналов и оповещений, ответственные за сбой и список внешних платных сервисов с владельцами аккаунтов.
Если при разработке применялся AI, полезно отдельно зафиксировать используемые инструменты, правила передачи им данных и проверяющего изменения человека. История диалогов может дать контекст, но не заменяет инструкцию и проверку результата.
Матрица приёмки: требование и доказательство
Ниже — учебный пример вымышленного кабинета партнёра. Это образец структуры проверки, не клиентский кейс и не результат проведённого аудита. Коды ответа и имена версий иллюстрируют заполнение; реальные ожидания согласуют для конкретной системы.
| Сценарий | Требование | Доказательство | Проверяющий | Решение |
|---|---|---|---|---|
| Вход сотрудника партнёра | Активный сотрудник входит; отключённый аккаунт и его прежняя сессия больше не дают доступ. | Протокол на двух тестовых аккаунтах, включая отключение и повторный запрос к серверу. | Тестировщик + владелец доступа | Принять после проверки обоих состояний. |
| Только свои отчёты | Партнёр А читает свой отчёт; запрос отчёта Б по прямому адресу и через API не раскрывает данные. | Версия release-demo-1, стенд acceptance, аккаунты А/Б; свой отчёт — 200, чужой — 403 без данных. Протокол ACC-02 с временем и повторяемыми шагами. | Тестировщик; границу доступа подтверждает владелец продукта | Эталонная строка: сценарий принят, если повтор проверки совпал. Все результаты здесь вымышлены. |
| Экспорт отчёта | Уполномоченная роль получает строки за выбранный период только своей организации; роль без экспорта получает отказ. | Сверка файла с фиксированным набором данных, проверка фильтров и запрета прямого запроса выгрузки. | Владелец отчётности + тестировщик | Отложить, если есть лишь скриншот кнопки или не проверен состав файла. |
| Восстановление после сбоя | После неудачного обновления согласованный сценарий снова доступен, данные сверены. | Протокол репетиции на изолированном стенде: версия приложения и схемы, копия данных, время восстановления и потери относительно согласованных границ. | Эксплуатация + владелец данных | Отложить запуск, если есть инструкция, но восстановление не проверяли. |
В рабочем протоколе добавьте дату, точную версию, окружение и ссылку на доказательство в каждой строке. Принятое решение относится к проверенным условиям. Изменение прав доступа, схемы данных или внешнего API может потребовать повторной проверки.
Почему зелёных тестов недостаточно
Тест подтверждает только заложенное в него ожидание. Если разработчик и AI одинаково неверно поняли требование, реализация и тест могут согласованно закрепить ошибку. Поэтому ожидаемый бизнес-результат должен подтвердить заказчик, а критичный сценарий стоит пройти независимо от автора реализации.
Для кабинета проверяйте разрешённое действие и запрет: чужой отчёт по идентификатору, роль без экспорта, отключённый пользователь, повтор операции после сбоя. Проверка только видимости кнопки не подтверждает серверное ограничение доступа. Выполняйте такие проверки на согласованном стенде с тестовыми аккаунтами.
Документация GitHub Copilot code review рекомендует проверять обратную связь модели и дополнять её человеческим ревью: инструмент может ошибаться и пропускать проблемы. Это ограничение конкретного инструмента, а не оценка качества всех AI-систем.
OWASP ASVS даёт набор требований для проверки безопасности веб-приложений. Если используете его в задании, согласуйте версию и конкретные применимые пункты. Упоминание стандарта или прохождение нескольких тестов не означает проверку всей системы по ASVS.
Сборка, миграции и откат
Пусть принимающая команда развернёт указанную версию в чистом изолированном окружении по переданной инструкции. Запишите версии среды, команды, источник конфигурации и все ручные шаги. Успешный запуск у автора полезен, но не показывает, что пакет передачи достаточен для другого специалиста.
В такой проверке «воспроизводимая сборка» означает повторяемое получение работающего приложения из указанной версии и зависимостей. Побайтовая идентичность артефактов — отдельное требование, если она нужна проекту.
Миграцию базы сначала репетируют на разрешённой обезличенной копии или подготовленных тестовых данных. Проверяют исходную и целевую схемы, длительность, ошибки и контрольные количества либо суммы. Для работающего сервиса заранее согласуют допустимое окно недоступности и потери данных.
Откат кода не всегда откатывает данные. После удаления столбца или преобразования записей прежняя версия может стать несовместимой. Опишите отдельный путь восстановления: совместимость версий, резервную копию, восстановление либо корректирующую миграцию. Проверьте, что после выбранного действия проходит тот же критичный бизнес-сценарий. Репетиция не должна менять production-данные.
Пример незавершённой передачи кабинета
В учебной ситуации подрядчик прислал архив исходников, видео входа администратора и снимок зелёного отчёта тестов. Кабинет открывается. Однако нет зафиксированной версии зависимостей, тестовых пользователей разных организаций, инструкции миграции и владельца аккаунта хостинга.
Решение для этого примера — отложить запуск до закрытия критичных пробелов. Видео администратора не подтверждает изоляцию организаций; архив не показывает, какую версию тестировали; неизвестный владелец инфраструктуры мешает передаче эксплуатации.
- Зафиксировать версию и восстановить сборку по инструкции на чистом стенде.
- Заполнить и повторить строку «Только свои отчёты» из матрицы на двух тестовых организациях.
- Назначить владельцев доступов и проверить возможность обновления и восстановления принимающей командой.
- Сохранить доказательства, список оставшихся ограничений и решение ответственного за запуск.
Некритичное замечание, например согласованное отличие подписи, можно вынести в отдельный список доработок с владельцем и сроком. Утечку чужих отчётов, невоспроизводимую сборку или непроверенное восстановление в этом сценарии нельзя закрыть обещанием «исправим после запуска».
Когда нужна независимая проверка
Она полезна, если принимающая команда не участвовала в разработке, доказательств недостаточно или ошибка критичного сценария затронет данные и операции клиентов. Необязательно начинать с проверки всего продукта: задайте один релиз, роли, операции и границы доступа.
Аудит кода и архитектуры помогает разобрать реализацию и технические риски. Тестирование ПО проверяет поведение выбранной версии по сценариям. Для последующих исправлений и выпуска обновлений можно отдельно обсудить сопровождение ПО.
В задании на проверку перечислите материалы, разрешённый стенд, критичные требования и ожидаемый отчёт: воспроизводимые находки, их влияние и критерии повторной проверки. Независимый просмотр не гарантирует отсутствие дефектов. Решение о запуске принимает назначенный владелец с учётом явно описанного остаточного риска.
Частые вопросы
Нужно ли иначе принимать код, если его писал AI?
Основные критерии те же: работающие требования, доступная сборка, проверенные права и возможность сопровождения. Дополнительно полезно зафиксировать правила использования AI и человека, проверившего изменения. Процент сгенерированных строк не заменяет доказательства.
Можно ли принять продукт по видео и зелёным тестам?
Эти материалы показывают часть результата. Для критичных сценариев нужны версия, роли, данные и повторяемые шаги проверки. Видео под администратором не подтверждает ограничения обычного пользователя, а зелёный отчёт не показывает полноту требований.
Обязательно ли передавать все промпты?
Это зависит от согласованного состава передачи. Для эксплуатации важнее исходники, настройки, зависимости, инструкции и проверки. Если AI работает внутри самого продукта, его рабочие промпты и конфигурация уже могут быть частью приложения и должны учитываться в передаче.
Что делать, если код собирается только у разработчика?
Зафиксировать пробел и повторить запуск в чистом окружении. Уточнить версии, зависимости, конфигурацию и внешние сервисы. Пока принимающая команда не может повторить процесс, возможность самостоятельной эксплуатации не подтверждена.
Аудит кода и приёмочное тестирование — одно и то же?
Нет. Аудит изучает реализацию и её риски, тестирование проверяет наблюдаемое поведение по требованиям. Для решения о запуске могут понадобиться оба вида проверки, но их объём согласуют отдельно.
Первоисточники и актуальность
Факты о формате и продуктах приведены со ссылками. Схема выбора, критерии приёмки и учебный пример — рекомендации Dev Crabs; эффект на процессе компании требует отдельной проверки.
- GitHub Octoverse 2026 ↗
Опубликовано 28.10.2026, проверено 03.11.2026. Доли начала pull request с агентом относятся к марту и сентябрю 2026 года на GitHub. Это не замер качества, экономии или спроса в России. Статистику перепроверить до 03.12.2026.
- GitHub Docs: Validating Copilot code reviews ↗
Живая документация, дата публикации и обновления не установлена; проверено 03.11.2026. Использован раздел об ограничениях ревью и проверке обратной связи человеком. Условия продукта могут меняться.
- OWASP Application Security Verification Standard ↗
На странице указана стабильная ASVS 5.0.0 от 30.05.2025; проверено 03.11.2026. Источник требований к безопасности, не подтверждение соответствия какого-либо проекта. Методическую часть статьи пересмотреть до 03.02.2027.