Scrivo test per vivere. Beh, in parte per vivere. E il brutto segreto della professione di tester è che la maggior parte di noi trascorre più tempo a mantenere vecchi test piuttosto che scriverne di nuovi. Un pulsante viene rinominato, un selettore cambia, una pagina viene ridisegnata — e improvvisamente 40 test falliscono, nessuno a causa di bug reali. Solo perché l’interfaccia è cambiata.
Così quando gli strumenti di test AI hanno promesso “test autoguaritori,” ero scettico ma disperatamente speranzoso. Come un pompiere bruciato che sente parlare di un edificio autoprotettivo.
Si scopre che alcuni di essi funzionano davvero.
Dove funziona realmente il testing AI
Generazione di test con Copilot è la funzione di testing AI più utile che abbia incontrato. Scrivi una funzione, passa al file di test e Copilot suggerisce casi di test — inclusi casi limite che non avrei mai pensato di considerare.
La scorsa settimana ha suggerito un test per l’input di numeri negativi 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. È… fantastico.
Il problema: Copilot genera test che passano, ma “passa” e “testa la cosa giusta” sono diversi. Tende a testare l’implementazione piuttosto che il comportamento — quindi se l’implementazione è sbagliata ma coerente, Copilot scriverà test che convalidano il comportamento errato. Devi comunque leggere i test generati e chiederti “questo test verifica ciò che mi interessa davvero?”
Testing visivo con Applitools ha risolto un problema che mi faceva temere le modifiche al frontend. Il testing di regressione visiva significava prima confronti pixel per pixel, che si rompevano costantemente a causa di differenze nell’antialiasing, aggiornamenti dei motori di rendering e contenuti dinamici come timestamp o annunci.
Applitools utilizza l’AI per confrontare schermate come farebbe un umano — ignorando differenze irrilevanti ma catturando quelle significative. Una data che cambia? Ignorata. Un pulsante che si sposta di 50 pixel? Segnalato. Un cambiamento nel colore del testo? Segnalato. Contenuti pubblicitari dinamici? Ignorati.
Siamo passati da oltre 30 falsi positivi visivi per rilascio a circa 2. Il mio team QA ha smesso di temere le revisioni dei test visivi.
Test autoguaritori con Testim sono la cosa più vicina alla magia. L’AI tiene traccia di più attributi di ogni elemento UI — il suo testo, posizione, classe CSS, elementi circostanti e altro ancora. Quando un attributo cambia (come una classe CSS rinominata), l’AI utilizza gli altri attributi per trovare comunque l’elemento.
Prima di Testim: un refactoring CSS rompeva 120 test. Dopo Testim: lo stesso tipo di refactoring rompeva 3 test (quelli in cui l’elemento era stato effettivamente rimosso, non solo rinominato). È una riduzione del 97,5% dei falsi fallimenti. Le ore risparmiate nella manutenzione dei test sono significative.
Gli strumenti che mi hanno deluso
Agenzi di testing completamente autonomi — quelli che promettono “basta puntarli sulla tua app e testeranno tutto” — non sono ancora pronti. Ho provato due diversi strumenti di testing autonomi. Hanno trovato alcuni problemi di funzionalità di base ma hanno perso casi limite, scritto test fragili e generato falsi positivi che richiedevano più tempo per essere investigati rispetto ai problemi che hanno trovato.
La tecnologia ci arriverà. Ma non è ancora qui oggi.
Test di integrazione generati dall’AI sono mediocri. I test unitari (che testano singole funzioni) sono ben adattati alla generazione AI perché l’ambito è ridotto e le aspettative sono chiare. I test di integrazione richiedono di comprendere come interagiscono i componenti, quale sia il comportamento previsto a livello di sistema e dove si trovano i modi di fallimento interessanti. L’AI non ha ancora abbastanza contesto per questo.
Il mio attuale stack di testing
Test unitari: Copilot genera le prime bozze, io rivedo e aggiusto. La copertura è passata dal 45% al 78% senza aggiungere tempo dedicato ai test. La qualità dei test singoli non è sempre perfetta, ma il volume compensa.
Test E2E: Testim per i percorsi utente fondamentali. L’autoguarigione mantiene bassa la manutenzione. Abbiamo oltre 200 test E2E che vengono eseguiti in CI e rimangono effettivamente verdi.
Test visivi: Applitools per pagine e componenti chiave. Cattura le regressioni CSS che i test funzionali mancano completamente.
Testing manuale: Rimane insostituibile per tes gi esplorativi, valutazioni UX e domande del tipo “questo sembra giusto?” a cui nessuna AI può ancora rispondere.
Cosa dico ai team che iniziano
Inizia con Copilot per i test unitari. È l’investimento di testing AI con il minor sforzo e il massimo ritorno. Stai già scrivendo codice in un IDE — i test arrivano essenzialmente gratis.
Poi aggiungi Applitools se hai un’applicazione visivamente pesante. L’installazione richiede un giorno e la riduzione dei falsi fallimenti visivi è immediata.
Considera Testim o simili se la manutenzione dei test E2E sta consumando il tempo del tuo team. Il valore è proporzionale alla dimensione del tuo suite di test — se hai 20 test E2E, la manutenzione manuale è gestibile. Se ne hai 200+, l’autoguarigione è un salvatore.
Non acquistare strumenti di testing autonomi ancora. Dagli un altro anno.
La verità scomoda
Gli strumenti di testing AI rendono il testing più veloce e meno doloroso. Non rendono il testing riflessivo. La parte difficile del testing — decidere cosa testare, comprendere i rischi, prioritizzare i casi di test che contano davvero — è ancora completamente lavoro umano.
Un suite di test con il 95% di copertura del codice da test generati dall’AI può ancora perdere il bug che mette fuori uso la produzione, perché la copertura del codice misura ciò che è stato eseguito, non ciò che è stato verificato. L’AI ha scritto test che controllavano i valori di ritorno ma non verificavano gli effetti collaterali. Ha verificato il percorso felice ma ha saltato la gestione degli errori.
Utilizza l’AI per gestire il lavoro noioso. Usa il tuo cervello per il lavoro importante. Questa è la combinazione che funziona davvero.
🕒 Published: