Eccoci di nuovo a trattare del controllo qualità del codice di un software.

Nel primo intervento avevamo introdotto il concetto che il software è un qualcosa di estremamente perfettibile. Nel senso di continuamente perfezionabile.

C’eravamo lasciati affermando il concetto che un testpuò servire per scoprire la presenza di possibili malfunzionamenti, ma non a garantirne l’assenza”. Parole di Edsger Wybe Dijkstra!

Questo non deve scoraggiarci nella ricerca dei possibili problemi, anzi!

Come promesso, adesso andremo più in profondità su questo argomento e per farlo bisogna che prima condividiamo un breve glossario in maniera da acquisire un linguaggio comune che ci permetterà di essere più comprensibili nella spiegazione dei vari concetti.

Alcune definizioni

  • Verifica: controllo della coerenza del modulo con le specifiche di progetto.

  • Convalida: controllo di coerenza del modulo con i requisiti del sistema.

  • Controllo qualità: verifica e convalida del prodotto e del processo, viene svolta durante tutti il ciclo di vita del software.

  • Errore: è la causa che genera un malfunzionamento all’interno del programma (es: un errore umano di editing);

  • Anomalia (fault): difetto del programma dovuto ad un errore; ad esempio, un errore umano che introduce nel programma un difetto o anomalia;

  • Malfunzionamento (failure): la manifestazione visibile della presenza di un’anomalia in un programma. Attraverso un errore (es: un errore umano di editing) si può manifestare un’anomalia. “Si può”. Non è detto che l’anomalia, nonostante l’errore, si manifesti.

 

Sarà necessario innanzitutto fissare i momenti del controllo e definire il modo con cui svolgerlo. Il controllo può essere svolto da una funzione interna o da una funzione esterna rispetto al gruppo addetto al progetto (o all’azienda).

Bene ora è il momento di immergersi nel cuore dell’argomento: il controllo qualità del codice di un software.

In questo post inizieremo a trattare dei metodi  e criteri di analisi del controllo qualità.

Metodi sociali

Il metodo sociale di un controllo qualità prevede il coinvolgimento di più persone. Il controllo viene eseguito attraverso revisioni di progetto e ispezione del codice.

  • Revisioni di progetto:

Durante una riunione il progettista illustra il progetto con l’obiettivo di effettuare un controllo qualità: durante l’esposizione il progettista stesso si rende conto di errori nel progetto.

  • Ispezione del codice:

Viene stilata una check-list di possibili problemi del codice, da parte di un ispettore, il quale cerca gli errori previsti dalla check list.

Sembra incredibile, ma questa tipologia di metodo, detto sociale, arriva a scoprire fino al 75% errori!

Criteri di analisi

Il controllo qualità del software, può essere svolto realizzando due tipi di analisi:

  • analisi statica
  • analisi dinamica

Analisi statica

L‘analisi statica cerca di scoprire gli errori del programma senza mandarlo in esecuzione. Vedremo invece come nell’analisi dinamica si persegui lo stesso scopo, ma mandando in esecuzione il programma.

In genere i metodi sociali si applicano all’analisi statica del programma.

L’analisi statica scopre un numero limitato di errori, ma questi, come già detto,  sono indipendenti dall’esecuzione.

Esistono strumenti applicativi che svolgono analisi statica in modo automatico:

  • compilatore (lessicale, sintattica, semantica – type checking);
  • strumenti di analisi.

L’uso di strumenti di analisi può consentire di identificare le seguenti potenziali fonti di errore:

  • uso anomalo di variabili;
  • uso di variabili non inizializzate;
  • assegnamento senza uso successivo;
  • anomalie di flusso (codice irraggiungibile);
  • valutare tabelle di cross-reference, quale modulo chiama quale altro modulo;
  • valutazione della “complessità ciclomatica” di un programma.

La complessità ciclomatica di un programma può essere calcolata noto il grafo di controllo del programma stesso (flow-chart), come segue:

 

complessità ciclomatica = numero di archi – numero di nodi + 1

 

In genere una complessità ciclomatica > 10 può essere sintomo di presenza errori.Complessità ciclomatica del flow chart

Prendendo come esempio il flow-chart qui a fianco, potremmo calcolare così la complessità ciclomatica:

CC = 9-8+1=2

La complessità ciclomatica coincide con le decisioni che il programma effettua (ifwhilefor) (fornisce indicazioni di quanto sia complesso il flusso di controllo di un programma).

L’analisi statica segnala potenziali anomalie che potrebbero non costituire un errore (ad esempio l’uso di variabili non inizializzate, non è detto che provochi un errore), dunque è da considerarsi una valutazione pessimistica del programma.

Come citato in precedenza, oltre all’analisi statica è possibile effettuare un’analisi dinamica.

Ma questo sarà il tema della prossima “puntata” dedicata al controllo della qualità del codice di un software.

Alla prossima!

Dietro al software: il controllo della qualità del codice – Pt. 1

 

Ascoltando: Wolfmother – “Joker and the Thief
Lettura in corso: “Cosmopolis” di Don DeLillo
Mood: Ciclomatico

Digital strategist

Next

La NeXT è una software house che produce e commercializza sistemi informatici studiati per fornire informazioni e dati aggregati al management aziendale, supportandolo nelle decisioni operative.

La NeXT può garantire una eccellente qualità del servizio, grazie alla tecnologia della programmazione ad agenti, unica nel settore.

 

 

 

Dove siamo

Sede Operativa
via Ancona 55/A
60030, Castelbellino (AN)

Sede Legale
via Nazario Sauro 11/a
60035, Jesi (AN)

Tel: 0731696646
Fax: 0731690464
Email: info@mynext.it

P.IVA: 02510420421

 

Contatti

Project manager
Nicola Bergantino
n.bergantino@mynext.it

Commerciale
Giampiero Giannoni 
g.giannoni@mynext.it

Lorenzo Bravi
l.bravi@mynext.it

Amministrazione
Marina Minischetti
m.minischetti@mynext.it

Chatta con noi.

Scannerizza il logo con Messenger