Чем больше вокруг кода пишется с помощью ИИ, тем больше мы должны уделять внимания тестированию проектов.
– Без тестов мы не можем быть уверены, что ИИ не разрушил часть работающего функционала. Галлюцинации и потеря контекста вносят неожиданные проблемы, которые тесты могут выявить.
– В среднем, код сложнее, чем тесты — у него больше вариантов в результате исполнения. Предполагаю, поэтому ИИ будет проще писать хорошие тесты, чем хороший код.
– Автоматизированное тестирование станет более доступным по цене и не таким трудоёмким в создании: большая часть рутинного кода будет писаться тоже с помощью ИИ. Очень мало причин не обзавестись регрессионными тестами.
– В ближайшее время появится множество инструментов для покрытия тестами, ревью кода, анализа и исправления ошибок с помощью ИИ.
– Аудиты на безопасность и нагрузочное тестирование сможет запускать агент.
Есть обратная сторона. ИИ может писать такой код, чтобы он проходил тест, а не решал поставленную задачу. Он может даже подменять ожидаемое значение, лишь бы пройти тест. Хорошо на этот случай иметь множество разных проверок кода — юнит-тесты, статический анализ, линтеры, попытка компиляции, функциональное тестирование, интеграционные и e2e-тесты, автоматизированное и ручное ревью кода.
Как мне кажется, объём и качество тестирования будет расти. Возможно, будет нужен агент или человек для тестирования тестов!