Cos’è il crowdtesting e come può aiutare a creare software migliore? Migliorare la qualità del software al cuore di applicazioni e servizi digitali significa eliminare il più possibile eventuali difetti di funzionamento, prima che, ad esempio, la nuova mobile app venga pubblicata sullo store online, o che il sito di e-commerce nuovo di zecca diventi attivo sul web. Sono mal di testa che giornalmente accomunano sviluppatori, responsabili quality assurance, CIO e chi in genere opera nello sviluppo IT. Momenti di ansia la cui frequenza aumenta soprattutto oggi, in ambienti IT dove il paradigma DevOps si diffonde, per accelerare i cicli di sviluppo, e consentire il continuo rilascio di nuove versioni di app e servizi digitali, con l’obiettivo di renderli ogni volta più stabili, efficienti, ricchi di nuove funzionalità.
La pressione nel rilascio di nuove versione oppure in momenti di sovraccarico superiore a ogni aspettativa può avere conseguenze disastrose. Pensiamo a quello che è avvenuto nei giorni scorsi al sito INPS: al netto di un eventuale attacco hacker, infatti, secondo alcuni esperti è probabile che l’Istituto abbia avuto un problema di configurazione del sistema di caching non emersa durante i test in ambiente di produzione (ossia nella staticizzazione di alcune pagine per far fronte alle tante richieste riducendo il carico dei server: per lo specifico caso di chi si è trovato a compilare moduli ritrovandosi i dati di altre persone, non ci sarebbe stata una penetrazione nei database dell’Inps attraverso un attacco hacker, ma una visualizzazione da parte degli utenti sbagliati di queste pagine memorizzate nella cache). “Testare in produzione è una situazione estrema e nessun sviluppatore vorrebbe farlo, tuttavia per alcune attività mission critical dobbiamo comprendere l’importanza del concetto di ‘Testing into the wild’. Non ci solleva dal fare un lavoro di qualità prima, ma se sappiamo che andremo incontro a dure prove dopo ci permette di anticipare il peggio. In questo caso confidiamo che non ci sia nessun problema nel software dei colleghi di INPS, ma probabilmente di configurazione del sistema di caching e quindi, anche testando il software in staging, non hanno prevenuto il risultato disastroso che oggi tutti stiamo riscontrando. Un test con persone con vari device, in varie zone e modalità di connessione, possibile attraverso il crowdtesting, appena dopo il rilascio avrebbe scovato subito la problematica”, dice Luca Manara, CEO e co-founder di AppQuality.
Crowdtesting, perché può favorire un ‘salto di qualità’
Ed è con Manara che approfondiamo il tema del crowdtesting nel collaudo della qualità del software. L’idea chiave alla base di questo modello di software testing è che, per trovare un difetto in un prodotto, sia meglio mettersi direttamente nei panni di chi lo dovrà utilizzare, superando i limiti degli approcci tradizionali: “I gruppi di tester utilizzati abitualmente spesso hanno già visto e collaudato quel dato software molte volte, e mediamente non riescono più a trovare difetti. I nostri tester, invece, sono ‘fresh eyes’, vedono il software per la prima volta, e si comportano come se fossero utenti finali, provando direttamente le funzionalità e verificandone l’affidabilità”.
In quanto al numero di tester, spiega Manara, la community di crowdtesting di AppQuality conta circa 15mila tester in Italia, e circa 250mila nel mondo. “È una comunità altamente qualificata e profilata, e collauda prodotti e servizi che possono appartenere al mondo consumer o a quello business, e richiedere test in cui la lingua dello specifico paese è una delle tante variabili. A seconda del prodotto realizzato, il cluster di tester può poi essere scelto selezionando gli specialisti di un particolare settore”.
Quali sono gli altri vantaggi? “Un primo beneficio è la maggiore copertura dei test, che possono essere eseguiti su una più ampia varietà di dispositivi mobile e tipologie di browser. Poi c’è il vantaggio che, a parità di costo, è possibile fare più ore di test, e i tester si pagano a consumo, solo per l’esecuzione dei test che hanno effettuato. Inoltre, a differenza delle convenzionali metodologie di testing, basate su testbook, in cui i tester collaudano le funzionalità in maniera rigida seguendo uno schema predeterminato, in AppQuality ai tester viene assegnato un obiettivo: ad esempio provare l’efficacia di una app nell’esecuzione di un bonifico. In questo modo, ciascun tester procede seguendo il proprio particolare percorso e ragionamento, e tale approccio ‘esplorativo’ aumenta l’efficacia dei test e la probabilità di trovare errori e difetti”.
Crowdtesting e testing automation
L’approccio metodologico del crowdtesting è complementare rispetto alle attuali pratiche di testing automation. “Stiamo integrando la nostra piattaforma con framework di sviluppo Agile, e, ad esempio, con strumenti come Jira Software, di Atlassian, per erogare, attraverso un’unica soluzione, servizi di crowdtesting e testing automation. Stiamo già fornendo questi servizi congiunti a clienti come Safilo e MailUp. L’obiettivo è accrescere l’efficienza di testing, in un contesto in cui le pratiche Agile/DevOps impongono un’accelerazione nel ritmo di rilascio del software e di nuove funzionalità”.
Testing di servizi e app per l’omnicanalità
Altro tema di estrema attualità è il testing efficace di app e servizi ormai sempre più votati a funzionare interagendo con molteplici touchpoint, tra cui ambienti mobile, siti web di e-commerce, dispositivi digitali installati negli store fisici offline e quant’altro. “Oggi, se non viene verificata la qualità del software in un’ottica omnicanale, la user experience può risentirne moltissimo. Da questo punto di vista, in AppQuality possiamo chiedere ai nostri tester di collaudare, non soltanto un oggetto/servizio finale, ma anche più oggetti connessi tra loro: quindi, ad esempio, per collaudare la app o il servizio, il tester può dover acquistare un prodotto attraverso una mobile app, e poi di ritirarlo recandosi presso un punto vendita, dove dovrà interagire con un totem digitale in-store. Insomma, possiamo realizzare test anche molto complessi per applicazioni digitali omnicanale e multi-touchpoint, verificando tutte le interazioni a livello end-to-end”.