Il testing del software oggi

Gli scenari di riferimento e le logiche ‘crowd’ e ‘automation’ nei processi di verifica applicativa secondo AppQuality e Quence.

In questa intervista Mariagrazia Brunetti, Founder & Managing Director di Quence, e Luca Manara, CEO e Co-Founder di AppQuality approfondiscono alcune tematiche legate al software e in particolare alle attività e processi di testing.

Partiamo dal tema del crowd testing e della test automation. Cosa si intende con questi due termini e quali sono i rispettivi obiettivi e i vantaggi che, rispettivamente, producono per chi li utilizza rispetto ad altre metodologie di testing?

Luca Manara: Il Crowd testing è una metodologia di test del software che porta il reale utente finale all’interno del processo di sviluppo. Questo approccio rivoluzionario permette di ampliare enormemente le risorse dei team Dev con un ingaggio a consumo, rapido, efficace e più economico del test tradizionale. Avendo a disposizione un crowd di tester si ha accesso a una maggiore copertura di dispositivi governati dal vero target finale del prodotto/ servizio o anche da tester esperti. I team di sviluppo, quindi, guadagnano in risorse (più tester e più dispositivi), tempo (vengono svincolati dalle attività di testing e possono concentrarsi sul fixing riducendo il time to market) e costi (secondo ITIC, ogni ora spesa a correggere un bug ha un costo medio di 100.000$ per l’azienda).

Mariagrazia Brunetti: La trasformazione digitale in atto in questi ultimi anni rende necessario sviluppare e rilasciare software sempre più velocemente per soddisfare le esigenze sempre più impellenti degli utenti e dei mercati. Il Test è essenziale per rendere disponibili applicazioni innovative che siano affidabili e non comportino rischi di business che potrebbero compromettere la reputazione delle aziende. E’ necessario fornire dei feedback rapidi sia sulla correttezza delle nuove funzionalità inserite nell’applicazione che sul funzionamento di quelle “core” di base (la cosiddetta “non regressione”). Tutto questo si declina in nuove metodologie e processi di sviluppo, Test, Operation che richiedono una revisione completa delle modalità di sviluppo e test con un “mantra” che deve essere applicato a tutte le attività : Automatizzare! Definire l’automazione dei test come mera esecuzione di attività ripetitive mediante un tool opportunamente configurato è sminuente: E’ fondamentale implementarla dopo avendo già definito una strategia di test che miri ad ottimizzare i test eseguiti in base al rischio di business delle applicazioni.

Quali suggerimenti potete dare alle organizzazioni che intendono avvalersene per poterle adottare nel modo più efficace ed efficiente possibile, e ottenere un risultato di qualità?

 
Luca Manara, CEO e Co-Founder di AppQuality

L.M.: Il nostro suggerimento è quello di utilizzare il giusto metodo per ogni fase. Per verificare la stabilità del software, ad esempio, vengono svolte azioni ripetitive ma senza dubbio necessarie. Queste possono essere automatizzate in modo da replicarle più volte durante i cicli di sviluppo senza occupare il team Dev. Anche quando viene introdotta una nuova funzionalità, la Test Automation permette di verificare che la qualità del software non regredisca, ma lo fa riducendo i costi (rispetto a test svolti manualmente) e ottimizzando gli effort del team. Il Crowd Testing, al contrario, viene svolto manualmente da utenti reali che verificano il funzionamento del software in condizioni reali. Il valore di questo test nei processi end2end è veramente altissimo: non solo permette di trovare bug che, ad esempio, possono bloccare un utente dal completare un acquisto su un e-commerce, ma rispondono a domande come “perché nessuno visualizza la pagina dei servizi?”, “perché il tempo di permanenza sul carrello è altissimo ma poi non viene completato l’acquisto?”. Sono i veri clienti/ utenti a raccontare la loro esperienza. Come se non bastasse, lo fanno con una grande varietà di device, sistemi operativi, ma anche in momenti diversi rispetto ai Dev, ad esempio durante le vacanze o nel weekend. Permette di identificare difetti che la parte di automazione end2end non coglierebbe grazie a test esplorativi su percorsi mentali scelti dall’utente reale e quindi non guidati.

Più nel dettaglio, qual è la base da cui partire e quali sono gli ‘step’ da seguire per la loro integrazione nei processi? È possibile adottare contemporaneamente entrambe?

L.M.: Integrare Crowd Testing e Test automation nei processi di sviluppo e controllo della qualità non è solo possibile, ma fortemente consigliato. Le due attività per certi versi sono agli antipodi dell’attuazione e costo: short term il Crowd Testing è veloce ed economico, mentre l’automation è sicuramente più complessa ed onerosa, tuttavia a tendere la quantità di Crowd Testing può ridursi e rimanere attiva solo su funzionalità specifiche e solitamente nuove, mentre l’automation dovrebbe “coprire” tutto il prodotto (in gergo Coverage). Per intenderci il crowdtesting, delegando ad un crowd esterno le attività di test manuali, ha un’alta scalabilità. Basta un Test Manager o nel nostro caso un Customer Success Manager che scriva il Manuale di Test e 5,10,50 persone vengono chiamate a coprire centinaia di casi di test. Ovviamente è importante che mentre il Crowd Testing provvede a garantire la qualità in tempo 0, parallelamente il Quality Engineering Team inizi a prendere il lavorato del Test Manager e codificare dei test automatici, in modo da togliere dalle “mani del crowd” le attività che sono state già effettuate. E’ ovvio che funzionalità come il login o un bonifico ad un certo punto sia meglio automatizzarle perché a tendere costerebbe troppo e sarebbe poco utile far testare ogni settimana manualmente e lentamente queste cose. Allo stesso tempo è sempre utile far testare ad un vero tester le nuove feature, prima di scrivere un codice che le userà poi allo stesso modo “per sempre”.

 
Mariagrazia Brunetti, Founder & Managing Director di Quence

M.B.: Ritengo opportuno rispondere contemporaneamente alle due domande poiché richiedono considerazioni conseguenti dettagliate. La Test Automation e il Crowd Testing sono due attività di Testing che hanno obiettivi e applicabilità diversi che le rendono complementari tra loro, in termini di operatività, processi, tempistiche e skill richiesti differenti, e che quindi le rendono adatte ad essere adottate entrambe per ottenere il risultato di assicurare in modo più completo la qualità del prodotto rilasciato, soddisfacendo contemporaneamente le esigenze di business che richiedono tempi di time-to-market stringenti. La Test Automation è una attività preminentemente tecnica che viene adottata per aumentare la velocità, produttività, efficienza e ripetibilità del testing in due situazioni tipiche correlate tra loro. La prima e più immediata in termini di comprensione, è la esecuzione delle sessioni di regressione quando una nuova versione di un’applicazione viene rilasciata, che prevedono l’esecuzione di un set di test cases che ad ogni rilascio verificano che non ci siano stati problemi i su funzionalità già presenti a causa delle nuove implementazioni; poiché i test devono essere ripetuti più volte vale la pena di automatizzarli in modo che la loro esecuzione richieda tempi inferiori e assicuri la ripetibilità degli scenari d’uso verificati; la seconda è la necessità di automatizzare il più possibile le attività nella catena di delivery nei processi di sviluppo DevOps, per accelerare anche in questo caso le tempistiche di rilascio e la ripetibilità delle verifiche previste dai “gates” che vengono definiti per i passaggi alle varie fasi del processo di delivery. Viceversa il Crowd Testing permette di aumentare le coperture end2end su molti device reali utilizzando utenti reali. Niente automatismi quindi, ma feedbacks sulla User Experience di clienti reali e sulla verifica del funzionamento sul più ampio ventaglio possibile di contesti di utilizzo, quali sistemi operativi, dispositivi fisici, browsers e relative versioni, utilizzi e sequenze di azioni e interazioni non previsti, ecc, ottenendo così delle valutazioni principalmente di tipo qualitativo sul prodotto testato.

Come si declina infine la collaborazione tra AppQuality e Quence sul versante testing appena esplorato?

L.M.: Siamo convinti che l’integrazione di Test Automation e Crowd testing permetta di raggiungere un elevatissima qualità, ma allo stesso tempo siamo consapevoli che nel mercato questa integrazione non stia diventando un modello. Non è sicuramente una novità, sono anni che si parla dei vantaggi della combinazione di queste metodologie ma non è affatto semplice trovare vendor specializzati in entrambe le soluzioni. Per questo AppQuality e Quence hanno pensato di proporsi come partner unendo e condividendo le competenze per poter offrire un servizio pensato per raggiungere la massimo qualità del software.

M.B.: Crediamo che la Test Automation e il CrowdTesting siano due approcci diversi ma complementari, ma soprattutto entrambe sono necessarie per garantire la qualità del software sotto vari aspetti. In Quence proponiamo un approccio olistico al Testing che parte dalle metodologie e strategie e si fonda pensantemente sul Test Automation. Per poter offrire ai nostri clienti un supporto più completo in tutte le attività di Quality Assurance, abbiamo deciso di collaborare con AppQuality, un’azienda Italiana come noi, leader nel settore del Crowd Testing. In Quence crediamo molto nella collaborazione e sinergia tra aziende e a maggior ragione riteniamo che la sinergia Quence-AppQuality possa generare valore per i nostri Clienti ma anche per le due aziende. Insieme, abbiamo dato vita a un progetto di test di un’importante realtà con ottimi risultati che condivideremo nei prossimi mesi.


A cura della redazione

Office Automation è da 38 anni il mensile di riferimento e canale di comunicazione specializzato nell'ICT e nelle soluzioni per il digitale, promotore di convegni e seminari che si rivolge a CIO e IT Manager e ai protagonisti della catena del val...

Office Automation è il periodico di comunicazione, edito da Soiel International in versione cartacea e on-line, dedicato ai temi dell’ICT e delle soluzioni per il digitale.


Soiel International, edita le riviste

Officelayout 198

Officelayout

Progettare arredare gestire lo spazio ufficio
Luglio-Settembre
N. 198

Abbonati
Innovazione.PA n. 56

innovazione.PA

La Pubblica Amministrazione digitale
Luglio-Agosto
N. 56

Abbonati
Executive.IT n.5 2024

Executive.IT

Da Gartner strategie per il management d'impresa
Settembre-Ottobre
N. 5

Abbonati