Che cos’è la testabilità del software e utilizzo della metodologia in azienda
Testabilità del software
Innanzitutto bisogna dire che nell’ambito del testing software è importante quanto difficile definire cosa si intenda per “testabilità” del software.
In pratica, per valutare se un determinato risultato raggiunge o meno il risultato atteso è necessario definire prima tale risultato in termini di testabilità, cioè capace di essere testato. Quindi, le caratteristiche rilevate a seguito dell’esecuzione di un test devono poter essere paragonate a caratteristiche definite a priori. Tali caratteristiche devono perciò poter essere paragonate senza alcuna ambiguità. L’esecuzione di una funzione di calcolo, per esempio, dovrà fornire un risultato numerico definito a priori: un numero ritenuto “corretto”, mentre tutti gli altri risultati saranno considerati “errati”.
Poiché il software implementa dei requisiti, occorre dunque che questi siano descritti in termini “testabili” perché i test possano verificarli e validarli. Purtroppo non tutti i requisiti sono definiti in maniera testabile. E’ compito della fase di “analisi dei requisiti” raccogliere richieste generiche, elaborale e tradurle in specifiche chiare, complete e “testabili”. Senza questa fase cruciale dell’analisi dei requisiti risulta impossibile assicurare l’efficacia dei test.
Concludendo, occorre garantire che i requisiti risultino:
- Chiari (non ambigui)
- Completi
- Testabili
Nella letteratura specializzata, le caratteristiche di testabilità dei requisiti sono indicate con l’acronimo S.M.A.R.T., con il seguente significato:
- S = Specifico;
- M = Misurabile;
- A = Attendibile;
- R = Realistico;
- T = Tempistico.
Garantendo tali caratteristiche dei requisiti sarà possibile definire i risultati attesi dai test e quindi assicurare la “testabilità” del software.
Adozione e utilizzo della metodologia in azienda
La metodologia di testing proposta può aiutare le aziende a sviluppare prodotti software di maggiore qualità e a migliorare la soddisfazione dei propri clienti.
Essa si presta ad essere utilizzata in progetti complessi ed in altri più semplici e di breve durata. Fornisce una descrizione dei tre elementi principali: la competenza delle persone, il processo di testing, i metodi, le tecniche e gli strumenti a supporto. Fa uso delle migliori pratiche disponibili ed è stata già sperimentata con successo presso un gruppo nutrito di piccole e medie aziende di software.
La sua applicazione in una struttura organizzativa con proprie abitudini e metodi consolidati non risulta agevole né immediata. Occorre una forte motivazione al cambiamento e la necessità di migliorare per competere sul mercato.
L’approccio suggerito è tratto dal modello CMM che indica le pratiche richieste per la corretta implementazione dei processi di sviluppo in generale, e di verifica e validazione in particolare, per il miglioramento del livello di maturità di un’organizzazione software.
UTILIZZO DEL MODELLO E MIGLIORAMENTI
Il modello proposto acquista validità e diventa efficace quando sostenuto da un impegno della direzione aziendale. Tale impegno sarà quindi formale e sostanziale:
- formale in quanto dichiarato, documentato nella politica per la qualità e divulgato in tutta l’azienda;
- sostanziale in quanto tale politica sarà efficacemente implementata in azienda con il coinvolgimento della direzione stessa in fase di lancio ed in fase di sostegno e di
A tale scopo si suggerisce, come prima cosa, di modificare la politica per la qualità in modo da contenere i seguenti punti fondamentali, nel caso non li prevedesse già:
- Competenza delle persone;
- Gestione dei requisiti;
- Disegno e codifica secondo un processo definito;
- Ispezione e revisione tecnica dei output prodotti;
- Test e collaudo accurato;
- Utilizzo di tecniche e strumenti adeguati.