Недавняя статья Google показала, что генерация тестов на основе спецификаций повысила обнаружение ошибок на 9,8 процентных пункта на выборке из их кодовой базы. Но их спецификация читается из кода, что оставляет нерешённой ту половину, которая важна для меня. Я месяцами утверждал, что набор тестов, написанный той же моделью, которая написала код, не может по-настоящему противоречить ему, и в поддержку своего утверждения я разработал новую библиотеку Python с открытым исходным кодом.
Тестирование программного обеспечения движется в одном направлении уже двадцать лет, и разработка на основе спецификаций (SDD) — это то, куда это движение недавно пришло. Эта статья выступает за ещё один шаг: независимый SDD, или ISDD. TDD говорил, что тесты — это спецификация. BDD был ответом на это. SDD — это версия, которая пришла с агентами.
В настоящее время разработка на основе спецификаций разделяет работу. Она не разделяет, у кого есть знания. Одна и та же спецификация идёт к планировщику, генератору тестов и агенту кодирования. Мой аргумент — разрезать по этой линии: дать агенту кодирования решения и удержать критерии приёмки, чтобы набор тестов мог сказать коду, что он неправильный.
Команда Google измерила шаг перед удержанием. "Grounding AI Agents in Contracts: An Empirical Evaluation of Spec-Driven Test Generation" делает нечто более узкое, чем мой аргумент. Они сначала просят его рассуждать о коде и записать свой контракт. Этот документ становится когнитивным каркасом, и из него генерируются тесты. Результаты на производственных ошибках из собственной кодовой базы Google показали, что более чем в половине случаев сгенерированный набор тестов...
Источник: Towards Data Science · Сводку подготовил HeadlinesBriefing