«LLM-модели ускорили генерацию кода до безумного уровня. Но я не уверен, что справедливо говорить о том, что это ускорило доставку. Возникают логичные вопросы о качестве результата. Не только качество кода, но и реального продукта.
Мы все еще проверяем результат в основном вручную — либо просматривая сгенерированный код, либо тестируя приложение.
И хотя сгенерированный код не является черным ящиком (пока), детали реализации имеют тенденцию становиться нечеткими по мере роста количества строк кода.
Поэтому тестирование приложения вручную все еще лучший способ проверить результат.
Хотя ИИ делает тестирование более важным, это не обязательно означает, что будет больше вакансий тестировщиков (как некоторые хотели бы верить).
На самом деле я думаю, что ИИ увеличит давление на тестирование, чтобы оно выполнялось быстрее. Я ненавижу, когда тестирование называют «узким местом», но возможно мы вступаем в эпоху, когда это будет действительно так.
Я согласен с тем, что ручное QA имеет неоспоримые преимущества. Но трудно утверждать, что все тестирование должно проводиться только таким образом. В большинстве случаев это медленнее и дороже, чем альтернативные варианты.
Так как же мы собираемся поддерживать высокое качество программного обеспечения?
Вот пять моих прогнозов.
1. Тестирование будет все больше встраиваться в процесс создания программного обеспечения
Другими словами, когда создается код приложения, вместе с ним всегда будут создаваться и тесты. Это означает, что одобрение созданного кода фактически будет означать прохождение его тестов.
Поскольку современные ИИ-инструменты хорошо справляются с генерацией кода, ничто не мешает им генерировать и тесты. Конечно, их по-прежнему полезно проверять вручную (см. пункт №2), но их генерация вместе с кодом уже означает значительную экономию времени.
А когда мы переходим к новым версиям, мы избегаем регрессий, запуская тесты, сгенерированные в предыдущих итерациях.
2. Все больше агентов и ИИ-решений будут добавлять автоматизацию тестирования на лету
Мы увидим больше агентов и ИИ-решений, которые будут добавлять автоматизацию тестирования наряду с создаваемым кодом. Те, кто будет генерировать тесты вместе с производимым кодом, увидят меньше регрессий и будут масштабироваться гораздо лучше.
На рынке уже есть решения, которые сами тестируют созданный код и позволяют избежать регрессий или плохих результатов, выполняя тесты в фоновом режиме и передавая результаты в LLM, например Nut.new от Replay.io.
3. Ручное тестирование будет развиваться, а не исчезать
Ручное тестирование не исчезнет, но оно станет более гранулярным, сфокусированным на ручном тестировании новой функциональности и ревью кода.
Вместо огромных наборов, в которых тесты вручную выполняются один за другим, тестировщики будут в основном тестировать изменения, а регрессионное тестирование станет сферой автоматизации.
4. Хороший тест-дизайн будет по-прежнему высоко цениться
Отличные инженеры по тестированию понимают, что недостаточно просто собрать код в Playwright и получить нужное тестовое покрытие.
Придерживаться хороших практик тестирования, уметь правильно архивировать тестовые данные и правильно определять зоны риска сейчас как никогда важно.
Например, когда тестовый код генерируется с помощью LLM, его генерация направляется высококвалифицированным тестировщиком и рецензируется. Это поможет обеспечить качество тестов.
Точно такой же принцип, как если бы опытный разработчик вел и проверял сгенерированный код приложения.
5. Рантайм приложений и тестов станет большой проблемой
Хотя просмотр трассировки, как в Playwright, становится стандартом, обычно мы не имеем такой информации во время выполнения приложения.
Как показано в статье Techcrunch, ИИ-модели до сих пор с трудом справляются с отладкой ПО, и даже лучшие из существующих моделей не справляются с этой задачей.
Причина в том, что большие языковые модели обучаются на большом количестве кода, но им не хватает информации о том, как реально работает написанный код.
Я считаю, что инструменты наблюдения (observability) станут тем недостающим сейчас элементом, который заставит ИИ создавать действительно надежный код.
Ручное тестирование и стремление к совершенству – в разработке и в тестировании – никуда не исчезнут. Поэтому тестирование будет востребовано как никогда.»