AI-агенты сейчас ужасно пишут тесты. Они выдают расплывчатые, запутанные, тавтологичные и бессмысленные проверки. И в ближайшее время лучше не станет — агенты учатся на примерах, которые написали люди, а люди, включая преподавателей, часто учат так же плохо.
Но с правильной подсказкой агенты вполне способны следовать рациональному TDD и писать понятные тесты. Короткий ответ — дать им следовать Kent Beck's Canon TDD. Это даст примерно 60% результата. Полный ответ — собственный TDD-навык автора, который лежит на GitHub как живой документ.
Суть этого навыка — цикл Specify-Encode-Fulfill (SEF) — альтернатива красному-зелёному-рефакторингу. Сначала придумываешь спецификации для того, что хочешь построить. Потом кодируешь эти спецификации как автоматические тесты (исполняемые спецификации). Затем пишешь код, чтобы эти спецификации выполнялись.
На более низком уровне — Kent Beck's Canon TDD в пересказе автора: записать список спецификаций для текущей TDD-сессии; закодировать каждый пункт как тест; изменить код ровно настолько, чтобы текущая ошибка исчезла — никакого «спекулятивного программирования», иначе рискуешь получить код, который никогда не выполняется ни в одном тесте; опционально рефакторить, но только после фиксации изменения поведения — никогда не смешивать.
Но сам процесс мало влияет на дизайн тестов. Для этого есть отдельный навык Test Design Review. Он запускает отдельного агента (чтобы избежать предвзятости), ищет нарушения принципов дизайна и предлагает исправления. Иногда сомнительные, но чаще точные. Когда тест не нравится, автор запускает Test Design Review, чтобы агент поймал собственные ошибки.
Многие нарушения дизайна тестов — это просто нарушения общих принципов разработки, например «называть вещи своими именами». Поэтому тесты прогоняются ещё и через навык Software Design Review.
Автора удивляет, что его инструкция «если тест писать трудно, возможно, сначала надо прибраться на кухне» — и агент (в статье речь идёт о Claude) реально часто останавливается и спрашивает, не стоит ли сначала прибраться. И часто — стоит.
Пока что агенты пишут приемлемые тесты далеко не в 100% случаев, но этот TDD-навык стал для автора стандартным способом вносить любые изменения. Самый большой прирост продуктивности AI даёт в сочетании с вечными, неизменными принципами, открытыми десятилетия назад, которые остаются верными и сегодня.