Vai al contenuto

Business Agility e apprendimento: il Continuous Testing

Capgemini
2020-05-06

Il Testing ha sempre avuto una rilevanza eccezionale nell’evoluzione delle nostre competenze e professionalità: è sempre stato collegato a forme di intelligenza, alle capacità di elaborare il “feedback”, il riscontro della realtà, di contesti non modellabili a priori.

In questo periodo storico, dove la complessità non permette di definire requisiti certi e persistenti, il test assume nuovi significati e una nuova importanza nell’ambito degli approcci “agili”, abilitando le nuove forme di Business Agility. In effetti, metodi di test efficaci e moderni permettono di verificare l’aderenza dei nuovi prodotti “digital” o “phygital” ai gusti dei clienti.

Il Testing diventa continuo (i.e. Continuous Testing), come continua è diventata l’evoluzione dei prodotti digitali, dei gusti e comportamenti dei clienti e del contesto ambientale. Ma cos’è il Continuous Testing? È l’insieme di approcci e tecnologie volte a integrare il processo di test su tutto il ciclo di vita del prodotto/servizio digitale, evitando di concentrarlo nella parte finale del progetto. Ha l’obiettivo di rendere continuo il rilascio delle nuove funzionalità dei prodotti/servizi digitali e di rendere efficienti le attività di test, riducendone la quantità e aumentandone l’efficienza.

Continuous Test e Digital Transformation

La Trasformazione Digitale sta richiedendo alle aziende sia di sviluppare nuovi servizi digitali personalizzati e contestualizzabili, sia di farlo con Time To Market sempre più ridotti, così come di integrare i prodotti o servizi interni con quelli del proprio ecosistema. Queste richieste stanno trasformando il Testing applicativo e lo stanno trasformando in Continuous Testing.

Per ridurre il Time To Market e migliorare l’aderenza dei nuovi servizi digitali al mercato (i.e. Business Agility), dal campo della tecnologia hanno fatto il proprio ingresso in quello business gli approcci Agile e DevOps. Il metodo Agile, in tutto il suo schema, trasforma il Testing: dalla definizione delle User Story e dei relativi criteri di accettazione, alle frequenti condivisioni degli artifatti con il Product Owner, alla brevità degli Sprint, all’aggiornamento continuativo del Product Back-Log, alla sistematizzazione del Re-factoring.

L’approccio DevOps, ormai diventato metodo manageriale, è volto a creare una continuità tra sviluppo di applicazioni (i.e. Dev) e loro gestione (Ops), per renderne fluido e veloce il rilascio di nuove funzionalità e aggiornamenti. Basandosi sulla decomposizione del prodotto/servizio digitale in servizi atomici e fondamentalmente indipendenti, ha trasformato il mondo del Testing, rendendo obsoleto il concetto di No-regression Test e richiedendo nuove tecniche di automazione.

Lo sviluppo di servizi integrati con quelli dell’ecosistema sta contribuendo a trasformare il test, richiedendo nuove tecniche di gestione di data-set e ambienti di test, nuove tecniche di automazione, modelli di collaborazione e governance distribuita per lo svolgimento dei test.

Il Testing diventa distribuito e aperto, per recepire i feedback impliciti ed espliciti dei clienti, e quindi le sue frontiere si aprono: dai tester professionali agli sviluppatori dei team Agile, ai clienti “friends and family”, ai feedback social. Il Testing diventa continuo e si pone alla base dell’idea di “Quality-at-Speed”, distribuendosi nei team di sviluppo attraverso gli Sprint Agile. Il tema del test distribuito apre nuovi scenari di skill, automazione, governance e sicurezza che i nostri clienti, con il nostro aiuto, dovranno affrontare.

Continuous Test e Intelligenza Artificiale

I modelli di Intelligenza Artificiale richiedono nuove tecniche di Testing e rendono il Testing stesso parte integrante dell’addestramento dei modelli. Il Testing dei sistemi di Intelligenza Artificiale e il loro addestramento probabilmente trascinerà le professionalità del futuro per rendere efficaci le reti neurali.

L’Intelligenza Artificiale diventa d’altra parte uno strumento eccezionale per automatizzare i test, in particolare per i modelli di test di tipo Shift Right. L’Intelligenza Artificiale rappresenterà la tecnologia prevalente per condurre i test, ad esempio rilevando feedback scritti, vocali, commenti semi-strutturati o email.

I risultati del Continuous Testing Report 2020

Nel nostro Continuos Testing Report 2020 abbiamo evidenziato due grandi “spinte” nel processo di Testing: lo Shift Right, ovvero le verifiche di qualità a valle del processo di sviluppo legate all’automazione, e lo Shift Left, ossia la limitazione dei test, progettando il prodotto o servizio secondo criteri di qualità.

Un esempio di Shift Right? Una banca, sviluppando una app di Wealth Management, non era in grado di effettuare sufficienti test in-sprint. L’utilizzo di script resilienti, monitorati in produzione per ottenere feedback in tempo reale, ha permesso di migliorare la velocità di risoluzione di anomalie del 40%. Altri esempi di soluzioni Shift Right e Shift Left sono descritti nel report.

Il Continuos Testing Report 2020 evidenzia, inoltre, come le aziende stiano adattando il loro percorso di Testing ai nuovi scenari della Digital Trasformation. Circa il 61% delle aziende da noi intervistate ha raggiunto un buon livello di maturità nel Continuous Testing, pur se con strumenti poco industrializzati a disposizione.

La diffusione delle metodologie Agile, però, ha posto sfide importanti nell’interpretare i test in-sprint, che rappresentano una sfida importante per il 56% delle società. Queste metodologie hanno infatti cambiato il concetto di Shift Left, richiedendo di svolgere i test ai team di sviluppo, non dedicati e meno sensibili alla rilevanza dei test, rispetto a tester professionali. I test svolti sono infatti limitati (solo il 35% viene svolto da personale non dedicato).

Proprio il concetto di “spacchettare” il prodotto in diversi sprint pone alcuni problemi sul coordinamento dei test sul prodotto nel suo complesso (questo è proprio l’aspetto che il 78% delle organizzazioni soffre di più). Sicuramente approcci di “Scaled Agile” possono supportare nel coordinamento dei test distribuiti.

In relazione alla governance del processo di Testing, il report evidenzia che il 40% delle aziende supporta i test con unità dedicate di “Quality Engineers”. Esse si stanno però trasformando in Center of Excellence per supportare e coordinare il Testing distribuito svolto dai team Agile e DevOps.

Tra le tecnologie di test, oltre alla rilevanza strategica dell’Intelligenza Artificiale, centrale rimane la tematica degli ambienti di test. Il 35% dei rispondenti del nostro report ha evidenziato di spendere il 50% del tempo per gestirli. Sicuramente le tecnologie Cloud, di deployment automatico, mascheramento e partizionamento dei dati permetteranno una migliore efficienza dei test e una loro più facile distribuzione.

La redazione dell’articolo è stata curata da Massimo Ippoliti.