La garanzia della qualità del software implica il test della progettazione e dell’implementazione del software per computer e la garanzia che soddisfi uno standard minimo di qualità. Al centro del processo di assicurazione della qualità c’è il test, che è il metodo con cui viene analizzato ogni passaggio del ciclo di sviluppo al fine di trovare difetti, come malfunzionamenti o problemi di sicurezza. La parte più comunemente nota del processo di garanzia della qualità del software è il test del software e del codice; tuttavia, copre anche altri aspetti del ciclo ingegneristico. Altri aspetti dell’ingegneria del software soggetti ad analisi di qualità includono le fasi di progettazione e implementazione.
Il concetto generale di garanzia della qualità del software richiede che inizi nella fase di pianificazione del software. Un software mal pianificato può essere difficile o impossibile da scrivere in un modo che soddisfi le aspettative dell’organizzazione che lo ha concepito. La gestione della qualità nella fase di progettazione comporta lo studio delle ramificazioni delle specifiche o degli obiettivi del progetto, nonché dei piani dell’organizzazione per raggiungere i propri obiettivi. Il vantaggio dell’analisi della qualità nella fase di progettazione è che trova ed elimina gli errori all’inizio, piuttosto che successivamente nel ciclo di sviluppo, quando i problemi di progettazione sono molto più costosi da risolvere.
Un ingegnere di test del software, noto anche come analista della qualità del software, è la persona principale responsabile dell’esecuzione del processo di test. Questa persona progetta ed esegue i piani di test che aiuteranno un’organizzazione a migliorare la qualità del proprio software. Idealmente, un programmatore non dovrebbe mai testare il proprio prodotto, il che significa che all’interno di un progetto, un programmatore e un ingegnere di test sono due persone diverse.
I piani di test sono una parte fondamentale del sistema di garanzia della qualità, in particolare la fase di test del software. Lo scopo dei piani di test è determinare le condizioni che contrassegnano il successo o il fallimento del software. Un tipico piano di test includerà un elenco completo di programmi e sottoprogrammi o procedure che devono essere testati, nonché le tecniche coinvolte nel test. Un’altra funzione critica di un piano di test è determinare quali difetti sono inaccettabili. I piani di test sono in genere progettati prima che venga sviluppato il codice software effettivo del progetto.
Quando gli ingegneri di test scrivono programmi per implementare piani di test, questi vengono chiamati script di test. Gli script di test sono una parte essenziale del processo di garanzia della qualità del software. Il loro scopo è automatizzare il test del codice esistente di un programma per trovare difetti. Inoltre, gli ingegneri di test in genere utilizzano strumenti di test progettati commercialmente per cercare potenziali problemi. I piani di test vengono implementati durante la fase di codifica dello sviluppo del software.
Ci sono una serie di passaggi importanti coinvolti nella fase di test effettiva del processo di garanzia della qualità del software. Questi includono i test delle unità, che valutano l’integrità di varie sezioni del codice software, nonché le iniezioni di errori, progettate per indagare su come i programmi rispondono a dati errati. Ulteriori passaggi includono il test di carico o stress test, che verifica il funzionamento di un programma in condizioni di utilizzo intenso e test di intrusione o sicurezza per testare la resistenza di un programma all’accesso non autorizzato. Un progetto software è anche tipicamente sottoposto a test di usabilità, al fine di verificare che il programma risultante sia facile da usare per gli altri.
Gli specialisti che si occupano di test del codice software sono generalmente divisi in due gruppi, uno chiamato tester della scatola nera e l’altro noto come tester della scatola bianca o della scatola di vetro. Il test della scatola nera è un processo più superficiale che inizia nella fase di codifica del software e non esamina alcun codice informatico sottostante. Indaga sull’usabilità di un software, sulla consistenza estetica e sul verificarsi di errori e malfunzionamenti.
Il test della scatola bianca è un processo che inizia all’inizio del processo di garanzia della qualità del software, nella fase di progettazione. Include la previsione di potenziali problemi prima che il codice venga effettivamente scritto, nonché la scrittura di piani di test e script di test avanzati. A differenza del test della scatola nera, il test della scatola bianca comporta anche lo studio del codice del computer sottostante.
L’assicurazione della qualità si applica anche alla fase di implementazione del software, ovvero quando il software è vicino al completamento e viene installato sui sistemi informatici per la valutazione. Questa fase viene spesso definita alpha testing e si verifica quando il prodotto quasi finito viene installato e testato dallo staff dello sviluppatore. Quando il software viene presentato a potenziali clienti esterni all’azienda, si parla di beta testing. Se si verificano difetti dopo il rilascio del software ed è necessario sviluppare una patch, viene utilizzato il test di regressione per garantire che gli aggiornamenti non creino nuovi errori.