Collaudo del software: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m wikificato alcuni termini ed aggiunto alcune frasi per agevolare la comprensione del testo
Riga 1:
{{Nota disambigua|l'album di [[ASAP Rocky]] del 2018|Testing (album)|Testing}}
{{F|ingegneria del software|maggio 2012}}
Il '''collaudo del software''' (detto anche '''testing''' o '''software testing''' secondo le denominazioni [[lingua inglese|inglesi]]), in [[informatica]], indica un procedimento, che fa parte del [[ciclo di vita del software]], utilizzato per individuare le carenze di [[Correttezza (logica matematica)|correttezza]], [[Specifica (ingegneria del software)#Completezza|completezza]] e [[affidabilità]] delle componenti [[software]] in corso di sviluppo. Consiste nell'esecuzione del software da parte del collaudatore, da solo o in combinazione ad altro software di servizio, e nel valutare se il comportamento del software rispetta i [[:Categoria:Requisiti software|requisiti]]. A volte il collaudo, che fa parte delle procedure di [[assicurazione di qualità]], viene confuso con il [[debugging]], con il [[Profiling (programmazione)|profiling]], o con il [[benchmark (informatica)|benchmarking]].
 
== Descrizione generale ==
Riga 10:
Nessun collaudo può ridurre a zero tale probabilità, in quanto le possibili combinazioni di valori di input validi sono enormi, e non possono essere riprodotte in un tempo ragionevole; tuttavia un buon collaudo può rendere la probabilità di malfunzionamenti abbastanza bassa da essere accettabile dall'utente. L'accettabilità di una data probabilità di malfunzionamento dipende dal tipo di applicazione.
 
Il software per cui è richiesta la massima qualità, è quello cosiddetto "life-critical" ("safety critical"), cioè in cui un malfunzionamento può mettere a rischio la vita umana, come quello per apparecchiature medicali o aeronautiche. Per tale software è accettabile solo una probabilità di malfunzionamento molto bassa, e pertanto il collaudo è molto approfondito e rigoroso. Per rilevare il maggior numero possibile di difetti, nel collaudo si ''sollecita'' il software in modo che sia eseguita la maggior quantità possibile di codice con svariati dati di input.
 
Può anche darsi che un errore nel codice sorgente generi un malfunzionamento solo se si utilizza un particolare [[compilatore]] o [[Interprete (informatica)|interprete]], o solo se eseguito su una particolare piattaforma. Pertanto può essere necessario collaudare il software con vari [[Integrated development environment|ambienti di sviluppo]] e con varie piattaforme di utilizzo.
 
Le tecniche di collaudo possono essere classificate in molti modi. I principali sono i seguenti:
Riga 25:
La fase di '''verifica''' e di '''validazione''' serve ad accertare che il [[software]] rispecchi i requisiti e che li rispetti nella maniera dovuta.
 
Precisamente:
Precisamente la verifica serve a stabilire che il software rispetti i requisiti e le specifiche, quindi ad esempio che non ci siano requisiti mancanti, mentre la validazione serve ad accertare che i requisiti e le specifiche siano anche rispettati nella maniera giusta.
 
Precisamente* la '''verifica''' serve a stabilire che il software rispetti i requisiti e le specifiche, quindi ad esempio che non ci siano requisiti mancanti, mentre la validazione serve ad accertare che i requisiti e le specifiche siano anche rispettati nella maniera giusta.
Questa fase, infatti, è molto delicata in quanto, dopo tutto il processo si può ottenere un [[software]] perfettamente funzionante, senza errori, ma del tutto inutile in quanto non rispecchia quanto era stato chiesto all'inizio.
* mentre la '''validazione''' serve ad accertare che i requisiti e le specifiche siano anche rispettati nella maniera giusta.
 
Questa fase, infatti, è molto delicata in quanto, se il software passa la verifica, ma non la validazione, dopo tutto il processo si può ottenere un [[software]] perfettamente funzionante, senza errori, ma del tutto inutile in quanto non rispecchia quanto era stato chiesto all'inizio (in tal caso non adempiendo all'insieme completo delle funzionalità previste e quindi non servendo allo scopo di progetto, può esserci il rischio che venga rigettato dal cliente).
 
Secondo il modello applicato questa fase si applica su stadi intermedi o su tutto il software.
Riga 36 ⟶ 39:
=== Sviluppo a cascata ===
 
Il procedimento tradizionale di [[Sviluppo software|sviluppo del software]], detto "a cascata" (in inglese "waterfall"), prescrive di iniziare il collaudo appena è completata la prima versione del prodotto. I risultati del collaudo vengono utilizzati per rivedere i requisiti, o il progetto, o il codice, e produrre così la versione successiva.
 
Questo procedimento è stato sottoposto a una severa critica in quanto ha i seguenti svantaggi: