Collaudo del software
Il testing o collaudo è il procedimento che verifica la correttezza, la completezza e l’affidabilità di un software.
Assicurare la qualità del prodotto tramite la ricerca e correzione dei difetti è quindi l’obiettivo fondamentale di questa procedura. Solo tramite il testing possiamo avere la certezza che il software corrisponda esattamente ai requisiti definiti in fase di analisi delle specifiche tecniche.
Il processo di collaudo del software: le fasi
A prescindere dalla metodologia utilizzata, Agile, Scrum o RUP, possiamo definire un processo fondamentale suddiviso in step.
Tipologie di test:
- Functional Testing: prevede dei test che valutano le funzioni che il sistema deve eseguire. Le funzioni sono le azioni che dovrebbe fare il sistema.
- Non-functional Testing: Valuta le caratteristiche di software e di sistemi come l’usabilità, l’efficienza o la sicurezza.
Per alcune parti dei software viene lo Unit Testing. L’Unit testing è effettuato quando bisogna collaudare separatamente le singole componenti di un sistema software. Le componenti collaudabili di un sistema software prendono il nome di “moduli” o “unità”, per cui si parla di “collaudo di modulo“. In questo caso vengono scritti dei piccoli programmi che hanno il compito di verificare i risultati prodotti dal software posto sotto test. Il vantaggio di scrivere test automatici è la ripetibilità “senza costo” del test che può essere eseguito innumerevoli volte.
Data l’impossibilità di testare tutte le combinazioni di input e i possibili ambienti software e hardware in cui l’applicazione può trovarsi ad operare, la probabilità di malfunzionamenti non può essere ridotta a zero, ma deve essere ridotta al minimo, in modo da risultare accettabile per l’utente. In questo contesto pare evidente che in un’applicazione “life-critical”, ad esempio in ambito ospedaliero o militare, dove un malfunzionamento può mettere a rischio la vita umana, la qualità richiesta sarà molto più elevata di quella attesa per software di ufficio o un videogioco.
Come diventare tester?
Per diventare tester riconosciuti, sono nati a livello mondiale percorsi di certificazione delle conoscenze. L’International Software Testing Qualifications Board (ISTQB) è l’ente più importante a livello mondiale che si occupa di queste certificazioni. In particolare, il board italiano “ITA-STQB” (Italian Software Testing Qualifications Board) è attivo dal 2007 con l’obiettivo di effettuare in Italia e nel cantone svizzero di lingua italiana la certificazione delle competenze in ambito System and Software Engineering, in conformità con le procedure definite dagli schemi di riferimento a livello mondiale. Le certificazioni disponibili sono tre: la certificazione in Requirements Engineering, quella in Software Testing e quella in Mobile App Testing.
Il software testing sta assumendo sempre di più il ruolo centrale nell’ambito dell’ingegneria del software. È quindi sempre più importante riuscire a qualificare professionisti nell’ambito del testing.