Controllo qualità del softwareIl “Software” è un oggetto molto particolare.

Anche il software più robusto, statisticamente, in qualche meandro, in qualche piega del suo codice, conterrà sempre un errore, qualcosa che genererà, in quel rarissimo caso, un’anomalia:

un test che non rileva malfunzionamenti non strapperà mai un sorriso a colui che si occupa di controllare la qualità del software.

Ma andiamo a spiegare cosa vogliamo dire con questo.

Prendiamo, ad esempio, un programma p(x) che tenta di rappresentare una funzione f(x): non può essere garantito che, se un test, con dati in ingresso α, fornisce la corrispondenza p(α)=f(α), vi siano altri valori o infiniti valori ß, nel dominio di f, tali per cui si abbia p(ß)=f(ß).

Proviamo a tradurre quanto detto facendo riferimento all’ingegneria tradizionale.

Se costruiamo un ponte e valutiamo il carico massimo con un determinato peso, possiamo dedurre che in quelle condizioni, per tutti i valori di peso minori di quel valore, il ponte continuerà a resistere; questo grazie alla continuità delle equazioni che modellano il sistema.

Ebbene questo ragionamento non vale per il software; dunque un test che non fornisce errori non permette di dedurre che il programma sarà corretto con altri dati di test.

Uno di più grandi informatici, Edsger Wybe Dijkstra, affermava che il test può servire per scoprire la presenza di possibili malfunzionamenti, ma non a garantirne l’assenza!

E se lo dice lui….

Quindi, ora è più chiaro il motivo per cui affermiamo che, se in un programma non si scovano errori, non c’è da gioirne: il test non ci ha fornito alcuna informazione.

Lo scopo del test è quello di manifestare i malfunzionamenti poiché nel software i malfunzionamenti “ci sono”, quindi è importante scoprirli.

L’obiettivo di chi effettua un test è quello di trovare il massimo numero possibile di malfunzionamenti, al fine di correggerli.

Da quanto abbiamo affermato, quindi, se attraverso il test non troviamo alcun errore, non possiamo certo dedurre che gli errori non ci siano: nessuno ci assicura che altre, infinite altre esecuzioni non ci daranno errori.

E la qualità?

E quindi a cosa è legato, nel caso di un software, il concetto di qualità? Chi acquista un software acquista quindi qualcosa qualitativamente inevitabilmente scadente?

Naturalmente non è così e il concetto di qualità in un software è legato al suo sviluppo:

un software che viene continuamente sviluppato, ha buone probabilità di essere un software di qualità.

Anche perché le piattaforme, i device che ospitano i software sono in continua evoluzione e questo può portare al manifestarsi di malfunzionamenti, anche laddove prima non erano presenti.

Di conseguenza, non è tanto importate scegliere il software, piuttosto scegliere chi dovrà sviluppare quel software:

Quanto la software house investe nel prodotto e nella sua qualità?
Quanto spesso rilascia gli aggiornamenti?

Ci fermiamo qui per questa prima parte: l’argomento è più complesso di quanto si pensi e questo primo post sull’argomento “controllo della qualità del codice di un software”, è davvero solo una necessaria premessa.

Con i prossimi post andremo a scavare in profondità, ma cercheremo sempre di spiegare in maniera divulgativa anche i concetti più complessi e tecnici. Seguiteci!

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

 

 

Ascoltando: Franco Battiato – La cura
Lettura in corso: “Lo Zen e L’arte della manutenzione della motocicletta” di Robert Pirsig
Mood: Accurato

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