Testing software: Cos’è, a cosa serve e le tecniche del controllo statico

Testing software: Cos’è, a cosa serve e le tecniche del controllo statico

Controllo statico

Nel testing software, il controllo statico di un programma, spesso chiamato anche verifica statica o analisi, è basato sulla non esecuzione del programma. Diversi sono i motivi per rinunciare alla naturale tendenza a lanciare un programma per sapere se questi funziona correttamente. Un primo motivo è che eseguire un programma, specialmente se questo è in realtà una procedura, cioè un pezzo di codice scollegato da ogni contesto eseguibile, ha un costo che, in molti casi può far preferire controlli basati sulla sola analisi del codice.

Testing software: Cos'è, a cosa serve e le tecniche del controllo statico

Desk check

Il modo più elementare di effettuare un controllo statico è basato sull’analisi informale del codice, condotta “a mano”, in inglese desk check, o mediante l’ausilio di strumenti automatici. Le tecniche più comuni per effettuare questo tipo di controlli statici sono l’ispezione e il walkthrough. Entrambi hanno lo scopo di trovare e denunciare dei difetti senza però che il revisore si sostituisca al progettista o al programmatore, a cui comunque rimane il compito di scoprire l’errore e correggere il codice. Sia ispezione che walkthrough possono inoltre essere organizzati all’interno del processo software secondo i medesimi principî: il gruppo di revisione e quello di codifica dovrebbero essere diversi, l’attività di verifica si dovrebbe concludere con un rapporto da includere nella documentazione del processo di sviluppo.
La principale differenza fra ispezione e walkthrough sta invece nel tipo di errori che la tecnica si prefigge di scoprire.
– Il walkthrough è inteso come un’esecuzione simulata del codice e porta generalmente a scoprire difetti originati da errori algoritmici;
– L’ispezione ha invece, di norma, obiettivi ristretti e prestabiliti: poiché i difetti sono raggruppabili in categorie, ben note ai programmatori, è plausibile che un controllo ottenga migliori risultati se concentrato su un solo tipo di difetti.
Il controllo statico è tendenzialmente identificato come un’attività manuale. In realtà molti controlli statici possono essere eseguiti con l’ausilio di analizzatori di codice automatici molto più efficienti e rigorosi di qualsiasi professionista. Perciò, in base alle caratteristiche del linguaggio di programmazione usato, si dovrà ricorrere a controlli manuali, ad esempio per mezzo di ispezioni mirate, solo per individuare le categorie di difetti per cui non sono disponibili strumenti automatici.

Analisi statica supportata da strumenti

Oltre al desk check, è possibile eseguire una verifica statica usando opportuni strumenti. Da un punto di vista teorico, avere un prova formale della correttezza di un programma, ottenuta a partire dall’analisi del codice, corrisponde all’esecuzione su tutti i possibili insiemi di dati d’ingresso. Quindi, la prova formale rappresenta, in teoria, un risultato ottimo, specialmente se paragonato con le risorse necessarie a un reale controllo esaustivo. Purtroppo questa strada non è in generale percorribile, per cui sono state sviluppate teorie di analisi statica che approssimano la prova formale “ideale”, rispondendo a diverse esigenze.

Pubblicato da Vito Lavecchia

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

Lascia un commento

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