Ercole Colonese

Consulenza di direzione e IT

Home |  Sviluppo software | Gestione servizi IT | Gestione progetti | Test e collaudi | Competenze relazionali | Servizi | Pubblicazioni | Chi sono | Info

Testing Process Improvement (TPI)

Sito Web

Home > Sviluppo software

Software testing

ISO/IEC 29119 Software Testing

TMMi, Testing Maturity Model

> TPI, Test Process Improvement

SWEBOK e Testing

Testing come "best practice"

 

Test Process Improvement (TPI) è un modello a supporto delle organizzazione per migliorare i loro processi di testing. L'ottimizzazione del processo di test può riguardare la qualità, i costi e il tempo speso nelle attività.

Tuttavia, i rischi connessi ad un'attività di test ridotta e insufficiente sono evidenti (difettosità residua alta e costi

Generalmente, l'attività di test è vista come un costo aggiuntivo a quello dello sviluppo del software. Per questo motivo (ma anche per molti altri) si tende a ridurre l'attività di test. Le ragioni che portano a sottovalutare l'attività di testing sono: lo sviluppo accumula spesso ritardo e costringe a ridurre il tempo previsto per il test; i costi del test non sono percepiti come produttivi ma come aggiuntivi; non si ha la percezione di quale sia la difettosità residua e quindi si tende a interrompere il test appena si vede che il software è stabile (solo in apparenza, purtroppo!).

La fase di test richiede una pianificazione realistica, una progettazione e preparazione dei  test accurata, un'esecuzione corretta e un controllo puntuale. La pianificazione e progettazione dei test deve essere fatta nelle fasi alte del ciclo di vita, partendo dai requisiti consolidati.   

I rischi connessi con un'attività di test sottovalutata sono rilevanti e impattano in primo luogo i costi di manutenzione correttiva in garanzia (troppo alti). In secondo luogo si rilascia un software non adeguato alla qualità attesa dagli utenti finali che risulteranno deluso dalle funzionalità, prestazioni e usabilità del software.

Alcune organizzazioni hanno comprenso il problema e sviluppato un modello per migliorare il processo e risolvere i problemi di cui si è appena detto. Test Process IMprovement (TPI) è il modello sviluppato a tale scopo basandosi sull'esperienza e la competenza degli esperti.

I passi suggeriti dal modello TPI per ottimizzare qualità, costi e tempi sono:

  1. Definire l'area di intervento e l'obiettivo da raggiungere (To-be): in questa fase si determinano le caratteristiche della qualità del test richieste (es.: riduzione dei costi e dei tempi) e l'impegno necessario per realizzarle.  Si cercano anche le aree critiche su cui intervenire;

  2. Definire lo stato attuale (As-is): si tratta di identificare i punti di forza e di debolezza dell'attuale organizzazione di test (processo, competenze, strumenti a supporto).

  3. Definire la situazione richiesta: sulla base della definizione dello scenario attuale si identifica l'organizzazione a tendere e le azioni da implementare.

  4. Implementare le modifiche: in questa fase si implementano le azioni definite precedentemente e si controlla il loro completamento e si valuta la loro efficacia.

Il modello TPI

Per migliorare il processo di test occorre dunque osservare il processo da differenti punti di vista: l'organizzazione (i ruoli coinvolti), le competenze richieste, gli strumenti adoperati (tool), le tecniche seguite, i controlli effettuati, i report prodotti ecc. Tali punti di vista sono detti "Aree di interesse" (Key Areas). Ciascuna area di interesse può essere classificata e valutata in termini di "livello di maturità". Ovviamente non tutte le aree di interesse hanno la stessa importanza ai fini del miglioramento complessivo delle prestazioni del processo di test.

Le aree di interesse e i  relativi livelli di maturità possono essere rappresentati per comodità in una matrice (Test Maturity Matrix).

Per rendere oggettiva la classificazione, si definiscono preventivamente uno o più controlli (Checkpoint) per valutare il livello di maturità di ciascuna area di interesse. Un Checkpoint rappresenta quindi un requisito da soddisfare perché un'area di interesse possa essere valutata in un determinato livello di maturità.

La valutazione del livello di maturità delle singole aree di interesse del processo permette di identificare la situazione attuale, di individuare i passi da compiere e di suggerire le azioni più opportune.

La figura che segue sintetizza il modello TPI (fonte: Web Sogeti UK).

TPI  Model

 

Test Maturity Matrix

La tabella che segue mostra una possibile tabella per la valutazione del livello di maturità delle singole aree di interesse. Per ciascun elemento occorrerà definire il requisito da soddisfare per ritenere l'area del livello appropriato. Nell'esempio riportato nella tabella si riportano solo alcuni elementi di valutazione per rendere più chiaro cosa si intenda per "Key Area" e come si possano definire i relativi "Checkpoint" per ciascun livello di maturità. 

Key Area

Livello A

Livello B

Livello C
Strategia di test Strategia per ciascun livello di test Strategia comune per tutti i livelli di test Strategia comune e consolidata sull'esperienza
Modello di ciclo di vita Pianificazione, Progettazione, Esecuzione Pianificazione, Preparazione, Progettazione, Esecuzione, Completamento  
Posizionamento del test nel ciclo di vita Completamento dello sviluppo Inizio dello sviluppo Definizione dei requisiti
Stima e pianificazione del test Stima e pianificazione sostanziate (basate sulla valutazione) Stima e pianificazione basate su dati storici e statistici  
Tecniche di specifica dei test Tecniche informali Tecniche formali  
Tecniche di test statico Ispezioni base Utilizzo di checklist  
Metriche di test Metriche di progetto (prodotto) Metriche di processo (prodotto) Metriche di sistema
Strumenti per il test (tool) Strumenti di pianificazione e controllo Strumenti di  esecuzione, controllo e analisi Strumenti per l'automazione di tutto il processo di test
Ambiente di test Gestito e controllato Più ambienti secondo i diversi livelli di test e secondo le diverse piattaforme Ambienti predisposti in base alle esigenze
Impegno e supporto Assegnazione del budget e dei tempi di test Testing integrato nell'organizzazione del progetto Ingegneria del test
Organizzazione di test, competenze e formazione Test Manager e Tester Organizzazione funzionale di test Quality Assurance (formale)
Ambito della metodologia di test Specifico per il progetto Organizzazione generica Organizzazione ottimizzata
Comunicazione Comunicazione interna al gruppo di test Comunicazione di progetto (difetti, modifiche) Comunicazione strutturata all'interno di tutta l'organizzazione circa la qualità del software e del processo di test
Reportistica Difetti Avanzamento dei test (stato dei test e del prodotto), delle attività (costi, tempi) e dei difetti (severità, risoluzione, backlog) Rischi e raccomandazioni sostenute da dati statistici e metriche
Gestione dei difetti Gestione interna dei difetti Gestione esterna dei difetti con possibilità di reporting flessibile Gestione dei difetti di progetto
Gestione del processo di test Pianificazione ed esecuzione Pianificazione, esecuzione, monitoraggio e controllo Monitoraggio e controllo all'interno dell'intera organizzazione
Valutazione dei risultati di test Tecniche di valutazione Strategia di valutazione  
Livelli di test (funzionali e strutturali) Pianificazione, Specifica ed Esecuzione Tecniche whitebox, black-box, greybox ecc. Strategia di test basata sui requisiti

 

Sarà cura di ciascuno personalizzare la tabella secondo le proprie necessità ed esperienza.

News/Articoli/Libri

Collaudo e qualità del software

ISO/IEC 29119 Software Testing (articolo)

Psicologia ed economicità del testing (articolo)

 

Collaborazioni/Associazioni

Quality Solutions

AICQ-CI Centro insulare, Comitato software e servizi IT

Felice Del Mauro

 

Collegamenti utili/Link

TPI, Sogeti UK

 

Ercole Colonese © 2005-2012 | Home | Mappa del sito | Pubblicazioni | Chi sono | Info |