Gli agenti di programmazione AI hanno più bisogno di test che di prompt

Scrivo software da 25 anni. Il mio flusso di lavoro è cambiato più negli ultimi otto mesi che in tutta la mia carriera.

Gli strumenti di programmazione AI un tempo erano destinati a piccoli compiti come il refactoring o la spiegazione degli errori. Costruire grandi funzionalità con l'IA era faticoso.

Ora la situazione è diversa. Gli agenti moderni seguono un ciclo specifico:

  • Leggere il codice.
  • Modificare il codice.
  • Eseguire un comando.
  • Vedere cosa è fallito.
  • Correggerlo.
  • Ripetere.

Questo ciclo è potente, ma gli agenti hanno difficoltà con le interfacce visive. Non riescono a navigare in modo affidabile attraverso un'interfaccia utente (UI) per verificare se un pulsante funziona.

Ho cambiato approccio. Costruisco le nuove funzionalità in modo che funzionino prima da riga di comando.

Invece di chiedere a un agente di "guardare questo schermo", gli do un comando:

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

Gli agenti amano i comandi. Forniscono loro un ciclo di feedback eseguibile.

Il mio attuale flusso di lavoro è questo:

  • Pianificare la funzionalità in un file Markdown.
  • Creare un client di test o un test unitario.
  • Definire casi di test chiari.
  • Lasciare che l'agente implementi la funzionalità.
  • Lasciare che l'agente esegua i test ripetutamente.
  • Revisionare i risultati.

Un avvertimento: se dici a un agente di "far passare tutti i test", lo farà. Potrebbe commettere crimini di ingegneria del software pur di riuscirci. Potrebbe scrivere test deboli o usare blocchi try/catch per nascondere gli errori solo per interrompere il messaggio di errore.

Ecco perché la definizione dei test è il mio compito manuale più importante. Devi chiederti:

  • Questo test rappresenta un caso d'uso reale?
  • Riuscirebbe a rilevare una regressione reale?
  • È troppo limitato?

Nell'era dell'IA, il Test-Driven Development (TDD) non è solo una rete di sicurezza. È il volante. Senza test, un agente produce codice plausibile. Con buoni test, un agente ha un obiettivo misurabile.

Un altro consiglio: usa file strutturati per gli output dei test. Inveve di inondare la chat con enormi log, fai in modo che i tuoi script scrivano in file JSON o Markdown in una cartella.

Questo aiuta perché:

  • L'agente passa direttamente ai dati rilevanti.
  • Il contesto rimane ridotto.
  • L'uso dei token diminuisce.
  • Fa risparmiare denaro.

Gli agenti IA non sostituiscono gli sviluppatori. Spostano il nostro focus. Passiamo meno tempo a scrivere codice e più tempo a:

  • Descrivere i problemi in modo chiaro.
  • Creare cicli di feedback.
  • Definire test di qualità.
  • Revisionare l'architettura.

Il futuro dello sviluppo IA non appartiene a chi scrive i migliori prompt. Appartiene a chi costruisce i migliori cicli di feedback.

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

Community di apprendimento opzionale: https://t.me/GyaanSetuAi