L'intelligenza artificiale renderà obsoleti i tester del software? Probabilmente no. L'IA è molto più propensa a rendere obsoleti gli sviluppatori software. Ma non c'è dubbio che l'IA comporti un grande cambiamento nel collaudo del software. Questo post discute alcuni dei cambiamenti che probabilmente vedremo molto presto.
Tempo fa, l'automazione dei test ha sostituito i tester nel lavoro da "robot", ossia eseguire test progettati da qualcun altro. I tester non sono scomparsi. Hanno avuto più tempo a disposizione per progettare più e migliori test e, ovviamente, automatizzarli. Successivamente, si pensava che i metodi agili e il DevOps avrebbero reso il tester superfluo, poiché sarebbero stati gli sviluppatori a testare il proprio codice durante lo sviluppo. Si è scoperto che la maggior parte degli sviluppatori preferisce scrivere codice piuttosto che testarlo. Abbiamo anche imparato che è necessario testare l'intero processo aziendale attraverso i confini delle applicazioni. I tester hanno ampliato il proprio raggio d'azione al testing esplorativo e al testing end-to-end.
Come l'IA trasformerà il collaudo del software
L'IA trasformerà il ruolo del tester diventando un grande aiuto in attività che i tester non svolgono particolarmente bene. L'IA modellerà probabilmente l'intero processo di collaudo piuttosto che solo migliorare compiti individuali.
È caratteristico del lavoro dei tester che le stesse cose vengano fatte più volte con poche variazioni e molta attesa. I tester aspettano:
- una nuova release da testare.
- il completamento dei test automatici.
- una correzione a un bug che impedisce ulteriori test.
- E così via...
I tester svolgono inoltre attività che richiedono grande attenzione ai dettagli e che possono risultare poco motivanti, come analizzare i risultati dei test automatici, mantenere test automatici che hanno fallito in seguito a cambiamenti dell'applicazione o calcolare e riportare lo stato dei test. Ogni minuto che si dedica a questi importanti compiti, qualcun altro aspetta i risultati dei test.

La maggior parte del lavoro nel collaudo è l'esecuzione dei test. È in gran parte automatizzata ma continua comunque a richiedere sforzo umano; e quello sforzo umano rallenta l'intero ciclo di test. Serve ancora l'intervento umano per automatizzare i test che il robot dovrà eseguire, per mantenere quei test quando l'applicazione cambia, e per analizzare i risultati. Esistono già strumenti di test abilitati all'IA che possono selezionare e ordinare i test in base alla probabilità di individuare errori, autoriparare i test interrotti o precompilare i report dei difetti.
L'impatto immediato dell'IA per i QA
Nella prossima ondata di creazione dei test automatizzati, vedremo strumenti che generano test direttamente da una descrizione di casi d'uso o ancora più direttamente osservando un tester umano che esplora l'applicazione. Questo rappresenta un grande passo dall'automazione dei test verso il collaudo autonomo. Non siamo però ancora completamente arrivati a quel punto. La maggior parte delle applicazioni e dei processi aziendali sono proprietari, e i dati necessari per addestrare l'IA sono sparsi tra vari strumenti di collaudo software. Pertanto, è probabile che inizialmente vedremo test supervisionati dall'uomo piuttosto che test completamente autonomi.
La maggior parte dei team software ha troppo pochi test piuttosto che troppi. Con l'utilizzo dell'IA, la quantità di test disponibili aumenterà verosimilmente. Sebbene eseguire i test automatici sia praticamente gratuito, la velocità con cui si ottengono i risultati ha ancora importanza. Sarebbe quindi utile organizzare le esecuzioni di regressione affinché i test più propensi a individuare errori siano eseguiti per primi. Se l'IA comprende abbastanza bene i dati sul ciclo di vita, può analizzare i cambiamenti del codice e i risultati dei test precedenti, determinare in che ordine eseguire i test e accelerare così il ciclo di feedback.
Se l'IA è in grado di selezionare i test in base alla probabilità di rilevare errori, dovrebbe anche essere in grado di prevedere dove è probabile che si trovino questi errori. Un tester umano potrebbe anche trarre vantaggio da queste informazioni, concentrando proprio su queste funzionalità la fase esplorativa dei test manuali.
Per molti, l'IA è sinonimo delle capacità di generazione del linguaggio naturale dimostrate da ChatGPT. Anche queste capacità trovano spazio nel collaudo. Se l'IA sa come generare un caso di test, allora sa anche come descrivere l'esecuzione nel report dei difetti. È probabile che una segnalazione di difetto generata da un'IA sia più chiara e comprensibile rispetto a una scritta in fretta da un umano desideroso di passare subito al caso successivo.
Oltre ai report dei difetti, il collaudo genera molti dati quantitativi sulla qualità del software e persino sui processi che hanno creato il software stesso. Il problema è che chi lavora vicino ai test, pur conoscendo questi dati, spesso non sente la necessità di spiegarli a chi dovrebbe comprenderli, mentre chi dovrebbe capirli spesso non ha interesse ad ascoltare. L'IA può rendere un grande servizio a entrambe le parti e ai loro responsabili trasformando le statistiche dei test in intuizioni verbali, conclusioni e raccomandazioni.
L’IA sostituirà i QA?
È facile lasciarsi tentare dall'immaginare quale sia più semplice per l'IA sostituire: un tester o uno sviluppatore. È più facile generare un test che generare del codice. D'altra parte, però, generare test significativi richiede più immaginazione. In fin dei conti, programmare trasforma un requisito in codice che fa funzionare l'applicazione, mentre il testing dovrebbe trasformare un requisito in uno o più test che dovrebbero far "rompere" l'applicazione.
Su larga scala, la progettazione dei test è comunque più semplice della programmazione. Costruire un grande sistema informativo è molto più impegnativo che scrivere il codice per una singola funzione. Progettare test per un grande sistema informativo non è molto più difficile che progettare test per una singola funzionalità. È semplicemente più lavoro. Tuttavia, la configurazione dei test può essere molto più impegnativa.
Ad esempio, impostare e verificare un test che crea un ordine in un'app mobile, che viene poi elaborato in Salesforce e successivamente gestito per l'evasione in SAP, è un compito molto complesso—anche se lo scenario di test stesso è abbastanza semplice. Avremo bisogno di umani assistiti dall'IA così come di IA assistita dagli umani.
Anche questi piccoli esempi dimostrano che le cose saranno già molto diverse nel prossimo futuro. L'IA migliorerà la velocità e la produttività nello sviluppo del software, ma non sarà ancora in grado di costruire software e garantirne la qualità in modo autonomo.
Se fossi oggi un tester software a tempo pieno, non mi preoccuperei che l'IA possa rubarmi il lavoro. Mi preoccuperei invece di come posso testare l'IA.
Interessato a maggiori informazioni su IA e Software Testing? Allora iscriviti alla newsletter del CTO Club per tutte le ultime novità.
