Il Testing o Collaudo del software

Il Testing o Collaudo del software

Introduzione

L’attività di testing del software nasce con la comparsa della prima riga di codice. Questo è dunque un concetto che si sviluppa nel corso degli anni, evolve nelle metodologie, introduce cambiamenti nelle tecniche di sviluppo e nell’idea stessa di software.

L’analisi dell’attività di testing ha evidenziato una stretta relazione tra ogni fase del processo e la relativa documentazione generata al suo interno. Tali documenti si sono dimostrati di importanza fondamentale per una buona riuscita del testing di un prodotto software.
Nonostante questo, sono numerosi i problemi che ostacolano la creazione della documentazione di test e la mancanza di essa determina un rallentamento nella diffusione di tali prodotti.
Ciò è ancora più vero nell’ambito di Software Open Source, dove lo sviluppo avviene grazie alla collaborazione di più persone e spesso esistono difficoltà di coordinamento, frammentazione del codice, mancanza di omogeneità e standardizzazione. In questo dominio, la documentazione gioca un ruolo fondamentale, essendo al tempo stesso la causa e la soluzione a queste problematiche.

Il Testing o Collaudo del software
Il Testing o Collaudo del software

Il Testing del software

Il testing del software è un procedimento utilizzato per individuare le carenze di correttezza, completezza e affidabilità di un prodotto software in corso di sviluppo.
Con tale attività si vuole quindi assicurare la qualità del prodotto tramite la ricerca di difetti, ovvero una sequenza di istruzioni e procedure che, quando eseguiti con particolari dati di input e in particolari ambienti operativi, generano dei malfunzionamenti.

Un malfunzionamento è un comportamento del software non atteso da parte dell’utente, quindi difforme dalle specifiche e dai requisiti impliciti o espliciti definiti per tale applicazione.
Lo scopo del testing è quindi quello di rilevare i difetti tramite i malfunzionamenti, in modo da ridurre al minimo la probabilità che tali malfunzionamenti si possano verificare nel normale utilizzo del prodotto software.

Il testing non può stabilire che un prodotto funzioni correttamente sotto tutte le possibili condizioni di esecuzione, ma può evidenziare difetti sotto specifiche condizioni.
Infatti, data l’impossibilità di testare tutte le combinazioni di input e i possibili ambienti software e hardware in cui l’applicazione può trovarsi ad operare, la probabilità di malfunzionamenti non può essere ridotta a zero, ma deve essere ridotta al minimo, in modo da risultare accettabile per l’utente.
L’accettabilità di una certa probabilità di malfunzionamento dipende dal tipo di applicazione che si vuole realizzare.
In questo contesto pare evidente che in un applicazione “life-critical”, ad esempio in ambito ospedaliero o militare, dove un malfunzionamento può mettere a rischio la vita umana, la qualità richiesta sarà molto più elevata di quella attesa per software di ufficio o un videogioco.

Il testing viene definito come “processo di pianificazione, preparazione, esecuzione e analisi, con lo scopo di stabilire le caratteristiche di un sistema informativo, e di dimostrare le differenze tra lo stato attuale e lo stato richiesto”.
Tale definizione mette in luce che l’attività di testing non può essere limitata alla ricerca di difetti nel codice sorgente tramite il manifestarsi di malfunzionamenti, ma deve essere estesa ad un esame più approfondito dei requisiti definiti per l’applicazione e la loro implementazione.
Alcuni difetti, infatti, si manifestano sottoforma di mancanza di requisiti, inadeguatezza degli stessi o comunque sono generati in modo indipendente dalla correttezza o meno del codice sorgente.

Pubblicato da Vito Lavecchia

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

2 Risposte a “Il Testing o Collaudo del software”

  1. Il software testing sta assumendo sempre di più il ruolo centrale nell’ambito dell’ingegneria del software. È quindi sempre più importante riuscire a qualificare, in maniera oggettiva, professionisti nell’ambito del testing. Sono quindi nati a livello mondiale percorsi di certificazione delle conoscenze. L’International Software Testing Qualifications Board (ISTQB) è l’ente più importante a livello mondiale che si occupa di queste certificazioni.

Lascia un commento

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