Significato e Differenza tra testing e qualità del software

Significato e Differenza tra testing e qualità del software

Perché testare un’applicazione

Il Testing software è l’attività di specificare, designare ed eseguire test. Un’analisi attenta delle imperfezioni del codice e dei suoi scostamenti da quanto progettato è un passo essenziale per la realizzazione di un prodotto valido, funzionale, che soddisfi la clientela e non vanifichi l’attività di realizzazione del prodotto. Come andrebbero realmente le cose se la società distribuisse un prodotto senza prima verificarne la funzionalità e l’efficienza, dipende profondamente dalla tipologia del software, dalla sua complessità, dal pubblico finale e da altri fattori, ma nella quasi totalità dei casi la mancanza di test porta inevitabilmente ad un prodotto ancora “progetto”, non finito, incompleto. Realtà di questo tipo si sono sempre avute nella storia del commercio informatico: società mosse dal fervore di superare la concorrenza hanno finito per mandare in fumo oltre che risorse (denaro/uomini) anche credibilità acquisite in lunghi tempi.

Esempi opposti arrivano invece da aziende di “affidabilità” consolidata, che producono software per i quali ogni difetto potenziale costituisce una perdita d’immagine e di leadership di mercato: un facile esempio è quello del campo dei Data Base, nel quale aziende come la IBM o l’Oracle puntano su prodotti di qualità, rilasciando nuove release del prodotto anche dopo alcuni anni, impegnandosi dunque non sulla velocità nel battere la concorrenza ma su un attento e lungo test. La ragione, in questo caso, è anche dettata dal fatto che prodotti come i Data Base vengono utilizzati per la gestione di grosse quantità di dati di imprese di vario genere, contenenti informazioni riservate, importanti, di alto valore economico: ogni perdita di dati costituisce un perdita pesante in termini di denaro che si ripercuote sull’impresa stessa. L’attività di verifica del prodotto prima che questo venga consegnato al cliente ha un nome: defect testing, la quale esamina la correttezza delle varie funzionalità presenti.

Significato e Differenza tra testing e qualità del software

Commercialmente oggi le cose sono cambiate: ogni processo produttivo (su vasta scala in maniera particolare) è dotato di una fase di analisi ben definita, alla quale molte società dedicano anche il 35 – 40% circa del tempo complessivo di realizzazione del prodotto (indicando come analisi l’intera fase che predispone all’attività di codifica del prodotto); un tempo che, a mio avviso, deve essere attentamente valutato per evitare che si trasformi in una fase di interminabile attività di ricerca e correzione. Il tempo di completamento del prodotto, dovrebbe poter essere rispettato al fine di soddisfare la clientela, e protratto solo a fronte di gravi anomalie che devono essere assolutamente risolte.

Relazione tra test software e qualità

Il concetto di qualità è intuitivamente un aspetto di fondamentale importanza nella progettazione del software; la realtà, ci porta invece a notare come non sempre tale aspetto sia chiaro, anche perché è difficile identificare il significato stesso del termine qualità e l’oggetto di paragone con cui confrontare il nostro prodotto per assicurare che questo non sia sufficientemente “buono” (qualità rispetto a cosa?). La qualità viene definita secondo l’IEEE come:

“Il grado di combinazione di opportuni elementi che esprimono le caratteristiche gradevoli di un software”.

In effetti, ciò che risulti gradevole e ciò che non lo sia pare essere una questione del tutto soggettiva, ma senza dubbio la definizione fa luce su molti aspetti. La qualità può essere valutata attraverso gli attributi misurabili di un software. Come possiamo misurare la qualità del software? Dobbiamo necessariamente considerare il software come un insieme di aspetti differenti:

  1. Caratteristiche richieste
    • Software
    • Database
    • Codice sorgente
    • Dati accessori
  2. Misura
    • Testabilità, funzionalità, completezza
    • Organizzazione dei dati
    • Semplicità, mantenibilità, scalabilità
    • Densità di errore (deve essere minima)

Se per ognuno di questi elementi, in funzione della loro misura, esprimiamo una grandezza numerica, possiamo sommare le singole grandezze ed ottenere una quantità tangibile che esprima la “bontà” del prodotto: confrontando questa grandezza con quella misurata su altri software abbiamo un confronto qualitativo, che ci permette di ottenere una classifica dei migliori prodotti disponibili. E’ questa la tecnica usata dai benchmark per verificare l’affidabilità e la qualità dei prodotti e da chiunque desideri confrontare tra di loro prodotti simili al fine di comprendere quali siano i migliori.

Ma l’attività di test come è legata alla qualità del software? Senza dubbio, testare un’applicazione al fine di risolvere i bug presenti contribuisce a migliorare la qualità del prodotto, perché fa sì che questo funzioni correttamente; ma non basta. Testare significa in altre parole far coincidere il prodotto con le specifiche progettuali del cliente; se in partenza, tali specifiche non vengono però realizzate avendo come riferimento ad esempio i requisiti di usabilità, il test non può garantire qualità nel prodotto.

Il compito del tester è dunque individuare anomalie e comunicarle, NON allineare il prodotto agli standard desiderati

La qualità, può essere pianificata ed ottenuta in fase di progettazione e realizzazione, mai in fase di test.

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 *