Сгенерированный патч может быть визуально последовательным, проходить CI и при этом нарушать то, что ни один рецензент не планировал проверять. Обычная неудача заключается не в том, что модель умна; это процесс проверки, рассматривающий «выглядит нормально» как «безопасно для слияния». Это искусство...
Сгенерированный патч может быть визуально последовательным, проходить CI и при этом нарушать то, что ни один рецензент не планировал проверять. Обычная неудача заключается не в том, что модель умна; это процесс проверки, рассматривающий «выглядит нормально» как «безопасно для слияния». В этой статье описывается небольшая воспроизводимая система, которая пропускает сгенерированные ИИ патчи через два дешевых шлюза — проверку статической формы и дымовой тест с ограниченным временем выполнения — прежде чем любому человеку придется тратить время на сравнение.
Средой, используемой для этого шаблона, является бесплатный доступ к модели MonkeyCode и опция бесплатного сервера. Раскрытие информации: эта статья была подготовлена в рамках информационно-пропагандистской программы MonkeyCode.
Для чего нужны двое ворот
Ворота 1 — это проверка формы. Оно отвечает на три вопроса:
Применимо ли исправление к текущему HEAD?
Изменяет ли он только те файлы, на изменение которых утверждается?
Избегает ли он защищенных путей, таких как миграции и секреты?
Gate 2 — это дымовой тест во время выполнения. Он применяет патч в одноразовом рабочем дереве Git, запускает одну узкую цель дымового теста и отклоняет патч, если цель не работает или истекает время ожидания.
Ни один из ворот не доказывает правильность. Они действуют как сортировочный фильтр: они останавливают исправления, которые не заслуживают проверки человеком, и оставляют интересные риски для каждого.