Linee Guida per il Testing del Software

Questo articolo ha l’obiettivo di fare una panoramica di massima sui diversi modi di testare il software.

Tipicamente vi sono diversi modi di testare un software: si va dall’avviare l’applicazione e fare qualche click sulla User Interface per certificare che non succeda nulla di non previsto, a test rigorosi ed automatici prima del rilascio in ambienti di produzione; purtroppo si tende ad utilizzare spesso la metodologia meno costosa (sia in termini di tempo che di skills dei developers) in base ai diversi ambiti professionali: per un software poco critico si tenderà ad utilizzare il primo metodo, mentre per software medicali si spera che venga utilizzato il secondo! 🙂

Ci sono diversi modi di testare, automatizzati o manuali, funzionali e non funzionali, black-box o white-box e tutti questi possono essere su diversi livelli (test di unità, test dei componenti, test di integrazione). Per ogni progetto, è necessario trovare il metodo di test più adatto; più metodi si usano, più basse saranno le possibilità di rilasciare bug nel software (anche se questa possibilità non arriverà mai a zero)… d’altra parte, i test richiedono tempo, quindi costano. Questo è il motivo per cui è necessario individuare la metodologia più adatta al proprio progetto.

Test funzionali e non funzionali

Test funzionali

Il test funzionale mira a certificare che tutti i requisiti funzionali siano soddisfatti. Qui, in linea di massima, si verifica se la funzionalità del software corrisponde a quanto richiesto dal cliente. È necessario fare sempre attenzione anche ai casi limite, dove i requisiti funzionali non sono sempre chiari e/o sono particolarmente complessi.

Test non funzionali

I test non funzionali mirano a certificare tutti quegli aspetti non funzionali del software: la stabilità del software, o se il software è funzionante in ambienti diversi se richiesto (sistema operativo, browser web, hardware diverso, ecc.). I test di sicurezza appartengono a questa categoria, e sono particolarmente critici in ambienti bancari e/o web-based. Anche il test di carico appartiene a questa categoria, dove tipicamente vengono messe alla prova le architetture ed i sistemi di persistenza con un alto numero di richieste concorrenti. In questa categoria rientrano anche l’analisi del tempo di esecuzione del software negli scenari più critici (profiling) o il consumo di memoria.

Prossima pagina: Test Automatici e Manuali, Test Black-box e White-box

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *