Test Management/Testing del Software

I sistemi software sono parte della nostra vita di tutti i giorni:

  • Applicazioni di Business: applicativi bancari, piattaforme online;
  • Prodotti di consumo: automobili, domotica, smartphone, sistemi di navigazione satellitare.

Questo comporta che un software che non funzioni in modo corretto può causare quotidianamente molti problemi, quali:

  • Perdita di tempo;
  • Perdita di denaro;
  • Perdita di reputazione aziendale.

Ma quali possono essere le cause di queste anomalie?

Gli esseri umani inevitabilmente possono commettere degli errori durante l’intero ciclo di sviluppo del software (Es. programmazione errata, mancanza di implementazione di un requisito, …) oppure un comportamento inatteso può essere causato anche da fattori esterni, come le condizioni ambientali (ad esempio fenomeni elettromagnetici o radiazioni possono modificare le condizioni Hardware).

In una realtà come quella attuale in cui i prodotti software sono diventati una delle principali voci dei budget aziendali (secondo le ultime ricerche di mercato la spesa IT a livello mondiale dovrebbe raggiungere una cifra d’affari totale di oltre 4 mila miliardi di dollari nel 2022) diventa innegabile la necessità di un controllo della qualità nello sviluppo del software.

L’Institute of Electrical and Electronics Engineers (IEEE) definisce il testing software come:

«il processo di valutazione di un sistema attraverso strumenti manuali o automatici col fine di determinare se il sistema soddisfi i requisiti specificati oppure se il suo comportamento verificato differisce da quello atteso»

Ovviamente, è impossibile testare un software in tutte le sue possibili condizioni operative! Diventa quindi fondamentale individuare casi di test che mostrino che il prodotto avrà un comportamento accettabile anche nelle situazioni in cui non è stato testato, eseguendo in modo sistematico il processo di test, definendo chiaramente i risultati che si attendono e le modalità con cui si vuole raggiungerli.

In tale ottica, diventa chiave per il successo il Test Management. Esso ha il compito di organizzare e controllare il processo e gli artefatti richiesti, coordinare gli sforzi di tutti coloro che sono coinvolti nell’attività di test e monitorare gli obiettivi qualitativi. La gestione dei test gioca un ruolo estremamente importante al fine di supportare i team al fine di gestire attività e processi di test complicati.

Double Consulting supporta le aziende nella gestione dell’intero ciclo di sviluppo del software con competenze specifiche e verticali anche sul processo di Test Management, dalla redazione dei casi di test, all’aggiornamento degli script, all’automazione dei test fino all’acquisizione dei risultati. La nostra esperienza ci consente di garantire la qualità e l’efficacia del processo di test, supportando la realizzazione di un prodotto con caratteristiche, qualità, funzionalità, affidabilità, sicurezza notevoli. E’ importante sottolineare che quando lo sviluppo lascia ampio spazio per il test, migliora l’affidabilità del software e applicazioni di alta qualità vengono consegnate con pochi errori.

Ma di cosa si compone il processo di Test Management? Esso si articola in 7 attività principali:

Test management

Pianificazione: la prima fase inizia con la raccolta dei requisiti dell’applicazione e delle specifiche di progetto, utili a determinare l’approccio generale al testing e le risorse. In altre parole, si determinano «gli obiettivi del testing e l’approccio per soddisfare tali obiettivi».

Analisi: durante questa fase la base di test viene analizzata per identificare le caratteristiche testabili e per definire le condizioni di test da coprire, in altre parole si determina «cosa testare» in termini di condizioni di test e di criteri di copertura misurabili. Con l’analisi dei test non solo si verifica la coerenza dei requisiti che devono essere completi ed espressi adeguatamente, ma si valida anche il fatto che i requisiti catturino correttamente le esigenze del cliente, dell’utente e di tutti di stakeholder.

Progettazione: vengono progettati e prioritizzati i casi di test, in altre parole si determina «come testare». La progettazione deve tener conto di alcuni fattori: dello scopo del test (test funzionale, di performance, di usabilità, ecc..), del tempo a disposizione, della complessità dell’applicazione.

Implementazione: durante l’implementazione dei test viene configurato e completato il testware (ambiente di test) necessario per la successiva fase di esecuzione, compresa la sequenzializzazione dei casi di test in procedure di test o eventuali script. L’implementazione risponde alla domanda «è tutto predisposto per garantire l’esecuzione dei test?».

Esecuzione: in questa fase vengono eseguite le test suite in base alla schedulazione stabilita precedentemente.

Completamento: questa attività normalmente viene svolta quando vengono raggiunte le milestone di progetto. Questa fase prevede che vengano raccolti tutti i dati di test per consolidare l’esperienza, il testware e le informazioni principali. Questi dati sono una preziosa sorgente di informazione per progetti futuri (stima, test case, …).

Monitoraggio e controllo: Si tratta di un’attività trasversale all’intero processo di test. Il monitoraggio prevede il confronto continuo degli avanzamenti effettivi rispetto al piano, utilizzando le metriche di monitoraggio dei test definite nel Piano di Test e l’adozione delle azioni necessarie a soddisfare gli obiettivi del Piano di Test. L’avanzamento del Test rispetto al piano viene comunicato agli stakeholder nei report di test, inclusi gli scostamenti dal piano e le informazioni per supportare qualsiasi decisione di interrompere i test stessi.