Idea

I test sono l'appiglio che resta su un codice che non si è scritto da sé

Info

Scritto originalmente in francese. Tradotto dall'IA — il significato è stato preservato, non la prosa.

Idea principale

Chi ha scritto il proprio codice lo padroneggia grazie alla memoria: sa cosa ha deciso, dove ha preso una scorciatoia, quali parti si toccano. Quando il codice lo produce un assistente al ritmo di decine di commit al giorno, questa memoria non esiste. Restano schermate che funzionano, un repository che nessuno ha letto per intero e parti che non si saprebbero spiegare a voce.

In questa situazione ciò che rimane sono i test. Un progetto messo in piedi in pochi giorni può contarne diverse centinaia; l'assistente li rilancia molto spesso, e la maggior parte delle volte non si rompe niente. Quando qualcosa si rompe, il test non dice soltanto che c'è un problema: dice quale comportamento atteso non è più rispettato, quindi localizza, là dove la schermata rotta si limita a segnalare.

Il test qui non è quindi una garanzia di qualità nel senso abituale. È l'unico strumento che permette di mantenere la presa su un sistema di cui non si ha la memoria di costruzione.

Perché è importante

Cambia l'argomento con cui si difendono i test davanti a chi non programma. «I test sono una buona pratica» non pesa nulla di fronte alla velocità; «senza test non hai nessun modo di sapere cosa ha appena rotto l'ultima modifica in un codice che non hai letto» si capisce subito.

Indica anche cosa esigere in priorità da un assistente a cui si affida la produzione: non la copertura fine a se stessa, ma l'esistenza di una rete che renda il sistema interrogabile a posteriori.

Sfumature e limiti

L'appiglio non è un controllo. I test rilevano solo ciò che descrivono: non vedono il crollo con i volumi reali, né i difetti di sicurezza, né un'architettura che diventa impossibile da far evolvere.

E l'esigenza si dosa. Uno strumento interno molto semplice, a basso rischio e con vita breve, non richiede una strategia di test completa: la questione torna a essere quella della portata.

Domande aperte

  • Su un codice che non si è scritto, come sapere se l'insieme dei test copre i comportamenti che contano, invece di quelli che erano facili da scrivere?