🔬 Kun Chen прогнал через Program Bench самый популярный скилл для Test Driven Development от superpowers (297.0k звёзд GitHub) и получил деградацию ChatGPT от применения TDD. На деле модели OpenAI ещё жёстче деградируют от TDD, чем у Anthropic в терминах замедления и перерасхода токенов. TDD приводил к ухудшению фикса багов на 3-10%, в зависимости от уровня размышлений модели. Однако перерасход средств на TDD иногда достигал 80%.
Речь про этот навык, который намного более продвинутый TDD, чем обычно применяют.
https://github.com/obra/superpowers/blob/main/skills/test-driven-development/writing-good-tests.md
Kun Chen поэтому отмечает, что практика скачивать абы какие skills из популярных репозиториев не учитывает банальный хайп: инженеры игнорируют отсутствие хоть каких-то тестов, доказывающих, что скиллы работают, но ставят их себе.
Я внимательнее ещё поизучал, что ещё интересного нарыл Kun Chen во время изучения им, как тесты работают с агентами. Что сами по себе тесты как мишени reward hacking довольно давно обсуждается, но Kun Chen пошёл дальше. Он стал отключать ВСЕ тесты (и unit, и integration) в популярных бенчмарках типа DeepSWE, которые построены на реальных крупных приложениях и качество их тестов значительно выше обычных, часть ещё и ручные. Ручные тесты обычно считаются выше качеством, т.е. не подвержены reward hacking. Если просто запрет писать новые тесты несколько повышает точность фиксов ИИ, то если отключить вообще все текущее тестирование «кожаных», то на деле почти никакого влияния на вероятность фиксов ИИ нет — ни позитивного, ни негативного. Текущие тесты в приложениях просто бесполезные для ИИ.
Мне стало интересно, какие стратегии тестирования выбирает ИИ, если ему запретить писать тесты. Как минимум они намного эффективнее по скорости и стоимости работы, плюс дают небольшой прирост качества. На самом деле без тестов агенты переключаются быстро на так называемый ground truth. Методика «истинной информации» восходит к тестированию, которое придумало NASA в 1972 году, когда в NASA заметили, что формальные тесты часто приводят к потере спутников, т.к. «сферические кони тестирования» тестируют код как абстракцию, но не учитывают реальное влияние внешней среды, в которой он работает и которое не может быть полностью повторено на тестах, т.к. неизвестно заранее во всех деталях. Поэтому акцент в тестировании NASA был смещён на замеры «истинной информации» путём получения данных от различных датчиков, а не на самооценке алгоритмов. Фактически такие «датчики» и применяет ИИ без тестов: считывание логов и реальных данных приложения, внедрение в код сервисов телеметрии. Поскольку агентам нужно как-то запускать код без тестов, то они организуют для этого MCP, CLI и пользуются Playwright.
Эксперименты Kun Chen довольно важные, т.к. позволяют задуматься о том, не являются ли очень многие текущие практики тестирования «ошибками выжившего». Ведь обычный оператор агентов просто реагирует на то, что приложение запустилось, и поэтому считает, что его практика лучшая, но это говорит только о том, что эта практика как-то работает, а не о доказательствах её эффективности.
https://x.com/kunchenguid/status/2064196344244531404
Post #5314
3.46K

- ❤ 32
- 🔥 20
- ✍ 7
- 💯 5