Tecniche di Testing Software: Il Test funzionale e non funzionale

Tecniche di Testing Software: Il Test funzionale e non funzionale

Il test di un sistema software è la più canonica delle attività di validazione che valuta ogni caratteristica di qualità del prodotto software nella sua completezza, avendo come documento di riscontro i requisiti dell’utente.
Le tecniche più adottate per i test sul sistema sono basate su criteri funzionali (test funzionale) e non funzionali (test non funzionale). Gli obiettivi dei controlli di sistema sono normalmente mirati a esercitare il sistema sotto ben determinati aspetti.

Tecniche di Testing Software - Il Test funzionale e non funzionale

Functional test o Test funzionale: È il più intuitivo dei controlli (test case), cioè quello che mira a controllare che ogni funzionalità del prodotto stabilita nei requisiti sia stata realizzata correttamente.

Security Test: Cercando di accedere a dati o a funzionalità che dovrebbero essere riservate, si controlla l’efficacia dei meccanismi di sicurezza del sistema.

Usability Test: Con questo controllo si vuole valutare la facilità d’uso del prodotto da parte dell’utente finale. È una valutazione su una delle caratteristiche di un prodotto software fra le più soggettive; il controllo deve prendere in esame oltre al prodotto anche tutta la documentazione che lo accompagna e deve tener conto del livello di competenza dell’utenza e delle caratteristiche operative dell’ambiente d’uso del prodotto.

Performance Test: È un controllo mirato a valutare l’efficienza di un sistema soprattutto rispetto ai tempi di elaborazione e ai tempi di risposta. È un tipo di controllo critico per quelle categorie di prodotti, come ad esempio i sistemi in tempo reale, per le quali ai requisiti funzionali si aggiungono rigorosi vincoli temporali. Il sistema viene testato a diversi livelli di carico.

Storage Use Test: È ancora un controllo legato all’efficienza di un sistema, ma mirato alla richiesta di risorse la memoria in particolare durante il funzionamento, e ha implicazioni sull’ambiente operativo richiesto per poter installare il sistema.

Volume Test: Durante questo tipo di controllo il sistema è sottoposto al carico di lavoro massimo previsto dai requisiti e le sue funzionalità sono controllate in queste condizioni. Lo scopo è sia individuare malfunzionamenti che non si presentano in condizioni normali, quali difetti nella gestione della memoria, buffer overflows, etc., sia garantire un’efficienza base anche in condizioni di massimo carico.
Le tecniche e gli strumenti del volume test sono di fatto usato anche per il performance test: vengono fissati alcuni livelli di carico, e su questi sono valutate le prestazioni del sistema. Sicuramente, però, i due tipi di test hanno scopi molto differenti, da un lato valutare le prestazioni a vari livelli di carico, non limite, dall’altro valutare il comportamento del sistema sui valori limite.

Stress Test: Il sistema è sottoposto a carichi di lavoro superiori a quelli previsti dai requisiti o è portato in condizioni operative eccezionali in genere sottraendogli risorse di memoria e di calcolo. Non è da confondere con il volume test da cui differisce per l’esplicito superamento dei limiti operativi previsti dai requisiti. Lo scopo è quello di controllare la capacità di “recovery” (recupero) del sistema dopo un fallimento.

Configuration Test: Alcuni prodotti prevedono la possibilità di avere più configurazioni, per lo più in presenza di piattaforme di installazione diverse per sistema operativo o dispositivi hardware installati, in altri casi per soddisfare un insieme di requisiti funzionali leggermente diversi. Questo tipo di controllo ha per obiettivo la prova del sistema in tutte le configurazioni previste.

Compatibility Test: È un controllo che ha l’obiettivo di valutare la compatibilità del sistema con altri prodotti software. Gli oggetti del confronto possono essere versioni precedenti dello stesso prodotto, sistemi diversi, ma funzionalmente equivalenti che il prodotto deve rimpiazzare, oppure altri sistemi software con cui il prodotto deve interagire nel suo ambiente operativo finale.

È interessante notare come i test descritti mirano a esercitare gli aspetti di un sistema software che corrispondono a quelle caratteristiche che sono normalmente percepite come fattori di qualità. Troviamo ad esempio che il Facility Test e il Security Test sono direttamente legati con la funzionalità, Volume Test e Stress Test sono in rapporto con l’affidabilità, ovvia è la collocazione dell’Usability Test, Performance Test e Storage Use Test rispecchiano i due aspetti dell’efficienza, infine, Configuration Test e Compability Test sono collegabili alla portabilità del sistema.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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