vuoi
o PayPal
tutte le volte che vuoi
Il testing o il collaudo
Il software deve essere collaudato per individuare gli errori che sono stati commessi inavvertitamente durante la progettazione e la realizzazione. Anche per il collaudo del software occorre stabilire una strategia sistematica. Il collaudo procede dal "piccolo al grande". Con questo si intende che le prime operazioni di collaudo si concentrano su un unico componente o su piccoli gruppi di componenti correlati in modo da individuare gli errori nei dati e nella logica elaborativi che sono collocati all'interno dei componenti. Dopo che i singoli componenti saranno stati collaudati, occorre integrarli in modo da realizzare un sistema completo. A questo punto occorre eseguire una serie di collaudi di alto livello per verificare che il programma risponda alle richieste del cliente. Dopo aver individuato gli errori occorre stabilirne una diagnosi e correggerli utilizzando un processo chiamato debugging.
Per documentare l'appoggio al collaudo da parte...
del tutto la correttezza di un programma, ma può solo dimostrare la sua incorrettezza. Il collaudo del software è un'attività fondamentale per garantire la qualità del prodotto finale. Durante il processo di collaudo, vengono eseguiti una serie di test per verificare che il software si comporti correttamente e rispetti le specifiche definite. I documenti di specifica del collaudo sono strumenti utilizzati dal team software per pianificare e organizzare il processo di collaudo. Questi documenti includono un piano di collaudo che descrive la strategia globale e una procedura che definisce i passi specifici del collaudo che verranno condotti. Nel contesto del collaudo del software, è importante comprendere la definizione di alcuni concetti chiave. Un errore umano si verifica quando c'è un'incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell'uso degli strumenti. Un difetto, o bug, è la manifestazione nel software di un errore umano ed è la causa del fallimento del sistema nel eseguire la funzione richiesta. Un malfunzionamento, o failure, è l'incapacità del software di comportarsi secondo le aspettative o le specifiche. Un malfunzionamento ha una natura dinamica, accade in un certo istante di tempo e può essere osservato solo mediante esecuzione. Il testing, o collaudo, è il processo di esecuzione del software allo scopo di scoprirne i malfunzionamenti. Osservando i malfunzionamenti, possiamo dedurre la presenza di difetti nel software. Tuttavia, come sostenuto dalla tesi di Dijkstra, il testing non può dimostrare completamente la correttezza di un programma, ma può solo dimostrare la sua incorrettezza. In conclusione, i documenti di specifica del collaudo sono strumenti importanti per pianificare e organizzare il processo di collaudo del software. Il collaudo è un'attività fondamentale per garantire la qualità del prodotto finale e comprendere i concetti chiave come errore, difetto e malfunzionamento è essenziale per condurre test efficaci.l’assenza di difetti, ma può solo dimostrare la presenza di difetti. Il debugging è il processo di analisi del software per scoprirne i difetti. L’ispezione è un processo di analisi del software per scoprirne i difetti. Il collaudo del software fa parte di un tema più vasto, spesso chiamato verifica e convalida (o validazione). Per verifica si intende un insieme di attività che assicurano che il software realizzi correttamente una determinata funzione. Per convalida si intende un diverso insieme di attività che assicurano che il software costruito sia riconducibile ai requisiti del cliente. Verifica: Stiamo costruendo il prodotto nel modo giusto? Convalida: Stiamo costruendo il prodotto giusto? Il collaudo stabilisce la seconda chance per stabilire la qualità e per scoprire gli errori. Ma non si devedovrebbe eseguire test approfonditi per garantire la qualità del software. Il collaudo non può essere considerato come un'ultima risorsa per correggere eventuali difetti, ma come una parte integrante del processo di sviluppo del software. Alcuni punti da considerare sono: 1) Utilizzare metodi e tecniche valide durante lo sviluppo del software per garantire la qualità fin dall'inizio. 2) Effettuare revisioni tecniche formali per identificare eventuali errori o problemi nel codice. 3) Misurare e monitorare costantemente la qualità del software utilizzando metriche adeguate. 4) Coinvolgere persone esterne al progetto per eseguire test rigorosi e imparziali sul software. 5) Il collaudo non dovrebbe essere l'unico momento in cui si verifica la qualità del software, ma dovrebbe essere un processo continuo lungo tutto il ciclo di vita del software. In conclusione, il collaudo è importante per confermare la qualità del software, ma non può essere l'unico strumento per garantirla. La qualità deve essere incorporata nel processo di sviluppo del software fin dall'inizio.Deve assicurarne il funzionamento secondo la funzione per la quale sono state progettate.
Problemi del testing:
- Criterio di selezione
- Valutazione dei risultati del test
- Criterio di terminazione del testing
Valutazione dei risultati del test. Condizione necessaria per effettuare un test: conoscere il comportamento atteso per poterlo confrontare con quello osservato. L'oracolo conosce il comportamento atteso per ogni caso di prova (può essere un oracolo umano, che si basa sulle specifiche o sul giudizio) o un oracolo automatico.
Terminazione del testing:
- Quando il programma si può ritenere analizzato a sufficienza, in base a:
- un criterio temporale: periodo di tempo predefinito
- un criterio di costo: sforzo allocato predefinito
- un criterio di copertura: percentuale predefinita degli elementi di un modello di programma, legato ad
www.quellidiinformatica.org - La community studenti di Ingegneria Informatica di Napoli
INGEGNERIA DEL SOFTWARE FranK 3
Correttezza del programma P. http://www.quellidiinformatica.org – La community studenti di Ingegneria Informatica di Napoli
INGEGNERIA DEL SOFTWARE FranK 4
Selezione dei casi di test. Teorema di Howden – non esiste un algoritmo che, dato un programma arbitrario P, generi un test ideale finito, e cioè un test definito da un criterio affidabile e valido. Aldilà di casi banali, non è possibile costruire un criterio di selezione generale di test valido e affidabile che non sia valido e affidabile che non sia il test esaustivo.
Obiettivi pratici:
- massimizzare il numero di malfunzionamenti scoperti (richiede molti casi di test);
- minimizzare il numero di casi di test (e quindi il costo del testing);
È preferibile usare più di un criterio di selezione dei test.
Osservazione. Ogni prodotto (ma anche molti altri oggetti) si può collaudare in due modi: 1) se si conoscono le funzioni specifiche che il prodotto deve svolgere, si possono effettuare
prove tese a dimostrare che tali funzioni sono effettivamente svolte, cercando nel contempo eventuali errori in ciascuna funzione;
se si conosce la struttura interna del prodotto, si possono effettuare prove tese a garantire che le operazioni interne rispettino le specifiche, avendo cura di mettere alla prova tutti i componenti. Il primo metodo è detto collaudo black-box e il secondo, collaudo white-box (al posto dei termini collaudo black-box e collaudo white-box vengono rispettivamente utilizzati i termini collaudo funzionale e collaudo strutturale).
Strategie di collaudo per il software convenzionale. Una strategia di collaudo che viene scelta dalla maggior parte dei team di sviluppo software adotta una visione incrementale del collaudo, iniziando con il collaudo delle singole unità del programma, procedendo con i test progettati per facilitare l'integrazione di queste unità e terminando con i test che mettono alla prova il sistema finale. Il collaudo delle
Unità si concentra sull'impegno di verifica della più piccola unità di programmazione software: il componente o il modulo. Il collaudo delle unità sfrutta di norma le tecniche white-box e il passo può essere condotto per più moduli contemporaneamente. L'interfaccia del modulo viene provata per assicurare che le informazioni fluiscano correttamente all'interno e all'esterno dell'unità di programma in esame. Vengono esaminate le strutture di dati locali, per assicurare che i dati memorizzati temporaneamente mantengano la propria integrità. Vengono provati tutti i cammini di esecuzione per la gestione degli errori. I casi di prova devono mirare a scoprire errori causati da calcoli e confronti errati o da anomalie del flusso di controllo. Quindi, riassumendo il testing di unità è applicato isolatamente ad una unità o ad un modulo di un sistema software; obiettivo fondamentale è
quellodi rilevare errori (logica e dati) nel modulo; prassi diffusa è che esso venga realizzato dal programmatore che ha http://www.quellidiinformatica.org – La community studenti di Ingegneria Informatica di Napoli