Ripensare l’Assicurazione della Qualità nell’era dell’AI Generativa

Ripensare l'Assicurazione della Qualità nell'era dell'IA Generativa

L’IA generativa consente agli sviluppatori di software di creare codice molto più velocemente rispetto al passato. Per gli ingegneri di test della qualità del software incaricati di garantire che le applicazioni vengano rilasciate in tempo e senza errori, GenAI rappresenta sia una sfida che una soluzione per affrontare questo problema. Più specificamente, offre l’opportunità di sottolineare l’importanza di testare l’esperienza utente.

Per troppo tempo, gli ingegneri della garanzia di qualità sono stati costretti a dare priorità ai test di funzionalità, prestazioni e sicurezza rispetto ad altri aspetti. Ora è l’alba di una nuova era di testing che si dimostra più completo e offre una vasta gamma di vantaggi per ingegneri e tester.

Il focus dei programmi di testing del software

La qualità del software si è evoluta per dare priorità alle seguenti sette dimensioni, elencate nell’ordine della loro importanza per il valore aziendale:

  1. Funzionalità: Garantire che un’applicazione sia adatta in modo che soddisfi i requisiti del suo design.
  2. Usabilità: Valutare l’interfaccia utente di un’applicazione e il flusso di lavoro per garantire che possa essere facilmente navigata e compresa.
  3. Prestazioni: Testare le prestazioni dell’applicazione in diverse condizioni per evitare problemi di latenza e ottimizzare i tempi di risposta.
  4. Coerenza: Convalidare l’output di un’applicazione per garantire risultati e comportamenti identici nel tempo e in diverse località.
  5. Sicurezza: Valutare la vulnerabilità di un’applicazione a potenziali attacchi per garantire che i dati siano sempre protetti.
  6. Resilienza: Garantire che i sistemi rimangano operativi in condizioni avverse e imprevedibili per riprendersi in modo adeguato e continuare a funzionare senza guasti critici.
  7. Adattamento ai feedback degli utenti: Assicurarsi che un’applicazione si adatti e incorpori nuove informazioni (come parte della maturità delle funzionalità) basate sui feedback dell’utente.

Questa lista è già abbastanza intimidatoria. Ottenere una copertura completa di ogni dimensione è un po’ come cercare di colpire un bersaglio in movimento. Le aspettative possono cambiare rapidamente, così come la disponibilità delle risorse necessarie per soddisfarle. GenAI offre l’opportunità di fare proprio questo.

Funzionalità, prestazioni e sicurezza continuano a essere prioritari nei test

GenAI permette agli sviluppatori di software di creare applicazioni altamente creative (ad esempio, quelle che generano contenuti, inclusi composizioni artistiche e musicali) e il testing di queste applicazioni richiede un approccio rivisto rispetto al testing tradizionale. La gamma di possibili output di queste applicazioni è più fluida/flessibile rispetto alle app tradizionali, il che comporta un aumento di:

  • Randomità (output meno prevedibile)
  • Rischio di comportamenti/output imprevisti
  • Colli di bottiglia delle prestazioni derivanti da algoritmi intensivi che mettono una maggiore pressione sulle risorse hardware

L’unico modo per affrontare la sfida presentata dalla lista sopra è combattere il fuoco con il fuoco, utilizzando strumenti assistiti da GenAI per la pianificazione e l’esecuzione dei test. Gli strumenti di test automatizzati dovrebbero costituire la base di ogni piano di test. Per l’ingegnere di test, ciò significa che sarà necessario impegnarsi di più per auditare il software, progettare piani di test ed eseguirli su larga scala. Ma, mentre il volume e la velocità di sviluppo del codice continueranno a richiedere molta attenzione, gli ingegneri di test dovranno continuare ad analizzare le interazioni degli utenti, simulando e convalidando le risposte e il comportamento dell’applicazione, soprattutto in casi limite in cui i modelli di intelligenza artificiale potrebbero avere difficoltà a generare output accurati.

GenAI richiede un nuovo approccio alla garanzia di qualità, uno che lavori in modo più intelligente e veloce. Dobbiamo aprirci all’applicazione di programmi di test creativi per adattarci a questo nuovo modo di sviluppare software. Ripensando alcune delle nostre vecchie metodologie, possiamo anticipare meglio i problemi fin dall’inizio e fornire software più performante, più sicuro e più user-friendly.