AppQuality Point of View

Come garantire la qualità del software: l’integrazione di Crowd Testing e Test Automation

Pubblicato il 14 Apr 2020

AppQuality 1

Nel mondo dello sviluppo del software, soprattutto negli approcci Agile e DevOps, il ruolo del test è diventato centrale ed esteso per garantire la qualità dei prodotti rilasciati in tempi sempre più accelerati. Le attività di testing vengono incluse nei cicli sviluppo di software e applicativi già dalle prime fasi, secondo l’approccio “shift left”, e rappresentano un investimento con elevato ROI per le aziende che mirano a produrre soluzioni di qualità. In questo panorama, nel corso del tempo, hanno assunto un’importanza business critical due tipologie di test che propongono approcci diversi ma allo stesso tempo complementari: il Crowd Testing e la Test Automation.

Crowd Testing: quali benefici

Il beneficio principale del Crowd Testing è senza dubbio quello di fornire velocemente ed efficientemente risorse ai team di sviluppo e alla Quality Assurance. Oltre al Crowd, un elevato numero di tester “commission driven” e “fresh eyes” coinvolti, le risorse includono anche una maggiore copertura di dispositivi. Tutto questo avviene sfruttando una piattaforma cloud as a service (PaaS) e costituisce un modello che permette di aumentare l’efficacia e l’efficienza delle attività di test. La grande quantità di tester iscritti alla piattaforma verifica la qualità delle applicazioni nell’ambiente reale (“out-of-lab testing”), end2end, sullo smartphone o browser personale. Supporta i team di Software Development eseguendo nelle varie fasi di sviluppo diversi tipi di test (dal test di copertura multidevice, al test di regressione, dal test esplorativo al test di usability). Quindi, avendo a disposizione un Crowd che verifica i test cases da differenti sistemi operativi e dispositivi, si possono effettuare test estensivi minimizzando i costi e riducendo il time-to-market. L’impiego dei tester del Crowd ha infatti il vantaggio di ottenere dei feedback rapidi sfruttando anche le giornate del weekend in cui il team di sviluppo non è normalmente operativo.

Quando utilizzare la Test Automation

La Test Automation viene tipicamente implementata da un team di esperti che affianca quello di sviluppo, ed è un approccio che permette di automatizzare le operazioni ripetitive ma necessarie eseguite nei test manuali che devono essere replicate più volte durante i cicli di sviluppo. Inoltre l’automazione del test permette di verificare funzionalità end to end di sistemi complessi in modo efficace e ripetibile, permettendo anche verifiche in step intermedi.

A ogni nuova funzionalità e modifica introdotta, infatti, gli stessi test devono essere eseguiti nuovamente per verificare che la qualità del software non regredisca. Il design di casi di test automatizzati diventa indispensabile per ridurre i costi e ottimizzare l’effort, che può essere dedicato a testare altre funzionalità, verificando contemporaneamente diversi aspetti del software e aumentando quindi la percentuale di copertura dei test.

Creare casi di test automatizzati riutilizzabili aiuta anche a diminuire gli errori che potrebbero verificarsi con i test manuali. La Test Automation, infatti, è particolarmente indicata anche per tutti i delicati casi di progetti mission-critical e business-critical.

Con l’introduzione delle tematiche di Continuous Testing e Continuous Delivery (CT/CD), l’automazione è diventata inoltre un requisito imprescindibile per raggiungere i nuovi obiettivi delle aziende, che necessitano di un feedback sulla qualità del software ad ogni stadio del ciclo di sviluppo, in modo da consegnare sul mercato un prodotto che soddisfi efficacemente i requisiti per cui è stato sviluppato.

La coesistenza e il coordinamento dei due metodi

Come intuibile, i due metodi vanno utilizzati in casi diversi, ed è proprio per questo però che ha senso la loro coesistenza e il loro coordinamento. Mentre il Crowd Testing permette di verificare il buon funzionamento dell’applicativo in condizioni reali (smartphone, browser in ambienti di test reali) e identificare difetti che la parte di automazione end2end non coglierebbe (grazie anche al modello esplorativo, su percorsi non pianificati, e vertendo su processi end2end), il test automatizzato è necessario in caso di verifica di stabilità e di non regression su percorsi “core”. Del resto non esiste quasi mai un’unica soluzione ad ogni problema ma l’integrazione delle due tecniche permette di migliorare sensibilmente la qualità del software prodotto: l’automazione permette di eseguire test semplici e ripetitivi su determinati percorsi core mentre il crowd-sourced testing permette di aumentare le coperture end2end su molti device reali.

Riassumendo, perché è così importante l’integrazione di Crowd Testing e Test Automation? Le due tipologie hanno una cosa in comune: l’obiettivo di migliorare la qualità del software. Lo fanno in fasi diverse dello sviluppo (e ovviamente con tecniche differenti). L’unione di crowdsourced testing e Test Automation costituisce l’approccio ideale da avere per ogni test che vuole andare in profondità. L’ecosistema di test che si crea con l’integrazione delle due tipologie è la base per raggiungere il più alto livello di qualità alla più alta velocità e con il miglior risultato, combinando la velocità dell’automazione alla profondità del Crowdtesting.

Un esempio concreto di integrazione

Per fare un esempio reale, poniamo un caso in cui è estremamente necessaria l’integrazione di Crowd Testing e Test Automation e non sarebbe sufficiente affidarsi a uno solo dei due metodi. Prendiamo un e-commerce B2c. Con la Test Automation il nostro e-commerce può lanciare la verifica di path basilari e l’integrazione con le API (ad esempio che l’interfaccia del carrello di acquisto corrisponda a quello che viene notificato al sistema di API delle procedure di billing). Ma questo non è abbastanza per dare all’utente l’esperienza che vuole. Per questo, lato Crowd Testing si può lavorare su processi di onboarding, in cui è richiesta una valutazione umana e la sensibilità dell’occhio umano per capire eventuali elementi critici, incongruenze nella ui, ecc.

Se con l’Automation l’e-commerce può verificare la concordanza tra dato visualizzato sulla schermata e il corrispettivo del dato accessibile via api in back end, il Crowd Testing è efficace anche in processo di onboarding dove devo passare da un passaggio di verifica attraverso email. Ma può spingersi oltre, e, ad esempio, verificare processi fisici come la ricezione di un pacco e la procedura di reso del prodotto.

È innegabile che l’integrazione di Test Automation e Crowd Testing dia completezza al processo di controllo qualità del prodotto, ma possiamo dire che sta diventando un modello? Di combinare Crowdsourced e Test Automation se ne parla già dal 2017 e ad oggi il numero di aziende che si occupa di software testing è in aumento. La verità, però, è che il mercato dell’offerta si sta dividendo tra le due tipologie, e sono estremamente rari i casi di vendor che propongono entrambe le alternative. Per superare questo ostacolo, sempre più aziende si stanno affidando a partnership costituite da due vendor esperti ciascuno in una tipologia di software testing che collaborano per condividere le competenze, le tecnologie e integrare i due modelli. Questo per permettere all’azienda di raggiungere l’obiettivo qualitativo ricercato e impossibile da raggiungere se non con l’integrazione di Crowd Testing e Test Automation.

Così nasce la collaborazione tra AppQuality e Quence, due realtà italiane che hanno fatto del Testing la loro missione, esperte rispettivamente di Crowd Testing e di Test Automation. Insieme stanno lavorando ad un progetto per la qualità del servizio digitale di un’importante realtà, e i risultati dell’integrazione verranno analizzati nella continuazione di questo articolo.

Diminuire i costi e i tempi di rilascio del software: il metodo Crowdtesting Scarica il White Paper

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 3