• Non ci sono risultati.

Giulio Destri

N/A
N/A
Protected

Academic year: 2021

Condividi "Giulio Destri"

Copied!
19
0
0

Testo completo

(1)

Ing. del Software: Test - 1 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Giulio Destri

Ingegneria del Software La fase di Test

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN.

Corso di Laurea in Informatica

Scopo del modulo

Definire

Proprietà e strutturazione del processo di Test

entro un progetto informatico

(2)

Ing. del Software: Test - 3 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Argomenti

• Definire il processo di Test

• Caratteristiche importanti

• Linee guida

• Criteri di completezza

Definire il processo di Test

• Agendo sul software/sistema realizzato durante la fase di implementazione

• La fase di test o testing deve eliminare il maggior numero possibile di errori

• Per arrivare all’entrata in produzione con un sistema il più possibile privo di errori

(3)

Ing. del Software: Test - 5 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Glossario per il testing

• Error o errore

• Fault

• Failure

• Verifica

• Controllo di validità

• Dati di test

• Grafo di copertura

• Classi di equivalenza

Cause e locazione degli errori

Implementazione Errore del programmatore

Implementazione Progettazione tradotta male

Progett.(scelta) impl.(uso) Strumenti di sviluppo

Analisi e progettazione Supporti d’impl. Insufficienti

Implementazione Codice mal documentato

Costituzione del team, formazione

Membri del team

Progettazione Fretta

Analisi dei requisiti Requisiti cambiati

Coordinamento del team Comunicazione mancante

Fase iniziale dell’errore Fonti di errore

(4)

Ing. del Software: Test - 7 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Contesto del test (test frame)

• Criteri per la definizione di riuscita e fallimento

• Criteri per inizio e fine di una fase di test

• Criteri per l’interruzione e ripresa dei test

• Prodotti da testare

• Metodi di comunicazione

Contesto del test (test frame) - 2

• Genere del test

• Configurazione della piattaforma dei test

• Problemi al momento dell’esecuzione e responsabilità della loro eliminazione

(5)

Ing. del Software: Test - 9 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Strategie di test

• Scopo dei test

• Prorità di qualità

• Obiettivi di test

Oggetto e casi di test

• Unità da testare (definizione della granularità)

• Proprietà da testare

• Proprietà che non vengono testate

• Programmazione temporale dei test

(6)

Ing. del Software: Test - 11 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Metodi di test: black box

• Non coinvolgono la struttura interna dell’elemento in esame

• Deve essere nota solo la sua interfaccia

• Evidenziano errori ma non la loro causa

• Possono essere compiuti esaustivamente rispetto a percorsi (es. i

basic course degli use case)

Metodi di test: white box

• Coinvolgono la struttura dell’elemento in esame

• Deve essere nota la sua struttura interna

• Esame dei possibili percorsi di esecuzione

• Sono più complessi e dispendiosi

(7)

Ing. del Software: Test - 13 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

La mappa logica del sistema

Sottosistema Componenti

Classi

UI Logica business Dati

Metodi Algoritmi

Librerie, Sistema Operativo, Hardware Database

Sistema

Metodi di test nel loro contesto

Applicazione, sottosistemi Esperienza, fortuna

Soluzione degli errori

Codice sorgente, documenti Codice sorgente,

documenti Ispezione

Metodi Strutture di dati,

intervalli di definizione Test orientati ai dati

Classi Modello di analisi

Test orientati alle classi

Applicazione, sottosistemi Conoscenza del

dominio, analisi, prog.

Test esplorativi

Metodi Struttura del codice

Gradi di copertura (white-box)

Sottosistemi Informazioni sul tipo di

var, limiti dal modello Analisi dei valori limite

(black-box)

Sottosistemi Casi d’uso, modello di

dominio, tipo di var Classi di equivalenza

(black-box)

Oggetto del test Presupposti

Metodi di test

(8)

Ing. del Software: Test - 15 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Uso dei test black-box

• Ignorano la struttura interna

• Partono dai casi d’uso dell’analisi

• Servono a verificare il corretto funzionamento del sistema:

– Se tutto bene, allora convalida

– Se vengono rilevati comportamenti errati, allora vanno individuati gli errori con altri metodi

Suddivisione in classi di equivalenza

• Non si possono esaminare tutti gli input possibili

• Occorre dividere gli input in classi di equivalenza, ossia sottoaree che dovrebbero produrre un comportamento identico nel sistema

• Occorre particolare attenzione ai valori limite, ossia ai limiti degli intervalli di

(9)

Ing. del Software: Test - 17 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

White-box e gradi di copertura

• Focus sul codice concreto

• Istruzioni mappate in grafo

• Approccio bottom-up

• Copertura Cn

– Copertura delle istruzioni – Copertura degli archi

– Copertura dei cammini (teorica) – Copertura delle condizioni

Test delle classi

• Istanziare la classe inizializzando gli attributi a valori ragionevoli

• Verificare le operazioni che non cambiano lo stato dell’oggetto

• Verificare tutte le operazioni che cambiano lo stato

• Testare le serie di operazioni secondo almeno la copertura C1

(10)

Ing. del Software: Test - 19 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Test delle classi - 2

• Test dimostrativo

• Completezza

• Test dello stato del modello

Test delle basi di dati

• Devono essere evidenziati i dati errati eventualmente presenti nel database

• Verifica di:

– Tabelle disponibili – Campi delle tabelle

– Collegamenti locali (entro un singolo record)

– Dipendenza tra le tabelle

(11)

Ing. del Software: Test - 21 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Test di funzione e struttura combinati

• Limiti dei processi visti:

– Non è possibile con un solo test di struttura (white-box) accertare se una funzionalità è mancante o errata

– I test di funzione (black-box) non possono identificare un’implementazione mal funzionante

¾ I due approcci devono essere combinati

Test di funzione e struttura combinati –2

• Test di funzione

– Da classi di equivalenza e valori limite si eseguono casi

– Determinare quali parti del flusso esecutivo non sono provate

• Test di struttura

– Per queste parti progettare test White-box – Copertura il più ampia possibile

• Test di regressione

– Dopo la correzione verificare di nuovo il sistema, o almeno la parti coinvolte

(12)

Ing. del Software: Test - 23 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Test di sistema

• Configurazione

– Eseguito sulla piattaforma di destinazione – Si rieseguono i test precedenti

• Installazione

– I componenti si installano senza problemi?

• Funzioni

– Le funzioni vengono eseguite regolarmente?

• Prestazioni

– Il sistema risponde in tempi conformi alle attese?

Test di sistema: le prestazioni

• Risorse

– Memoria e disco reali

• Tempi di risposta – Casi reali d’uso

• Carico

– Carico risultante, transazioni (tipico OLTP) – Simulatore di carico

• Throughput

(13)

Ing. del Software: Test - 25 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Test di sistema - 2

• Usabilità

– Caso d’uso realistico con utente finale

• Sicurezza

– Verificare i casi critici per la sicurezza

• Interoperabilità

– Funziona correttamente la comunicazione con altri sistemi?

• Reinizializzazione

– Il sistema riparte correttamente?

Test esplorativi

• Eseguire una prima panoramica

• Pianificare

• Navigare

• Osservare

• Sperimentare

• Decidere

• Tracciare

• Raccontare

(14)

Ing. del Software: Test - 27 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Test esplorativi - 2

• Creazione dei casi di test

• Descrizione dei casi di test

• Generazione dei dati di base

• Verifica dei dati giornalieri

• Verifica delle funzioni

Esecuzione dei test

• Concordare le condizioni di fine del test

• Preparare la piattaforma di test

• Eseguire i test e compilarne resoconto

• Identificare e documentare gli errori riscontrati nel modo più chiaro possibile

(15)

Ing. del Software: Test - 29 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Esecuzione dei test: conseguenze

• Comunicazione degli errori

• Classificazione degli errori

• Assegnazione degli errori

• Eliminazione degli errori

• Distribuzione delle correzioni

• Verifica degli errori

• Termine degli errori

Automatizzazione dei test

• Strumentazione del codice

• Strumenti di test

• Simulatori

(16)

Ing. del Software: Test - 31 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Errori con i test: ipotesi generali

• Solo i test e i tester sono responsabili della qualità del sistema

• L’unico compito del test è trovare gli errori del programmatore

• I programmatori sono in grado di trovare da soli i loro errori

Errori con i test: pianificazione

• L’attenzione è rivolta alle qualità sbagliate

• I test considerano rischi non realistici

• Il procedimento di test non è stato validato

• Troppa attenzione all’esecuzione del test e poca al suo progetto

• Test non abbastanza diversificati

(17)

Ing. del Software: Test - 33 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Errori con i test: pianificazione

• Test di regressione mancanti o eseguiti solo sugli errori iniziali

• Dati di test troppo precisi (casi tralasciati)

• Dati di test troppo imprecisi o poco significativi

Errori con i test: esecuzione

• Test eseguiti sempre in ordine fisso

• Test eseguiti solo sulle interfacce utente (nessun test di struttura)

• Si cercano solo errori poco importanti

• Si trascurano le “piccolezze”

• Non sono previsti messaggi di errore

• Non è previsto test delle routine di installazione

(18)

Ing. del Software: Test - 35 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Errori con i test: documentazione

• Non viene creata documentazione concomitante con i test

• La correzione degli errori avviene senza documentarne la riuscita

• Il report di test è insufficiente

• Manca una valutazione dei dati dei test già utilizzati per permettere l’eventuale correzione del processo stesso di test

Errori con i test: Suggerimenti

• Eseguire i test il prima possibile

• Nessun caso di test è “troppo banale”

• Tenere documentazione ordinata sui test

• Eseguire i test durante il processo di integrazione

• Individuare blocchi con errori ricorrenti (cut-and-paste di codice)

(19)

Ing. del Software: Test - 37 Giulio DestriGiulio Destri--© AreaSP© AreaSPfor Univ. Parma, 2006for Univ. Parma, 2006

Errori con i test: Suggerimenti - 2

• La verifica non è mai sufficiente:

trovare un compromesso ragionevole

• Il tasso di ritrovamento degli errori è massimo all’inizio dei test e poi diminuisce continuamente

• La legge di Murphy viene quasi sempre rispettata…

Sommario

• Definire il processo di Test

• Caratteristiche importanti

• Linee guida

• Criteri di completezza

Riferimenti

Documenti correlati

Possiamo concludere che gli obiettivi del test sono stati raggiunti con successo, si è infatti rilevata una differenza nel comportamento tra kart con telaio modificato e

Vaste possibilità di ricerca Le informazioni possono essere adattate meglio agli utenti La guida può reagire. interattivamente allo stato d’uso del prodotto (sensibile al contesto,

• L’insieme delle caratteristiche e proprietà di un prodotto software che si riferisce alla sua capacità di soddisfare i requisiti dati. • La misura in cui il software soddisfa

[r]

 ogni parametro incognito della distribuzione teorica, stimato con gli stetti dati usati per il test, abbassa di un’unit` a il numero di gradi di libert` a del quantile

Pertanto, a livello di significativit` a del 5%, questi dati non sono sufficienti a ritenere che i furti non si distribuiscano in modo uniforme nei sette giorni

2. per analizzare eventi risultanti da un atto criminale, eventi dovuti ad azioni commesse volontariamente per provocare danno, eventi correlati all’abuso di

Un sistema simbolico fisico ha i mezzi necessari e sufficienti per passare il test di Turing (totale).. Una definizione di IA Una definizione