Essere capaci di verificare la qualità del software è una delle più grandi sfide durante lo sviluppo di applicativi. In particolare, esistono alcuni requisiti non-funzionali che, all'atto pratico, sono indispensabili e cruciali per l'esperienza utente come le performance e la stabilità. Basti pensare che secondo i dati dell'Istituto Baymard, in ambito e-commerce, tra i motivi più frequenti di abbandono del carrello vi sono la presenza di errori e crash o un processo di acquisto troppo lungo e complicato.
Al tempo stesso, a causa della pandemia di COVID-19, si è assistito a un aumento della frequenza relativa agli acquisti online, al punto tale che nel periodo Black Friday 2020, secondo Adobe Analytics, la spesa complessiva degli utenti è aumentata di circa il 21,6%. Quest’ultimo valore è la chiara espressione di come la pandemia abbia portato a un netto cambiamento del comportamento degli utenti finali nei confronti dello shopping.
In questo contesto, avere la sicurezza che il software sia di qualità è un elemento imprescindibile che deve portare allo svolgimento di un percorso di stress test ben definitivo, capace di mostrare sia le potenzialità, ma anche le limitazioni e problematiche, prima che avvenga il rilascio ufficiale.
Un approccio al testing tradizionale non è più sufficiente per verificare l'effettiva performance in condizioni di utilizzo reale. Può capitare che, anche se il software sia stato testato con successo in un ambiente di testing, durante l’intero ciclo di sviluppo, determinate problematiche non siano state riscontrate e pertanto devono essere risolte dopo il rilascio.
Al fine di certificare la reale qualità del software, alla Test Automation si deve aggiungere il testing con utenti reali. Potremmo riassumerlo in una frase: con l’Automation carichi, con il Crowd verifichi. Nel dettaglio, le persone coinvolte devono essere caratterizzate da un diverso know-how, dotate di un’ampia gamma di dispositivi e reti di accesso, così da avere la miglior percentuale di copertura tecnologica. Gli utenti in questione avranno come compito principale quello di svolgere azioni casuali e imprevedibili, atte a testare le funzionalità e verificare la capacità di risposta del sistema
In un settore come quello del fashion, dove le applicazioni e piattaforme di e-commerce sono sempre più pervasive, è evidente la necessità di implementare sistemi di stock management affidabili, capaci di bloccare temporaneamente la disponibilità dei prodotti a carrello ed eventualmente sbloccarla nel caso in cui non venga completato l'acquisto. Questo aspetto, in particolar modo, quando avvengono migliaia di transazioni simulatamente, risulta fondamentale, poiché si corre il rischio di pregiudicare definitivamente l'esperienza di acquisto e comportare la perdita di un potenziale cliente.
La soluzione ideale per svolgere stress test è quindi quella di garantire un mix tra automazione e crowdtesting. Ad esempio, grazie all'automazione dei test vengono simulate decine di migliaia di utenti virtuali che, al contempo, sono affiancati da persone reali che avranno come compito quello di navigare normalmente compiendo azioni ben definite, così da andare testare sia flessibilità della piattaforma, ma anche la capacità di rispondere a eventuali eventi non previsti. Terminata questa fase di testing, gli utenti forniranno un feedback esperienziale, così da supportare il processo di analisi della user experience.
Un metodo alternativo per verificare la reale qualità del software esiste. L'aver testato il codice prima del rilascio non è automaticamente sinonimo di qualità, bensì l'approccio deve essere quello di sfruttare le potenzialità offerte dalla combinazione tra automazione dei test e crowdtesting, così da poter essere sicuri che il proprio software sia a prova di stress test. Solamente questa metodologia rappresenta la chiave di volta per il rilascio di un'applicazione o un portale web di successo, capaci di sostenere picchi di traffico e non inficiare sull’esperienza utente.