Scroll

Garantire una corretta qualità del software è fondamentale per tutte le aziende che desiderano realizzare prodotti capaci di soddisfare le aspettative degli utenti finali e del team di sviluppo, sia in termini di funzionamento che struttura interna. Di fatto, la qualità del software non può essere definita solamente attraverso testing pensati per coprire ogni singolo aspetto, bensì è necessario ampliare l’orizzonte e tenere in considerazione un ampio numero di elementi che andranno ad esprimere le caratteristiche del software.

In particolare, la qualità del software si basa su due diverse tipologie di parametri: esterni e interni.

Se la prima si riferisce a elementi come la correttezza, l’affidabilità, la robustezza, l’efficienza, l’usabilità e la ecocompatibilità, la seconda categoria comprende tematiche come la verificabilità, la manutenibilità, la riparabilità, l’evolvibilità, la riusabilità, la portabilità, la leggibilità e la modularità.

Un ulteriore parametro è legato alla qualità in uso, ovvero l’impatto del software nei contesti di utilizzo in ambienti simulati o reali, tenuto conto della partecipazione degli utenti e della relativa esperienza.

In un mercato in costante evoluzione, tutto ciò ricopre un ruolo chiave per le aziende che desiderano creare servizi e soluzioni software digitali sempre più fruibili e semplici per l’utente finale. Di fatto, garantire la qualità del software è indispensabile all’interno di questo scenario, è un percorso attuabile solamente attraverso metodi e strumenti ben precisi.

Metodologie e metriche per garantire la qualità del software

Uno degli approcci con cui garantire la qualità del software è quello relativo alle metriche, ovvero l’impiego di standard utili a misurare le caratteristiche dei prodotti software e dei processi di sviluppo.

Prendendo come riferimento lo standard ISO/IEC 25010:2011, vengono definite otto caratteristiche principali che definiscono il modello di qualità dei prodotti software: funzionalità, performance, compatibilità, usabilità, affidabilità, sicurezza, manutenibilità e portabilità.

A ciò, si aggiunge anche la norma ISO/IEC 25023:2016 che include ulteriori metriche che vanno a coprire tutte le sotto-caratteristiche indicate dalla ISO/IEC 25010:2011.

Entrambi gli standard sono un ulteriore step per misurare l’effettivo valore del software.

Le metriche di processo

Nello specifico, i processi di sviluppo e manutenzione non possono prescindere dalle metriche di processo relative a costi, tempi e produttività, oltre a quelle di prodotto come:

  • numero di linee di codice: questo parametro è utile per valutare la produttività del programmatore;
  • numero di classi e interfacce: è un’ulteriore misura della dimensione del software, nel caso di software orientato a oggetti;
  • function point (FP): metrica per calcolare il numero di funzionalità a partire dalle specifiche del software;
  • numero di errori per linea di codice: questo elemento serve a valutare l’affidabilità del software;
  • densità dei commenti questa metrica calcola il rapporto (Unità: %) tra CLOC (Comment Lines Of Code) e SLOC (Source Lines Of Code).

Copertura topologica per testare la qualità

Ogni singola scelta, sia di carattere tecnico sia funzionale intrapresa durante le fasi di sviluppo di un software, influisce notevolmente sul livello di qualità del prodotto finale.

Nella progettazione, ad esempio, principi come modularità, information hiding, coesione e disaccoppiamento possono influenzare il conseguimento di caratteristiche di qualità come affidabilità, comprensibilità, manutenibilità e portabilità.

Uno strumento estremamente importante per garantire che il prodotto software sia il più affidabile possibile è, pertanto, la copertura topologica del test. Se da un lato non potrà mai essere pari al 100%, la copertura topologica del test contribuirà a stabilire il grado di rischio nel rilascio del software, consentendo di trovare percorsi non testati e identificare quelli simili che non porteranno alcun valore aggiunto.

Quindi, attraverso l’adozione di metriche indipendenti dallo sviluppo tecnico e dalle scelte di implementazione, è possibile garantire la qualità del software. È una strada ardua e piena di ostacoli che, fin dalla fase di progettazione, deve essere affrontata con l’obiettivo di fornire prodotti di qualità sempre più elevata, attraverso un’accurata valutazione del software in ogni stadio del ciclo di vita.