Dato un numero sufficiente di occhi tutti i bug vengono a galla, cita la legge di Linus, e il nostro crowd funziona proprio così. Rispetto ai metodi tradizionali il Test Esplorativo Crowdsourced ha una copertura dei test più ampia, e questo avviene principalmente per via di due fattori: l'elevato numero di persone che "mettono le mani in pasta" e la (semi) libertà lasciata ai tester. La semi libertà significa che, invece di seguire istruzioni step by step, nel test esplorativo crowd-based i tester sono liberi di scegliere autonomamente il percorso per raggiungere l'obiettivo prefissato (ad esempio comprare un prodotto sull'ecommerce).
"Given enough eyeballs, all bugs are shallow"
Viene chiamato esplorativo, infatti, proprio perché lascia i tester liberi di navigare sul sito/app secondo la loro esperienza e creatività, permettendo di percorrere vie impensate. L'utilizzo del test esplorativo con crowd apre quindi vie più innovative per raggiungere l'obiettivo, con la capacità di aumentare enormemente la copertura dei test in 2 o 3 giorni per un costo molto inferiore a quello tradizionale. Le aziende di grandi dimensioni utilizzano già questo approccio per identificare centinaia di bug nottetempo.
Il test esplorativo con crowdtesting può essere implementato in diversi modi per permettere di trarre il massimo beneficio. Queste sono le opzioni di integrazione più comuni con il processo di sviluppo agile del software:La prima opzione prevede che durante il processo di sviluppo vengano svolti test "fatti in casa" su ogni parte del prodotto. Solo poco prima del rilascio il prodotto digitale viene testato dal crowd allo scopo di identificare ogni errore che non è stato notato nei test realizzati internamente.
Il crowdtesting in questo caso inizia qualche settimana prima del rilascio per permettere una finestra di tempo tale da fixare eventuali errori trovati durante la fase di testing. In questo modo si assicura una più alta qualità del software, se paragonato a prodotti digitali testati solo internamente.La seconda opzione disponibile è quella di testare dopo alcuni sprint. Anche questa opzione è utilizzata da chi segue una metodologia di sviluppo Agile. Secondo questo approccio, infatti, il crowd viene coinvolto dopo 2 o 3 sprint di sviluppo. Il numero di sprint completati prima di testare può variare tra i progetti, ma in generale il vantaggio si crea quando il crowtesting viene effettuato prima della conclusione della fase di sviluppo: in questo modo si possono pianificare diversi tipi di test in itinere e assicurare una maggiore copertura.Questa opzione fa un passo ancora più avanti nella metologia Agile tramite l'utilizzo del testing ad ogni sprint. Un tipico progetto Agile può avere uno sprint di una durata di 4 settimane: in questo caso il team lavorerebbe ad analisi, design e sviluppo dall'inizio della prima settimana fino al mercoledì della terza. A quel punto entra in gioco il crowd che testa fino alla domenica della terza settimana (5 giorni in totale). In questo modo, la quarta e ultima settimana viene lasciata al fixaggio dei bug e al retest.
La durata dello sprint non è fissa, ma può variare in base alla tecnologia utilizzata e può arrivare a durare fino a 2 mesi.Se il processo di sviluppo del software prevede sprint di circa 2 settimane, l'opzione 3 diventa meno efficace perché costringe a limiti temporali molto stringenti. Una tattica molto utilizzata per aggirare il problema è quella di adattare l'opzione precedente in modo da rientrare nella calendarizzazione settimanale delle attività.
Un test esplorativo efficace in questo caso prevede uno sprint di 2 settimane, con attività di sviluppo che vanno da lunedì a venerdì, e il crowdtesting che inizia dall'orario di chiusura di venerdì pomeriggio fino al lunedì mattina. In questo modo il lavoro del team di sviluppo interno non viene mai messo in pausa e non si perde la continuità.L'opzione 4 non è sempre sufficiente. Alcuni progetti agili hanno degli sprint molto brevi e l'integrazione di sviluppo e testing, in questi casi, è ancora più importante. La quinta opzione, infatti, impiega il crowdtesting ogni giorno, o meglio, ogni notte. Il metodo è semplice e non intacca in alcun modo l'orario lavorativo e l'operato del team interno: è previsto lo sviluppo dalle 9 alle 17, seguito dal testing fino alle 9 del mattino successivo per concludere con il fixaggio dei bug a partire da quel momento.L'ultima opzione di test esplorativo in ottica di sviluppo agile del software offre il più alto livello di integrazione. Anche se richiede un maggiore sforzo di comunicazione e l'uso della piattaforma di digital crowdtesting, questa modalità massimizza la collaborazione ravvicinando i tester e gli sviluppatori. Il modello di alternanza tra sviluppo e testing è semplice e unisce le opzioni 4 e 5: semplicemente si testa ogni notte e nei weekend.
Combinare il crowdtesting con lo sviluppo agile dei software sta diventando una necessità per rispondere alle richieste di quelle aziende sempre più esigenti. Oltre a più stretti tempi di consegna del lavoro e necessità di più ampia copertura dei test, molti business sviluppano i software con team dislocati in differenti località. La comunicazione, in questo modo, è diventata più complessa.
Il Crowdsourced Exploratory Testing sta aiutanto le aziende agili ad adattarsi a questo ambiente incrementando e assicurando compatibilità con i cicli di sprint. Attraverso le piattaforme di crowdtesting, i tester sono connessi digitalmente tra di loro ma anche con gli sviluppatori per massimizzare l'efficacia. Cambiare un sistema esistente per integrare questo approccio può impaurire, ma è un cambiamento inestimabile a livello di mindset che porta a enormi miglioramenti nel rilascio del prodotto.Fonte: revolutionit.com