Tra promesse e realtà nell’Intelligenza artificiale

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.

Related Posts

Dynatrace Innovate: Observability & Application Security, Mandatory for Business Resilience

Dynatrace Innovate: Observability & Application Security, Mandatory for Business Resilience

Maggiore produttività, Software Sicuro e performante, l'observability estesa offerta da Dynatrace

Cosa vuol dire davvero testare?

Cosa vuol dire davvero testare?

L’obiettivo principale del testing non è dato dalla tecnica usata o dal livello in cui si opera, ma dalla qualità che si vuole verificare. Le tecniche di test sono strumenti per raggiungere questo sco

Aumentare la copertura dei rischi: test case ad Alto Livello vs test case a Basso Livello

Aumentare la copertura dei rischi: test case ad Alto Livello vs test case a Basso Livello

Anche se un software supera tutti i test senza mostrare errori, non è garantito che soddisfi completamente i requisiti degli utenti o che funzioni come previsto in tutte le situazioni reali. I test c

La ricerca scientifica e TheoryFlow

La ricerca scientifica e TheoryFlow

Una piccola e confusa introduzione

 Grazie CrowdStrike per averci ricordato a che cosa serve il Testing

Grazie CrowdStrike per averci ricordato a che cosa serve il Testing

Il caso di CrowdStrike dimostra quanto sia essenziale investire in attività di QA e testing. Questi processi non solo migliorano l'affidabilità e la sicurezza del software, ma proteggono anche le azie

La teoria dell'incommensurabilità delle parole nelle lingue di Feyerabend

La teoria dell'incommensurabilità delle parole nelle lingue di Feyerabend

La metafora come strumento scientifico e filosofico

Case study: Automated tests for a certified webmail client

Case study: Automated tests for a certified webmail client

Questa intervista/case study si concentra sulle attività di testing svolte per una soluzione di posta elettronica certificata, con particolare attenzione alla versione client.

L'informatica, specchio della scienza anarchica di Feyerabend e di Lakatos: seconda parte

L'informatica, specchio della scienza anarchica di Feyerabend e di Lakatos: seconda parte

Fondamenti per una nuova ontologia informatica