Nel ciclo di vita del software, la fase di test rappresenta spesso un collo di bottiglia sia in termini di costi che di tempo. Questo accade perché i test vengono eseguiti manualmente e devono essere ripetuti più volte per ogni modifica apportata al software. La ripetitività e l'intensità di queste operazioni possono portare a errori umani e rallentare il processo di rilascio del software, specialmente nei progetti di grandi dimensioni.
Per superare questi limiti, Technology Reply propone di adottare l'utilizzo di test automatici end-to-end nei progetti di grandi dimensioni. Questa scelta permette non solo di ridurre significativamente il tempo necessario per eseguire i test, ma di aumentare anche la copertura e l'affidabilità degli stessi.
L’approccio scelto per la realizzazione dei test automatici è il BDD – Behavior Driven Development che prevede l’implementazione dei singoli scenari di test partendo dal comportamento funzionale definito nei requisiti. Per ogni scenario di test il framework implementato prevede la simulazione dell’operatività utente sul nuovo applicativo e una serie di asserzioni per verificare il buon esito delle azioni eseguite.
Per la definizione degli scenari di test è stato scelto il linguaggio naturale Gherkin che permette di definire il comportamento richiesto senza specificare dettagli o informazioni tecniche sull’implementazione. Questo linguaggio viene utilizzato da numerosi tool di mercato per la tracciatura e monitoraggio dei test.
Per realizzare il framework di esecuzione dei test automatici si è scelto di utilizzare Cucumber come interprete degli scenari scritti in Gherkin, Java come linguaggio di implementazione e Selenium come libreria di supporto per la navigazione del Front End. Il framework è stato integrato con il sistema di quality management in uso presso il cliente per permettere estrazioni degli esiti dei run di test in tempo reale. Questa soluzione è stata adottata su un progetto di refactoring di una complessa piattaforma finance per una nota banca italiana con ottimi risultati ed è stata progettata per essere utilizzata su elevate combinazioni di parametri di input. in questo caso il dettaglio dei prodotti richiesti dal cliente e permettere l’esecuzione di numerosi run senza la necessità di modificare il codice.
Per raggiungere questo obiettivo si è scelto di creare un modello dati su database a supporto del framework dove è possibile caricare i dati per le esecuzioni massive e configurare eventuali dati specifici per i singoli run.
Vantaggi della Soluzione Proposta
Efficienza e Scalabilità: L'utilizzo di test automatici e del linguaggio Gherkin consente di ridurre significativamente il tempo e i costi associati ai test manuali, migliorando al contempo la scalabilità del processo di testing.
Adattabilità e Flessibilità: Il framework è stato progettato per gestire facilmente diverse combinazioni di parametri di input, rendendo semplice l'adattamento a nuovi requisiti e scenari senza richiedere modifiche al codice.
Integrazione e Monitoraggio: L'integrazione con il sistema di quality management del cliente permette un monitoraggio continuo e in tempo reale degli esiti dei test, facilitando la gestione e l'analisi dei risultati.
Uso di Tecnologie Consolidate: La scelta di Cucumber, Java e Selenium garantisce un alto livello di affidabilità e supporto, sfruttando tecnologie consolidate e ben documentate.
Technology Reply ha curato l'implementazione della batteria di test automatici attualmente utilizzata per l'esecuzione degli scenari di non regressione.
Questo approccio ha permesso di migliorare l'efficienza e la precisione del processo di testing, garantendo una maggiore affidabilità nella verifica delle modifiche apportate al software
I prossimi passi prevedono l’introduzione dell’intelligenza artificiale in due fasi del processo di automation test:
Generazione automatica degli scenari di test in linguaggio Gherkin. L’obiettivo prevede di automatizzare la modellazione e scrittura degli scenari partendo dal documento di analisi funzionale. Utilizzando algoritmi di intelligenza artificiale, sarà possibile estrarre le specifiche funzionali e tradurle in scenari di test definiti in linguaggio naturale Gherkin.
Implementazione automatica degli scenari di test definiti in linguaggio Gherkin. Una volta generati gli scenari di test, l'intelligenza artificiale sarà utilizzata per automatizzare la loro implementazione. Questo processo prevede la traduzione degli scenari in codice eseguibile, integrando le librerie di automazione come Selenium per la navigazione del Front End. L'automazione di questa fase consentirà di velocizzare ulteriormente il processo di testing e ridurre il rischio di errori manuali.
Benefici Attesi
Efficienza: L'automazione delle fasi di generazione e implementazione degli scenari di test ridurrà significativamente il tempo e le risorse necessarie per il testing.
Copertura Migliorata: L'utilizzo dell'intelligenza artificiale permetterà di coprire un maggior numero di scenari di test, includendo anche quelli che potrebbero essere trascurati in un processo manuale.
Affidabilità: La riduzione degli errori manuali e l'aumento della precisione nel processo di testing contribuiranno a migliorare l'affidabilità complessiva del software.
Scalabilità: L'automazione consentirà di gestire un numero crescente di test con facilità, supportando la scalabilità del processo di sviluppo e testing.
L'utilizzo dei test automatici generati permetterà al cliente, con il supporto e la competenza di Technology Reply, di ottenere numerosi vantaggi
L'automazione dei test consente di eseguire rapidamente i test di non regressione, riducendo significativamente il tempo e le risorse necessarie rispetto ai test manuali.
Utilizzando i test automatici, è possibile ridurre la durata della fase di test, permettendo di anticipare le attività di rilascio del software. Questo comporta una maggiore agilità nei processi di sviluppo e la possibilità di rispondere più rapidamente alle esigenze del mercato.
Agendo sulle configurazioni dei parametri di input, è possibile programmare l'esecuzione di vari run con combinazioni di dati variabili. Questo approccio assicura una copertura più ampia e approfondita degli scenari di test, migliorando la qualità complessiva del software.