L’importanza del controllo qualità: come lavora un Quality Assurance Specialist (QA)
Il concetto di test è entrato ormai nel linguaggio comune. Ad esempio, per la costruzione di automobili, chi non sa cosa è un crash test? Oppure i test sui giocattoli, che rispettino determinate normative europee, test sulle lampadine, per garantire contemporaneamente consumi più bassi ed il maggior numero di ore di durata. Ma cosa vuol dire testare un prodotto software oggi?
Da tempo, ormai, non si parla più di semplice “test”, ma è stato introdotto il controllo di qualità del software. Da qui deriva la figura del Quality Assurance Specialist (QA), ovvero colui che si occupa di garantire tale qualità.
È dunque importante prevedere, per ogni progetto, una persona che segua, passo per passo e in maniera organica, ogni fase dello sviluppo. Questo non solo per individuare e correggere eventuali errori, ma anche per evitare inefficienze o risultati inattesi. Anche perché, nel caso di lavori complessi, non è sempre facile (o addirittura possibile) tornare sui propri passi per correzioni, modifiche o ripensamenti. Per queste ragioni un controllo insufficiente in corso d’opera risulta anche meno conveniente in termini di revisione finale, tempo e risorse. Per garantire tutto ciò, il QA controlla diligentemente ogni fase di sviluppo del ciclo di vita del software, in modo che il cliente ottenga un elevato grado di soddisfazione.
Per questo quando si parla di QA, come detto, non ci si riferisce al mero controllo degli oggetti, di modo che funzionino correttamente, ma si cerca di entrare nel merito della logica dell’oggetto e di giudicarne la correttezza anche dal punto di vista funzionale.
La qualità non è mai casuale, è sempre il risultato di uno sforzo intelligente.” (John Ruskin)
Quando si parla di ciclo di vita del software inevitabilmente vengono in mente tre passaggi fondamentali:
- l’analisi
- lo sviluppo
- il testing
Il QA per prima cosa studia le specifiche scritte dall’analista (Business Analyst), descrive gli scenari e i casi di studio da verificare. Qualora ritenga che la specifica non sia completa, può direttamente domandare ulteriori chiarimenti al BA. Questo lavoro preliminare garantisce solidità alle basi del progetto, che devono essere complete di ogni elemento per poi proseguire senza dubbi o punti in sospeso.
In un secondo tempo, quando lo sviluppatore ha ultimato ogni singola funzionalità, insieme al QA si effettua il “4eye”. Durante il 4eye lo sviluppatore mostra il lavoro svolto al QA e quest’ultimo controlla che rispetti le specifiche definite dall’analista e che risponda nel modo atteso agli scenari e ai casi di test studiati. Questo passaggio, svolto a sviluppo “appena terminato”, è fondamentale per sollevare subito delle perplessità, per poi fare chiarezza in tempi brevi. Come il nome suggerisce: quattro occhi sono meglio di due. Inoltre un riscontro immediato sul lavoro fatto permette allo sviluppatore di procedere in modo più stabile.
Dopo aver realizzato tutte le funzionalità, la persona incaricata rilascia l’applicazione su un server di test. Il QA controlla in autonomia che tutte le funzionalità rispondano nel modo atteso attraverso il Framework for Integration Test (FIT). In seguito viene eseguito lo Smoke Test, e cioè che tutte le funzionalità (sia quelle del nuovo rilascio che quelle vecchie) siano corrette e non ci siano regressioni.
Il software viene infine consegnato al cliente. In questo modo si garantisce che il risultato finale rispecchi a pieno le specifiche richieste.
Affinché la qualità del risultato finale risulti un elemento di successo è fondamentale che essa venga portata avanti in tutte le fasi del progetto. Non risulta altrettanto efficace effettuare un controllo al termine del processo, in modo critico, su ciò che è già stato realizzato. Occorre far sì che il team lavori unito, nella stessa direzione, con l’obiettivo di realizzare un prodotto software di qualità.
Riassumendo, nel ciclo di produzione del software, il QA ha un ruolo chiave, poiché deve introdurre qualità nel processo. Per farlo deve possedere diverse abilità:
- essere capace di interfacciarsi con tutte le figure del team;
- intervenire in modo puntuale nei diversi momenti del processo;
- essere sempre a conoscenza dello stato di avanzamento dei lavori;
- garantire che i comportamenti dell’applicativo siano quelli attesi;
- stabilire la giusta priorità ai difetti trovati.
Per la natura delle applicazioni, durante il 4eye, il QA potrebbe richiedere allo sviluppatore di vedere la stessa funzionalità su tutti i browser a contratto, mentre il FIT e lo Smoke Test potrebbero essere effettuati non solo su pc, ma anche su più tablet e/o smartphone. A oggi, solitamente, non viene richiesta la compatibilità dell’applicazione solo con un browser o solo su un device, ma su più browser e su più device e per questo rivestono sempre più importanza i requisiti tecnici dell’applicazione dove vengono elencati tutti i browser e i dispositivi che devono essere compatibili (con indicate anche le versioni).
Questa è la nostra strategia e la nostra metodologia per collocare il controllo qualità nella realizzazione degli applicativi software, al fine di orientare il ciclo di produzione verso la soluzione migliore, fin dall’inizio. Siamo convinti che tenere alta la qualità del processo di sviluppo e del prodotto software garantisca una maggiore soddisfazione del cliente, sia nel breve che nel lungo periodo.