Scrivo test per guadagnarmi da vivere. Anche se, in parte, per guadagnarmi da vivere. E il segreto imbarazzante della professione di tester è che la maggior parte di noi trascorre più tempo a mantenere vecchi test che a scriverne di nuovi. Un pulsante cambia nome, un selettore cambia, una pagina viene riprogettata — e all’improvviso, 40 test falliscono, nessuno a causa di veri bug. Solo perché l’interfaccia è cambiata.
Quindi, quando gli strumenti di test AI hanno promesso “test auto-riparatori,” ero scettico ma disperatamente ottimista. Come un pompiere esausto che sente parlare di un edificio che si spegne da solo.
Si scopre che alcuni di essi mantengono davvero le loro promesse.
Dove i test AI funzionano realmente
Generazione di test con Copilot è la funzionalità di test AI più utile che abbia mai incontrato. Scrivi una funzione, passa al file di test, e Copilot propone dei casi di test — inclusi casi limite a cui non avrei pensato.
La settimana scorsa, ha proposto un test per un’input di numero negativo su una funzione che non avevo considerato. La funzione si bloccava con numeri negativi. Copilot ha trovato un vero bug scrivendo un test che non avrei scritto. È… piuttosto fantastico.
Il problema: Copilot genera test che passano, ma “passano” e “testano la cosa giusta” sono diversi. Tende a testare l’implementazione piuttosto che il comportamento — quindi, se l’implementazione è errata ma coerente, Copilot scriverà test che convalidano il comportamento sbagliato. Devi sempre leggere i test generati e chiederti “questo test verifica davvero ciò che mi importa?”
Test visivi con Applitools hanno risolto un problema che mi rendeva ansioso riguardo ai cambiamenti nel frontend. Il test di regressione visiva significava un tempo una comparazione pixel per pixel, che falliva costantemente a causa di differenze di smoothing, aggiornamenti del motore di rendering, e contenuti dinamici come timestamp o pubblicità.
Applitools utilizza l’IA per confrontare gli screenshot come farebbe un essere umano — ignorando le differenze irrilevanti mentre cattura quelle significative. Una data che cambia? Ignorata. Un pulsante che si sposta di 50 pixel? Segnalato. Un cambiamento di colore del testo? Segnalato. Contenuto pubblicitario dinamico? Ignorato.
Siamo passati da oltre 30 falsi positivi visivi per versione a circa 2. Il mio team QA ha smesso di temere le revisioni dei test visivi.
Test auto-riparatori con Testim sono la cosa più vicina alla magia. L’IA segue diversi attributi di ogni elemento dell’interfaccia — il suo testo, la sua posizione, la sua classe CSS, gli elementi circostanti, e altro ancora. Quando uno degli attributi cambia (come una classe CSS rinominata), l’IA utilizza gli altri attributi per ritrovare l’elemento.
Prima di Testim: un refactoring CSS ha rotto 120 test. Dopo Testim: lo stesso tipo di refactoring ha rotto 3 test (quelli in cui l’elemento è stato effettivamente rimosso, non solo rinominato). Questo rappresenta una riduzione del 97,5% dei falsi positivi. Le ore risparmiate nella manutenzione dei test sono significative.
Gli strumenti che mi hanno deluso
Agenti di test completamente autonomi — quelli che promettono “basta indirizzarli verso la tua applicazione e testeranno tutto” — non ci sono ancora. Ho provato due strumenti di test autonomi diversi. Hanno trovato alcuni problemi di funzionalità di base ma hanno mancato casi limite, scritto test fragili e generato falsi positivi che richiedevano più tempo per l’indagine rispetto ai problemi che avevano trovato.
La tecnologia ci arriverà. Ma semplicemente non è così oggi.
Test di integrazione generati dall’IA sono mediocri. I test unitari (che testano funzioni individuali) sono ben adatti alla generazione da parte dell’IA perché il perimetro è ristretto e le aspettative sono chiare. I test di integrazione richiedono di capire come interagiscono i componenti, quale è il comportamento del sistema atteso e dove si trovano i modi di fallimento interessanti. L’IA non ha ancora abbastanza contesto per questo.
La mia attuale pila di test
Test unitari: Copilot genera delle prime bozze, io rivedo e aggiusto. La copertura è passata dal 45% al 78% senza aggiungere tempo di test dedicato. La qualità dei test individuali non è sempre perfetta, ma il volume compensa.
Test E2E: Testim per i percorsi utente chiave. L’auto-riparazione mantiene la manutenzione bassa. Abbiamo più di 200 test E2E che vengono eseguiti in CI e rimangono davvero verdi.
Test visivi: Applitools per pagine e componenti chiave. Rileva le regressioni CSS che i test funzionali mancano completamente.
Test manuali: Sempre insostituibili per i test esplorativi, la valutazione dell’UX e le domande “questo sembra corretto?” a cui nessuna IA può ancora rispondere.
Ciò che dico ai team che iniziano
Inizia con Copilot per i test unitari. È l’investimento in test AI meno impegnativo e più redditizio. Stai già scrivendo codice in un IDE — i test arrivano essenzialmente gratuitamente.
Aggiungi poi Applitools se hai un’applicazione focalizzata sul visivo. La configurazione richiede un giorno, e la riduzione dei falsi fallimenti visivi è immediata.
Considera Testim o simili se la manutenzione dei test E2E richiede molto tempo al tuo team. Il valore è proporzionale alla grandezza della tua suite di test — se hai 20 test E2E, la manutenzione manuale è gestibile. Se ne hai 200+, l’auto-riparazione è un salvatore.
Non procurarti ancora strumenti di test autonomi. Aspetta ancora un anno.
La verità scomoda
Gli strumenti di test AI rendono il test più veloce e meno doloroso. Non rendono il test riflessivo. La parte difficile del test — decidere cosa testare, comprendere i rischi, dare priorità ai casi di test che contano davvero — rimane interamente un lavoro umano.
Una suite di test con il 95% di copertura del codice proveniente da test generati dall’IA può ancora mancare il bug che fa crashare la produzione, perché la copertura del codice misura ciò che è stato eseguito, non ciò che è stato verificato. L’IA ha scritto test che verificavano i valori di ritorno ma non controllavano gli effetti collaterali. Ha verificato il percorso felice ma ha saltato la gestione degli errori.
Usa l’IA per gestire il lavoro noioso. Usa il tuo cervello per il lavoro importante. Questa è la combinazione che funziona davvero.
🕒 Published: