\ /
Sircle  TESTING  Artificial Intelligence  Quality Assurance 

Tra promesse e realtà nell’Intelligenza artificiale

Nel corso di questo sprint ci siamo dati l’obiettivo di approfondire il ruolo dell'Intelligenza Artificiale nel processo di testing, cercando di comprendere se e come integrarla nelle nostre attività quotidiane.

Abbiamo iniziato questo percorso esaminando da vicino alcuni di quegli strumenti che già vengono commercializzati come ‘AI powered’ al fine di valutarne le potenzialità… tuttavia, con grande sorpresa, siamo finiti con il mettere in discussione l’utilità di molti di essi.

In questo articolo vogliamo condividere le nostre prime impressioni riguardo a ciò che attualmente il mercato ha da offrire rispetto alle reali esigenze di coloro che operano in questo settore.

Tipologie di Strumenti AI per il Testing

Facendo una prima scrematura possiamo individuare due macro gruppi di strumenti che affermano di sfruttare l'Intelligenza Artificiale per scopi di testing:

  1. Applicazioni "low code"
  2. Applicazioni che automatizzano compiti manuali

Applicazioni "low code"

Le applicazioni low code non sono una novità nel mondo del software, anzi. Il loro obiettivo è semplificare il processo di sviluppo dei test, consentendo a persone con poca esperienza di creare dei test senza scrivere manualmente il codice. La sorpresa è stata scoprire che, nonostante “ecquipaggiate” con l’AI, questi tool sembrerebbero svolgere le stesse identiche funzioni che svolgevano prima.

Più che a un’innovazione, sembrerebbe di trovarsi di fronte a un rebranding (quello che prima non vendeva come ‘low code’, adesso viene venduto come come AI powered). Ma il problema principale di queste applicazioni rimane il loro costo eccessivo e il fatto che siano pensate per utenti non esperti.

I tester (soprattutto se devono fare esperienza) non hanno bisogno di strumenti che scrivano codice al posto loro. Questi strumenti solitamente vengono acquistati da organizzazioni che preferiscono gestire internamente il processo di test anziché assumere personale qualificato per farlo.

Applicazioni che automatizzano compiti manuali

La seconda categoria si è dimostrata invece la più fantasiosa. Ad esempio, abbiamo trovato un'applicazione che registra il parlato (per esempio, "ho bisogno di una funzionalità che faccia x, y e z"), per poi tradurlo in una user story e relativi scenari di test. Sebbene la demo sembri interessante, dopo i primi secondi di hype (e leggendo attentamente che cosa c’è scritto in quei test), ci si inizia a porre due domande:

Innanzitutto le user story andrebbero scritte in modo accurato (non per approssimazione) perché queste dovranno risultare comprensibili da più persone fornendo informazioni di valore.

Inoltre, gli scenari di test dovrebbero tenere conto di requisiti pre-esistenti, come l’applicazione ha risposto in passato, le dipendenze di esecuzione, possibili regressioni e, più in generale, di tutta una serie di informazioni non contenute nella user story a cui si riferiscono.

I test case dovrebbero sempre essere progettati ragionando a due livelli: uno più alto, che dichiara cosa deve essere fatto, e uno più basso, che descrive come farlo, ovvero le procedure da seguire.

Invece, quando si utilizzano questi strumenti per generare test case, si ottiene una quantità impressionante di test (ma di qualità bassisima) poiché non avviene questa separazione. Par analogia, sarebbe come sviluppare un’applicazione senza separare la presentazione dalla logica.. o in questo caso, il comportamento dalla procedura.

La generazione di test case con l'AI solleva dunque il problema dell'automazione cieca.

Conclusioni

In conclusione, è chiaro che in commercio esistono tante altre alternative valide (e costose) che sfruttano l'AI ma come spiegato da Marina nel suo articolo Cerca i problemi prima delle soluzioni, è fondamentale avere il pensiero critico necessario per riconoscere quando l’implementazione dell’AI risulta superflua.

Dal punto di vista della quality assurance, l'obiettivo dell'AI non dovrebbe essere eliminare la progettazione o il lavoro creativo. l'AI Dovrebbe rendere possibile ciò che attualmente non è facilmente testabile, ad esempio:

  • Determinare se un'immagine è corretta in base al suo contenuto visivo, piuttosto che al link o alla descrizione
  • Calcolare la copertura dei test
  • Identificare le dipendenze nel codice per prevedere le regressioni
  • Ipotizzare quale commit abbia causato una regressione confrontandolo con quanto descritto in un ticket di bug
  • Generare rapporti sui test

Nei prossimi articoli spiegheremo come già stiamo utilizzando l’intelligenza artificiale nel processo di testing, fornendo esempi molto più pratici e realistici di come l'AI possa aiutare.

comments powered by Disqus