La trappola dei test con l'IA
Senti qualcuno dire "questo trimestre abbiamo rilasciato il 40% di test in più" e tutti annuiscono.
L'ho visto accadere in un'azienda SaaS a Tokyo. Il responsabile QA era orgoglioso. Il management era felice. La pipeline era verde.
Sei settimane dopo, un sistema di pagamento si è interrotto per 72 ore. Nessuno se n'è accorto perché l'IA aveva scritto test che verificavano l'assenza di errori invece della correttezza dei dati.
Questa è la Testing Blindness.
Accade quando il tuo team genera molti test ma non è in grado di capire quando quei test ti stanno mentendo. L'IA rende facile confondere la copertura dei test con la qualità dei test.
Un recente post su Qiita mostra esattamente questa difficoltà. Un ingegnere ha usato l'IA per gestire progetti privi di automazione. I test arrivavano velocemente. Le metriche sembravano ottime.
Ma l'ingegnere ha dovuto imparare manualmente Playwright e il testing delle API. Perché? Perché l'IA sapeva scrivere la sintassi, ma non capiva come funzionasse il sistema.
La Testing Blindness ha tre sintomi principali:
• Atrofia delle asserzioni (Assertion Atrophy): i test passano perché verificano se il codice va in crash, non se funziona correttamente. • Cecità dei casi limite (Boundary Case Blindness): l'IA si concentra sui "happy path". Ignora i casi limite come input null o race condition. • Inflazione della fiducia nelle regressioni (Regression Confidence Inflation): ti senti al sicuro perché il numero di test è raddoppiato. In realtà, hai solo raddoppiato la tua falsa sicurezza.
Nella mia esperienza, i team passano da zero test a 1.200 test in pochi mesi usando l'IA. I report sembrano perfetti. Il tasso reale di rilevamento dei bug diminuisce.
In Giappone, l'attenzione alla gestione e ai processi (kanri) può far percepire questi numeri elevati come un successo. In Occidente, i team spesso saltano i test perché l'IA lo rende facile. Entrambe le strade portano a fallimenti in produzione.
L'IA ottimizza le metriche mentre danneggia la tua capacità di fare debugging.
Se usi l'IA nel QA, segui queste regole:
- Effettua un audit sui test settimanalmente: scegli 5 test generati dall'IA a caso. Chiediti: "Cosa farebbe sì che questo test passi in modo errato?". Se non riesci a rispondere velocemente, hai un punto cieco.
- Stabilisci una quota limite: per ogni 10 test dell'IA, scrivi manualmente 2 test per i casi limite (edge case).
- Usa il test delle 3 del mattino: chiediti se questi test riuscirebbero a rilevare un guasto alle 3 del mattino. Se non ne sei sicuro, non sono abbastanza validi.
- Mantieni un modulo manuale: testa una sezione critica a mano. Questo mantiene affilate le tue capacità di debugging.
Non confondere il volume dei test con la loro qualità. Non lasciare che l'efficienza sostituisca il giudizio. I test che ti salvano sono quelli che comprendi davvero.
Il tuo team ha riscontrato un calo della qualità dei test dall'uso dell'IA? Condividi la tua esperienza qui sotto.
Optional learning community: https://t.me/GyaanSetuAi