AI-агентам для написання коду потрібні тести більше, ніж промпти

Я пишу програмне забезпечення вже 25 років. Мій робочий процес змінився за останні вісім місяців більше, ніж за всю мою кар'єру.

Раніше інструменти для написання коду за допомогою ШІ використовувалися для невеликих завдань, таких як рефакторинг або пояснення помилок. Створення великих функцій за допомогою ШІ було болісним процесом.

Тепер ситуація змінилася. Сучасні агенти дотримуються певного циклу:

  • Читають код.
  • Змінюють код.
  • Запускають команду.
  • Дивляться, що саме не спрацювало.
  • Виправляють це.
  • Повторюють.

Цей цикл потужний, але агенти мають труднощі з візуальними інтерфейсами. Вони не можуть надійно клікати по UI, щоб перевірити, чи працює кнопка.

Я змінив свій підхід. Я розробляю нові функції так, щоб спочатку вони працювали через командний рядок.

Замість того, щоб просити агента «подивитися на цей екран», я даю йому команду:

  • npm run test:feature-x
  • node scripts/run-new-feature-client.js

Агенти обожнюють команди. Це дає їм виконуваний цикл зворотного зв'язку.

Мій поточний робочий процес виглядає так:

  • Планування функції у Markdown-файлі.
  • Створення тестового клієнта або юніт-тесту.
  • Визначення чітких тестових сценаріїв.
  • Дозволити агенту реалізувати функцію.
  • Дозволити агенту неодноразово запускати тести.
  • Перегляд результатів.

Попередження: якщо ви скажете агенту «зроби так, щоб усі тести пройшли», він це зробить. Щоб досягти успіху, він може скоїти справжні злочини проти програмної інженерії. Він може написати слабкі тести або використовувати блоки try/catch, щоб приховати помилки, аби лише припинити повідомлення про помилку.

Ось чому визначення тестів є моїм найважливішим ручним завданням. Ви повинні запитати себе:

  • Чи представляє цей тест реальний сценарій використання?
  • Чи виявить він реальну регресію?
  • Чи не є він занадто вузьким?

В епоху ШІ розробка через тестування (TDD) — це не просто страховка. Це кермо. Без тестів агент створює правдоподібний код. З хорошими тестами агент має вимірювану ціль.

Ще одна порада: використовуйте структуровані файли для виводів тестів. Замість того, щоб скидати величезні логи в чат, зробіть так, щоб ваші скрипти записували дані у JSON або Markdown-файли в окрему папку.

Це допомагає, тому що:

  • Агент переходить безпосередньо до релевантних даних.
  • Контекст залишається невеликим.
  • Використання токенів зменшується.
  • Це економить гроші.

ШІ-агенти не замінюють розробників. Вони зміщують наш фокус. Ми витрачаємо менше часу на написання коду і більше на:

  • Чітке описування проблем.
  • Створення циклів зворотного зв'язку.
  • Визначення якісних тестів.
  • Перегляд архітектури.

Майбутнє ШІ-розробки належить не тому, хто пише найкращі промпти. Воно належить тому, хто будує найкращі цикли зворотного зв'язку.

Source: https://dev.to/stoefln6/ai-coding-agents-need-tests-more-than-prompts-11pm

Optional learning community: https://t.me/GyaanSetuAi