La tempificazione del test: caratteristiche e vantaggi

tempificazione test del software

Affrontiamo in questo articolo, uno degli aspetti più rilevanti nella fase preparatoria del test di una funzionalità: la valutazione dei tempi di realizzazione. La “tempificazione” (in inglese T.T.C. Time Test Costing) è la quantificazione dei tempo necessario alla completa e corretta verifica di una funzione.

Una coerente valutazione delle tempistiche effettuata a priori consente che le successive fasi di controllo siano ragionevolmente brevi, nel rispetto delle data di rilascio della funzionalità. Una coerente quantificazione dei tempi deve seguire alcuni presupposti.

– innanzitutto avere un quadro completo delle specifiche funzionali e tecniche;

– ponderare con cura se l’ oggetto della consegna riguarda una singola funzione ( una maschera o una funzione di calcolo ad esempio) oppure un componente trasversale;

– valutare la tecnica più appropriata per eseguire i controlli(white box o black box, test esplorativo);

– scomporre la funzione in sottoinsiemi (c.d.tempificazione elementare)

A questo punto ogni sottoinsieme va stimato nella sua realizzazione e la somma dei tempi rappresenterà il time to costing di riferimento. Nella tempificazione elementare del singolo sotto insieme occorre inoltre considerare che una valutazione riferita alla risorsa uomo va sempre oggettivata rispetto al test nel suo complesso e non ad una sua ulteriore micro suddivisione. Se ad esempio stimassimo un tempo di 8 h uomo stiamo assumendo che in un giorno lavorativo l’intera sotto funzione sarà verificata e non solamente una sua parte. Questo aspetto valutativo evita di avere ridondanze o ripetizioni nel ciclo di test e soprattutto di accorciare le fasi di rilascio della funzionalità all’utilizzatore finale.

Ma quali sono concretamente i vantaggi di una buona tempificazione? Innanzitutto un vantaggio concettuale: tempificazione vuol dire testare, il tester deve saper tempificare. Seguono poi una serie di vantaggi pratici Quantificare correttamente i tempi di test,permette, infatti:
– in modo intrinseco, di avere una base di partenza per gli scenari e casi di test;

– di sapere, con un buon margine di certezza,se nei tempi stimati tutte le specifiche funzionali e tecniche saranno soddisfatte;

– di attribuire in modo certo ad ogni risorsa una tempistica massima di realizzazione delle verifiche, senza ritardi o sorprese in modo che il lavoro possa essere svolto con serena professionalità;

– poter e dover comprendere nelle tempificazioni elementari anche un margine percentuale che rappresenti un monte ore uomo definito “margine polmone”. Questo supplemento permette di gestire tutti i ritorni ( il tempo necessario alla contestualizzazione delle anomalie e le correzioni da parte dello sviluppo) e le eventuali emergenze o richieste nuove in corso d’opera.

Questi vantaggi (unitamente al fatto che il processo valutativo va fatto SEMPRE in via preliminare) assumono oggi giorno importanza sempre crescente soprattutto in contesti di rilascio organizzati e caratterizzati da innovazioni continue e assai ravvicinate nel tempo (pensiamo ai settori mobili,al cloud,al web e ai settori life critical come il farmaceutico o l’avionica).Una coerente tempificazione, inoltre, permette di comunicare all’utilizzatore finale che si è in grado di reagire alle richieste del mercato con agilità e quindi possiamo dire che il test time costing rappresenti, nel ciclo di vita del software, un contributo al più generale time to market aziendale.

Le attività di tempificazione,in contesti modernamente organizzati, sono affidate tipicamente ai responsabili di area (gli storici capoufficio per intenderci…), ma non è da escludere che tali compiti siano affidati agli analisti. In via allargata infatti la tempificazione è l’ultimo step dell’ analisi funzionale prima dell’ avvio della fase di sviluppo e/o deploy.

Terminiamo la trattazione, fornendo alcuni spunti pratici e trucchi da applicare quotidianamente sul campo
– Non evitare la tempificazione …”tanto è una funzionalità marginale”…: questo perché un impatto minore su una funzione x può avere effetti invasivi su una funzione y. La sensibilità rispetto a questi effetti si acquista ovviamente dopo un adeguato tempo di
conoscenza del prodotto e con un opportuno skill riguardo alle tecniche di test;

– Coinvolgere, in ottica agile, colleghi e collaboratori per cogliere aspetti tralasciati inizialmente.

– Abituarsi all’idea che se la tempificazione stimata non rientra ,motivatamente, nei tempi di deploy, occorre ragionare sullo spostamento della data di rilascio. Il tester infatti e’,alla interno del ciclo di vita del software, la figura che certificando tempistica
e comportamento dei programmi, può e deve anche ” bloccare” il rilascio se necessario, ossia impedire che una funzionalità possa essere distribuita con eventuali o residue incoerenze.

Tutte queste accortezze e suggerimenti ci permettono una considerazione finale importante. La tempificazione, in passato poco formalizzata e utilizzata in quanto le tecniche di test erano tradizionali, assume in maniera sempre più preponderante importanza attiva e le figure che se ne occupano costituiscono un ruolo oramai non secondario.

Ecco perché, per una ragione un più, appassionarsi al testing. Quindi mai tralasciare una tempificazione. Il tester lavora in modo professionale sin dall’inizio, sempre e comunque..e sempre utilizzando l’arma più preziosa di tutte: la mente e il ragionamento.
E, permettetemi l’espressione, sempre con un foglio e un matita come a scuola!