13: Il test del software. 13Test.1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "13: Il test del software. 13Test.1"

Transcript

1 13: Il test del software 13Test.1

2 Concetti fondamentali Costo estremamente elevato Filosofia distruttiva Eseguire un programma con l intento di trovare degli errori; Un caso di test e ben studiato se ha un alta probabilita di scoprire un errore Un test ha successo se scopre un errore rimasto sino a quel momento nascosto Un test non prova l assenza di difetti ma mostra (eventualmente) qualcuno di quelli presenti Principi generali I test vanno condotti tenendo in considerazione i requisiti utente La fase di test va progettata e pianificata in anticipo Le attivita di test partono dall analisi delle singole funzioni per coinvolgere l intera struttura del progetto Un attivita di test esaustiva e impossibile in molti casi (tipicamente esponenziale) Le attivita di test dovrebbero essere condotte da terzi 13Test.2

3 Progettare il SW pensando alla fase di test SW: Praticabile (pochi bug, non bloccanti, decomposizione) Osservabile (stati interni e variabili, funzioni semplici tra I e O) Controllabile (codice raggiungibile, accesso alle variabili) Decomponibile (moduli indipendenti tra loro) Semplice (funzioni, codice, struttura) Stabile (pochi cambiamenti, controllati ed indipendenti dai test) Comprensibile(progetto, relazioni tra moduli, documentazione) 13Test.3

4 Difetti, errori e malfunzionamenti Il difetto e' una caratteristca fisica di una porzione di codice o di una sezione di un testo di documentazione L'errore e' l'azione umana che ha generato il difetto Il malfunzionamento e' la conseguenza di un difetto che si manifesta durante l'utilizzo del prodotto software 13Test.4

5 CLASSIFICAZIONE DEI MALFUNZIONAMENTI I malfunzionamenti si possono suddividere in quattro categorie: Funzionali Strutturali Relativi alla interfaccia Mancato rispetto dei requisiti non funzionali 13Test.5

6 Tecniche di progettazione dei casi di test Evidenziare un numero prefissato di difetti minimizzando il costo Utilizzare al meglio un budget prefissato Cercare il minimo della funzione globale del costo costo CNC Costo della non conformità CNC+COC Punto di costo minimo COC Costo della conformità Basso impegno in attività di prevenzione e verifica Alto 13Test.6

7 ARTICOLAZIONE DEL PROCESSO DI TEST Progettazione dei casi di test Progettazione delle condizioni di test: individuare, tra tutte le possibili situazioni che si possono presentare durante l'utilizzo del prodotto, le sole che si intende riprodurre nel test; Individuazione dei casi di test: individuare, per ogni condizione di test e per ciascun dato di input, l'insieme dei valori di tale dato (classe di equivalenza) che rendono vera la condizione; Scelta dei valori di input: scegliere per ciascun caso di test (o classe di casi di test equivalenti) uno specifico valore per ciascun dato di input. Esecuzione del software per ciascun caso di test e registrazione del comportamento del prodotto Confronto tra il comportamento atteso e quello reale 13Test.7

8 TECNICHE STRUTTURALI (WHITE BOX) Tecniche di copertura dei cammini Tecniche di integrazione Completano il quadro le tecniche di controllo dei requisiti non funzionali 13Test.8

9 TECNICHE FUNZIONALI (BLACK BOX) Vengono utilizzate per: Determinare il manifestarsi dei malfunzionamenti funzionali Evidenziare il mancato rispetto di qualche requisito non funzionale 13Test.9

10 UN BREVE CENNO VA COMUNQUE DEDICATO AD ALCUNE TECNICHE DI ANALISI STATICA (CHE RIENTRANO PIÙ PROPRIAMENTE NELLE ATTIVITÀ DI CONTROLLO QUALITÀ) HANNO LO SCOPO DI INDIVIDUARE DIFETTI MEDIANTE UN ESAME DEL PRODOTTO, SENZA ESECUZIONE DEL SOFTWARE LE PIÙ NOTE TRA QUESTE TECNICHE SONO: DESK-CHECKING WALKTROUGH TEMPORALMENTE LA LORO APPLICAZIONE PRECEDE L ESECUZIONE DEI VERI E PROPRI CASI DI TEST 13Test.10

11 DESK-CHECKING IL PRODOTTO OGGETTO DEL TEST VIENE ESAMINATO DA UNA SOLA PERSONA L ESAME VIENE EFFETTUATO: RICERCANDO LA PRESENZA DEI DIFETTI CONTENUTI IN UN' APPOSITA LISTA SIMULANDO LE ESECUZIONI A CUI DAREBBERO LUOGO SPECIFICI VALORI DI INPUT 13Test.11

12 WALKTROUGH IL PRODOTTO OGGETTO DI CONTROLLO VIENE ESAMINATO DA UN GRUPPO DI PERSONE LE SINGOLE PERSONE HANNO VISIONATO IL PRODOTTO PRIMA DI INCONTRARSI IN GRUPPO VENGONO INDIVIDUATI ALCUNI INSIEMI SIGNIFICATIVI DI VALORI DI INPUT AL PRODOTTO A FRONTE DI CIASCUN INSIEME VIENE SIMULATA L' ESECUZIONE DEL PRODOTTO PUÒ ESSERE VISTO COME UN PARTICOLARE TIPO DI SEDUTA DI REVISIONE 13Test.12

13 TESTING DI TIPO WHITE BOX Copertura delle istruzioni Copertura delle decisioni Copertura delle condizioni Copertura delle decisioni/condizioni Copertura di una base di cammini indipendenti 13Test.13

14 Copertura delle istruzioni Occorre individuare un insieme di casi di test sufficiente a far eseguire almeno una volta tutte le istruzioni E un criterio necessario ma non sufficiente per un test "ragionevole" Es.... float x,y; A scanf( %f %f,&x, &y); B if (x! = 0 ) C x=x+10; D y=y/x; E printf( %f %f, x, y)... x == 0 A B C x!= 0 Il caso di test {x!=0 ; y=qualsiasi} copre le istruzioni D E 13Test.14

15 COPERTURA DELLE DECISIONI Occorre individuare un insieme di casi di test sufficiente a garantire che ciascuna decisione assuma i valori vero e falso almeno una volta. Include propriamente la copertura delle istruzioni (ma non e vero il viceversa) Es.... float x,y; A scanf( %f %f,&x, &y); B if (x! = 0 ) C x=x+10; D y=y/x; E printf( %f %f, x, y)... Il caso di test {x=20 ; y=30} {x=0 ; y=30} copre le decisioni (e quindi le istruzioni) e scopre l errore di divisione per 0 in D x == 0 A B D E C x!= 0 13Test.15

16 COPERTURA DELLE DECISIONI (2) Se le condizioni sono composte (AND, OR) la copertura delle decisioni puo rivelarsi insufficiente Es.... float x,y; A scanf( %f %f,&x, &y); B if (x = = 0 y>0) C y=y/x; D else y=y+2/x; E printf( %f %f, x, y)... False D E A B True C Il caso di test {x= 5 ; y= 5} {x= 5 ; y= -5} copre le decisioni ma non scopre il rischio di divisione per 0 in C. 13Test.16

17 COPERTURA DELLE CONDIZIONI Far assumere ad ogni singola variabile che appare nelle condizioni i valori T e F Es.... float x,y; A scanf( %f %f,&x, &y); B if (x == 0 y>0) C y=y/x; D else x=y+2/x; E printf( %f %f, x, y)... False D E A B True C Il caso di test {x= 0 ; y= 5} {x= 5 ; y= -5} copre le condizioni e scopre la divisione per 0 in C ma non percorre D (non copre le decisioni) 13Test.17

18 Copertura decisioni e condizioni Far assumere ad ogni singola variabile che appare nelle condizioni i valori T e F Far assumere ad ogni decisione i valori T e F Es.... float x,y; A scanf( %f %f,&x, &y); B if (x= = 0 y>0) C y=y/x; D else x=y+2/x; E printf( %f %f, x, y)... False D E A B True C Il caso di test {x= 0 ; y= -5} {x= 5 ; y= 5} {x= 5 ; y= -5} copre le decisioni e condizioni 13Test.18

19 WhiteBox: Basis Path Testing Test che implica la copertura delle condizioni e delle decisioni introdotto da McCabe nel 76. Utilizza la complessita ciclomatica per individuare un upperbound della complessita. Si individuano i cammini di base e li si testano tutti numero ciclomatico V = E - N + 2 (E=numero di archi, N=numero di nodi) oppure V = R (R=numero di regioni) oppure V = P+1 (P=numero nodi predicato) until sequenza istruzioni if semplice while case 13Test.19

20 If composto if (a b) x; else y; if (a && b) x; else y; a==f a a==t a==t a a==f b==f b b==t x b==t b b==f y y x x y Test.20

21 nodo predicato nodo Cammini e regioni D E A B C arco while ( ) { if ( ) { } else { } } F regione V= = 3 Cammini A-F A-B-D-E-A-F A-B-C-E-A-F 13Test.21

22 Esempio Es.... float x,y; A scanf( %f %f,&x, &y); B if (x= = 0 y>0) C y=y/x; D else x=y+2/x; E printf( %f %f, x, y)... x!= 0 A B x == 0 y>0 B y<=0 C D E C Il caso di test {x=0 ; y=-5} {x=5 ; y=5} {x=5 ; y=-5} copre tutti i cammini base (e quindi le decisioni e condizioni) V=8-7+2=3 A-B-C-E A-B-B -D-E A-B-B -C-E 13Test.22

23 Alcune considerazioni Se prevediamo iterazioni nei cammini il problema diventa intrattabile Occorre quindi restringere il tiro limitare il numero delle iterazioni dei cicli ad n (n-copertura dei cicli) eseguire solo alcuni cicli limitare il numero dei cammini da esplorare tramite pesi sugli archi e funzioni da massimizzare probabilita di esecuzione occupazione di risorse (memoria/tempo) limitare il numero dei cammini individuando i cammini che definiscono ed usano le variabili del programma (Data Flow Testing) definizione del valore di una variabile uso di tale valore in un test 13Test.23

24 Data Flow Testing B... A int x,y,a,b; B scanf( %d %d,&x, &y); C a=x; D b=y E while (a!=b) F if(a>b) G a=a-b; H else b=b-a; I printf( %d,a);... a!=b F a>b G C D E a<=b H a==b I Per x ed y non occorre eseguire il ciclo (0-copertura) per la definizione di a e b occorre eseguire 1 volta il ciclo (1-copertura) per la definizione ed uso di a e b occorre eseguire 2 volte il ciclo (2-copertura) 13Test.24

25 TECNICHE FUNZIONALI (BLACK BOX) La progettazzione dei casi di test avviene prescindendo dalla conoscenza della struttura interna del prodotto ed operando solo sulle specifiche. Sono impiegate nella fase finale delle attivita di test a complemento di quelle white box FANNO PARTE DI TALI TECNICHE: TECNICA DI COPERTURA DELLE FUNZIONALITA TECNICA DI COPERTURA DELLE CLASSI DI EQUIVALENZA TECNICA DI ANALISI DEI VALORI ESTREMI 13Test.25

26 TECNICA DI COPERTURA DELLE FUNZIONALITA Lo scopo della fase di test e verificare che un prodotto sw: faccia cio' che si supponeva dovesse fare; non faccia cio' che si supponeva non dovesse fare. Per sapere quello che un prodotto SW dovrebbe o non dovrebbe fare occorre riferirsi alle sue specifiche: specifiche formali specifiche informali 13Test.26

27 ...TECNICA DI COPERTURA DELLE FUNZIONALITA Occorre analizzare e dividere le specifiche in modo da definire con esattezza: Quali sono le funzioni elementari che il prodotto deve svolgere e per ciascuna di esse se la funzionalita' e' testabile; se non lo e' quale e' la causa. Le funzionalita' individuate devono avere le seguenti due caratteristiche: Indipendenza: non esiste nessun altra funzionalita che sia sempre esercitata o non esercitata contemporaneamente alla funzionalita in questione Elementarita : non e divisibile in sottofunzionalita esercitabili indipendentemente 13Test.27

28 ...TECNICA DI COPERTURA DELLE FUNZIONALITA Quindi: - Identificare ogni funzionalita nelle specifiche - Identificare le combinazioni di funzionalita presenti nelle specifiche - Rendere ciascuna funzionalita (o combinazione) accessibile ad un test indipendente - Assegnare un identificativo univoco a ciascuna funzionalita - Collegare ciascuna funzionalita ad un caso di test finale - Identificare i requisiti non funzionali da verificare con il test - Procedere rispetto a tali requisiti in modo analogo a quanto definito per le funzionalita. 13Test.28

29 Tecniche basate sull utilizzo di grafi Per la copertura delle specifiche si utilizzano, tipicamente, formalismi basati su grafi Uno tra i piu usati e detto grafo causa-effetto: le specifiche di ingresso vengono ridotte a condizioni booleane, rappresentanti fatti (dati) di ingresso e uscita (e.g., cliente e di riguardo, puo pagare con assegno) fatti elementari corrispondenti a dati di ingresso possono corrispondere a fatti di uscita (cliente di riguardo=si implica paga con assegno=si) nel disegnare un grafo si utilizzano i connettivi logici AND, OR, NOT e possibile ridurre tali grafi in forma matriciale, utile per generare le opportune sequenze di ingresso ad esempio se i fatti A, B, C verificandosi congiuntamente causano l effetto D il grafo corrispondente sara del tipo: A B C AND D A=conto <X B=in possesso di un documento C=l assegno non risulta rubato D=puo pagare con assegno A B C D Test.29

30 ...Tecniche basate sull utilizzo di grafi Altri formalismi sono utilizzati per: modellare transazioni modellare automi a stati finiti flusso di dati (Data Flow) temporizzazioni La tecnica utilizzata e sempre del tipo: verificare che le relazioni tra nodi siano soddisfatte (copertura dei cammini) 13Test.30

31 TECNICA DI COPERTURA DELLE CLASSI DI EQUIVALENZA ESSENDO IMPOSSIBILE IL TESTING ESAUSTIVO DOBBIAMO INDIVIDUARE IL SOTTOINSIEME DEI DATI DI INGRESSO CON LA MAGGIORE PROBABILITÀ DI SCOPRIRE ERRORI. UN BUON CASO DI TEST, OLTRE AD AVERE UNA RAGIONEVOLE PROBABILITÀ DI TROVARE UN ERRORE, DOVREBBE: RIDURRE IL NUMERO DI ALTRI CASI DI TEST DA SVILUPPARE RAPPRESENTARE UN INTERO INSIEME DI CASI DI TEST, AL DI LÀ DEGLI EFFETTIVI VALORI DI INGRESSO 13Test.31

32 TECNICA DI COPERTURA DELLE CLASSI DI EQUIVALENZA LE DUE PROPRIETÀ SI RIFERISCONO AD OBBIETTIVI DIVERSI: MINIMIZZARE IL NUMERO TOTALE DI CASI DI TEST CERCARE CASI DI TEST SIGNIFICATIVI ED AFFIDABILI A QUESTO SCOPO, IL DOMINIO DI INGRESSO VA RIPARTITO IN UN NUMERO FINITO DI CLASSI DI EQUIVALENZA: SOTTOINSIEME DEI DATI DI INPUT TALE CHE IL TEST DI UN SUO ELEMENTO SIA EQUIVALENTE AL TEST DI OGNI ALTRO ELEMENTO DELLA STESSA CLASSE (STESSO COMPORTAMENTO DEL PRODOTTO SOFTWARE). 13Test.32

33 TECNICA DI COPERTURA DELLE CLASSI DI EQUIVALENZA 1. IDENTIFICARE UN INSIEME DI CONDIZIONI INTERESSANTI DA SOTTOPORRE A TEST (CONSEGUIMENTO DEL SECONDO DEI DUE PRECEDENTI OBBIETTIVI). IN QUESTO MODO SI INDIVIDUANO LE CLASSI DI EQUIVALENZA. 2. DEFINIRE IL MINIMO INSIEME DI CASI DI TEST IN GRADO DI COPRIRE TALI CONDIZIONI (CONSEGUIMENTO DEL PRIMO OBBIETTIVO) ESEMPIO UN PROGRAMMA RICEVE COME INPUT ESTERNO TRE VALORI, CHE RAPPRESENTANO LA LUNGHEZZA DEI LATI DI UN TRIANGOLO. IL PROGRAMMA DEVE INVIARE UN MESSAGGIO CHE INDIVIDUI IL TIPO DI TRIANGOLO (EQUILATERO, ISOSCELE O SCALENO) 13Test.33

34 TECNICA DI COPERTURA DELLE CLASSI DI EQUIVALENZA ESEMPIO A.CLASSI DI EQUIVALENZA ESTRATTE DALLE SPECIFICHE DEL PROGRAMMA TRIANGOLO : 1. TRE NUMERI INTERI MAGGIORI DI ZERO 2. TRE NUMERI INTERI TALI CHE LA SOMMA DI DUE DI ESSI SIA SEMPRE MAGGIORE DEL TERZO 3. TRE NUMERI UGUALI IL CASO DI TEST A = 2; B = 2; C = 2 COPRE LE TRE CLASSI 13Test.34

35 IDENTIFICAZIONE DELLE CLASSI LE CLASSI DI EQUIVALENZA SONO PARTIZIONI (NON MUTUAMENTE ESCLUSIVE) DEL DOMINIO DI INGRESSO A FRONTE DI CONDIZIONI SUI DATI DI INPUT. LE CLASSI POSSONE ESSERE: - VALIDE (QUANDO RAPPRESENTANO VALORI DI INPUT VALIDI) - NON VALIDE 13Test.35

36 IDENTIFICAZIONE DELLE CLASSI LE CLASSI VENGONO IDENTIFICATE CONSIDERANDO ATTENTAMENTE OGNI CONDIZIONE DI INGRESSO. DA UN PERIODO, O DA UNA FRASE, NELLE SPECIFICHE (QUANDO LE CONDIZIONI DI INGRESSO NON SONO ESSE STESSE FORMALIZZATE) DERIVANO UNA PIÙ CLASSI VALIDE, UNA O PIÙ CLASSI NON VALIDE. UNA VOLTA IDENTIFICATE LE CLASSI VANNO ELENCATE E A CIASCUNA VA ATTRIBUITO UN CODICE IDENTIFICATIVO. I CRITERI UTILI PER LA RICERCA POSSONO ESSERE LA CONSIDERAZIONE DI: INTERVALLI DI VALORI NUMERO DI VALORI INSIEMI DI VALORI CONDIZIONI VINCOLANTI 13Test.36

37 INTERVALLI DI VALORI SE UNA CONDIZIONE DI INGRESSO SPECIFICA UN INTERVALLO DI VALORI VANNO IDENTIFICATE: UNA CLASSE DI EQUIVALENZA VALIDA (PER I VALORI COMPRESI NELL INTERVALLO) DUE CLASSI DI EQUIVALENZA NON VALIDE (UNA PER I VALORI INFERIORI ALL ESTREMO DI VARIAZIONE MINIMO, L ALTRA PER I VALORI SUPERIORI ALL ESTREMO DI VARIAZIONE MASSIMO) CONDIZIONI ESTERNE VALIDE CLASSI DI EQUIVALENZA NON VALIDE VALORE DEL CODICE CLIENTE FRA 1 E Ø CODICE CLIENTE Ø 999 CODICE CLIENTE < CODICE CLIENTE > Test.37

38 NUMERO DI VALORI SE UNA CONDIZIONE DI INGRESSO SPECIFICA IL NUMERO DI VALORI VANNO IDENTIFICATE: UNA CLASSE DI EQUIVALENZA VALIDA (PER UN NUMERO COMPRESO FRA IL MINIMO ED IL MASSIMO SPECIFICATI) DUE CLASSI DI EQUIVALENZA NON VALIDE (UNA PER I NUMERI INFERIORI AL MINIMO, L ALTRA PER I NUMERI SUPERIORI AL MASSIMO) CONDIZIONI ESTERNE VALIDE CLASSI DI EQUIVALENZA NON VALIDE NUMERO DI PRODOTTI IN UN SINGOLO ORDINE NON PUO ESSERE SUPERIORE A 6 1 Ø N.RO PRODOTTI Ø 6 N.RO PRODOTTI < N.RO PRODOTTI > Test.38

39 INSIEMI DI VALORI SE UNA CONDIZIONE DI INGRESSO SPECIFICA UN INSIEME DI VALORI VANNO IDENTIFICATE: TANTE CLASSI DI EQUIVALENZA VALIDE QUANTI SONO GLI ELEMENTI DELL INSIEME (SE C È MOTIVO DI RITENERE CHE CIASCUNO DEGLI ELEMENTI È TRATTATO DIVERSAMENTE, ALTRIMENTI CONVIENE RAGGRUPPARE GLI ELEMENTI) UNA CLASSE DI EQUIVALENZA NON VALIDA (PER UN ELEMENTO NON APPARTENENTE ALL INSIEME) CONDIZIONI ESTERNE VALIDE CLASSI DI EQUIVALENZA NON VALIDE TIPO DI CLIENTE: TIPO CL. = PRIVILEGIATO TIPO CL. = DIFFICILE PRIVILEGIATO, NORMALE O 1 POTENZIALE 4 TIPO CL. = NORMALE 2 TIPO CL. = POTENZIALE 3 13Test.39

40 CONDIZIONI VINCOLANTI SE UNA CONDIZIONE DI INGRESSO SPECIFICA UNA SITUAZIONE DEL TIPO DEVE ESSERE, VANNO IDENTIFICATE: UNA CLASSE DI EQUIVALENZA VALIDA (PER GLI ELEMENTI CHE VERIFICANO LA CONDIZIONE) UNA CLASSE DI EQUIVALENZA NON VALIDA (PER GLI ELEMENTI CHE NON VERIFICANO LA CONDIZIONE). CONDIZIONI ESTERNE VALIDE CLASSI DI EQUIVALENZA NON VALIDE IL TIPO DI PRODOTTO DEVE ESSERE FABBRICATO TIPO PRODOTTO = FABBRICATO TIPO PRODOTTO = 1 ACQUISTATO 2 13Test.40

41 PROGETTAZIONE DEI CASI DI TEST OBBIETTIVI: MINIMIZZARE IL NUMERO COMPLESSIVO DI CASI DI TEST OTTENERE CASI DI TEST SIGNIFICATIVI (AFFIDABILI) I DUE OBBIETTIVI POSSONO ESSERE CONTRASTANTI 13Test.41

42 PROGETTAZIONE DEI CASI DI TEST CLASSI VALIDE PROGETTARE TANTI CASI DI TEST DA COPRIRE TUTTE LE CLASSI DI EQUIVALENZA VALIDE, CON IL VINCOLO CHE CIASCUN CASO DI TEST INCLUDA IL MAGGIOR NUMERO POSSIBILE DI CLASSI. TALVOLTA QUESTO CRITERIO PUÒ CONTRASTARE LA FACILITÀ DI LOCALIZZAZIONE DEGLI ERRORI 13Test.42

43 CLASSI VALIDE CONDIZIONI ESTERNE 1. VALORE DEL CODICE CLIENTE FRA 1 E NUMERO DI PRODOTTI NON SUPERIORE A 6 3. IL TIPO PRODOTTO DEVE ESSERE FABBRICATO VALIDE ESEMPIO: 1 Ø CODICE CLIENTE Ø Ø N. RO PROD. Ø 6 (4) TIPO PRODOTTO = FABBRICATO CLASSI DI EQUIVALENZA (7) (1) NON VALIDE COD. CL. < 1 (2) COD. CL. > 999 (3) N.RO PROD. < 1 (5) N.RO PROD. > 6 (6) TIPO PROD. = ACQUISTATO (8) IL CASO DI TEST: COD. CLIENTE = 5 N.RO DI PROD. = 4 TIPO PROD. = FABBRICATO COPRE LE CLASSI (1), (4), (7). 13Test.43

44 PROGETTAZIONE DEI CASI DI TEST CLASSI NON VALIDE PROGETTARE TANTI CASI DI TEST DA COPRIRE TUTTE LE CLASSI DI EQUIVALENZA NON VALIDE, CON IL VINCOLO CHE CIASCUN CASO DI TEST COPRA UNA ED UNA SOLA DELLE CLASSI NON VALIDE. LE CLASSI NON VALIDE VANNO COPERTE INDIVIDUALMENTE PER EVITARE MASCHERAMENTI FRA ERRORI 13Test.44

45 CLASSI NON VALIDE CONDIZIONI ESTERNE 1. VALORE DEL CODICE CLIENTE FRA 1 E 999 VALIDE 1 Ø CODICE CLIENTE Ø 999 CLASSI DI EQUIVALENZA NON VALIDE COD. CL. < 1 (2) (1) COD. CL. > 999 (3) 2. NUMERO DI PRODOTTI NON SUPERIORE A 6 3. IL TIPO PRODOTTO DEVE ESSERE FABBRICATO 1 Ø N. RO PROD. Ø 6 (4) TIPO PRODOTTO = FABBRICATO (7) N.RO PROD. < 1 (5) N.RO PROD. > 6 (6) TIPO PROD. = ACQUISTATO (8) I CASI DI TEST E LE CLASSI COPERTE SONO: (2) (3) (5) (6) (8) COD. CLIENTE = N.RO DI PROD. = TIPO PROD. = (1) (1) (1) (1) (2) DOVE (1) = FABBRICATO, (2) = ACQUISTATO 13Test.45

46 TECNICA DI ANALISI DEI VALORI ESTREMI L ESPERIENZA MOSTRA CHE I CASI DI TEST CHE ESPLORANO CONDIZIONI ESTREME SONO MOLTO PRODUTTIVI LE CONDIZIONI ESTREME (O LIMITE) SONO QUELLE SITUAZIONI DIRETTAMENTE SUGLI ESTREMI IMMEDIATAMENTE AL DI SOPRA IMMEDIATAMENTE AL DI SOTTO DEGLI ESTREMI DI CLASSI DI EQUIVALENZA D INGRESSO E DI USCITA 13Test.46

47 TECNICA DI ANALISI DEI VALORI ESTREMI L ANALISI DEI VALORI ESTREMI DIFFERISCE DALLA PARTIZIONE IN CLASSI DI EQUIVALENZA PER DUE ASPETTI 1. VENGONO SCELTI COME RAPPRESENTATIVI DELLA CLASSE DI EQUIVALENZA UNO O PIÙ VALORI IN UN INTORNO DI CIASCUN ESTREMO 2. I CASI DI TEST SONO DERIVATI CONSIDERANDO ANCHE LO SPAZIO DEI RISULTATI (CLASSI DI EQUIVALENZA DI USCITA) LA TECNICA RICHIEDE UNA BUONA CONOSCENZA DEL TEMA APPLICATIVO ED UNA BUONA DOSE DI CREATIVITÀ 13Test.47

48 TECNICA DI ANALISI DEI VALORI ESTREMI ALCUNE LINEE GUIDA 1. INTERVALLO DI VALORI SPECIFICATO DA UNA CONDIZIONE D INGRESSO: SCRIVERE CASI DI TEST VALIDI, PER I VALORI SUGLI ESTREMI DELL INTERVALLO NON VALIDI, PER VALORI IMMEDIATAMENTE SOTTO IL MINIMO O SOPRA IL MASSIMO 2. NUMERO DI VALORI SPECIFICATO DA UNA CONDIZIONE D INGRESSO: SCRIVERE CASI DI TEST: VALIDI, PER IL NUMERO MINIMO E PER IL MASSIMO NON VALIDI, PER I NUMERI IMMEDIATAMENTE SOTTO IL MINIMO O SOPRA IL MASSIMO 13Test.48

49 TECNICA DI ANALISI DEI VALORI ESTREMI 3. RIPETERE IL PROCESSO DI CUI AL PUNTO 1 PER CIASCUNA CONDIZIONE ANALOGA IN USCITA 4. RIPETERE IL PROCESSO DI CUI AL PUNTO 2. PER CIASCUNA CONDIZIONE ANALOGA IN USCITA 5. SE IN INGRESSO O IN USCITA AL PRODOTTO SOFTWARE C È UN INSIEME ORDINATO DI ELEMENTI OCCORRE PREVEDERE CASI DI TEST PER IL PRIMO E L ULTIMO ELEMENTO DELL INSIEME 6. USARE LA PROPRIA ABILITÀ PER RICERCARE ALTRE CONDIZIONI ESTREME 13Test.49

50 TECNICA DI ANALISI DEI VALORI ESTREMI LO SPAZIO DEI RISULTATI OCCORRE EFFETTUARE UN ANALISI ACCURATA DELLO SPAZIO DEI RISULTATI, CONSIDERANDO CHE: NON SEMPRE GLI ESTREMI DEL DOMINIO DI INGRESSO CORRISPONDONO AGLI ESTREMI DEL DOMINIO DI USCITA IN QUANTO NON SONO DETERMINATI DALLO STESSO INSIEME DI CIRCOSTANZE NON È SEMPRE POSSIBILE GENERARE UN RISULTATO AL DI FUORI DEGLI ESTREMI DEL DOMINIO VALIDO DI USCITA 13Test.50

51 TECNICA DI ANALISI DEI VALORI ESTREMI UN ESEMPIO CONDIZIONI ESTERNE VALIDE CLASSI DI EQUIVALENZA NON VALIDE LA SOMMA DI DUE LATI MAGGIORE DEL TERZO A + B > C A + B Ø C DUE POSSIBILI CASI DI TEST A = 3 B = 4 C = 5 A = 1 B = 2 C = 4 13Test.51

52 TECNICA DI ANALISI DEI VALORI ESTREMI SE NEL PRODOTTO SOFTWARE FOSSE PRESENTE L ISTRUZIONE A + B C ALLORA I CASI DI TEST PRECEDENTI NON RILEVEREBBERO L ERRORE, I DATI DI INGRESSO ERRATI A = 1 B = 2 C = 3 SAREBBERO CONSIDERATI UN TRIANGOLO SCALENO VALIDO. L ANALISI DEI VALORI ESTREMI ESPLORA LE SITUAZIONI SUGLI ESTREMI ED INTORNO AGLI ESTREMI STESSI DELLE CLASSI DI EQUIVALENZA 13Test.52

53 TECNICA DI ANALISI DEI VALORI ESTREMI CONCLUSIONI I CASI DI TEST OTTENUTI CON L ANALISI DEI VALORI ESTREMI RAPPRESENTANO ERRORI MOLTO COMUNI. UNA GENERAZIONE CASUALE DEI CASI DI TEST NON INDIVIDUA QUESTI ERRORI. L ANALISI DEI VALORI ESTREMI È UNA DELLE TECNICHE PIÙ UTILI NEL DISEGNO DEI CASI DI TEST. MALGRADO L APPARENTE SEMPLICITÀ LA TECNICA NON È BANALE, IN QUANTO LE CONDIZIONI ESTREME POSSONO ESSERE MOLTO SOTTILI. 13Test.53

54 Test di comparazione Software ridondante (situazioni estremamante critiche) Produzione di differenti versioni sulla base delle stesse specifiche Confronto delle varie versioni sugli stessi casi di test Facilmente automatizzabili Ovviamente se le specifiche sono errate... 13Test.54

55 Test di interfacce grafiche Notevole sovrapposizione di funzionalita (ambienti a finestra/menu/mouse) Possibilita di sviluppare delle checklist esaustive del tipo le funzionalita di movimento scrolling e ridimensionamento funzionano? il mouse permette di raggiungere tutti gli elementi presenti nella finestra? lo stato della barra dei menu e consistente? sono previsti dei comanti da tastiera per le funzionalita piu frequentemente usate? il formato dei dati di ingresso e corretto? (date, numeri, ecc.) i meccanismi grafici per l input dei dati funzionano correttamente? 13Test.55

56 Test di Integrazione Una volta testati i singoli moduli (blak&white) occorre integrarli tra di loro Il 75% degli errori nel progetto Apollo furono errori di interfaccia Il problema della integrazione va preso in considerazione fin dalle fasi iniziali del progetto Questo implica, tra l'altro, la pianificazione di opportuni livelli di test quali, ad eempio: ispezione a mano -> white -> black -> integrazione 13Test.56

57 Tecniche di integrazione A B C D E Albero delle chiamate F G H DRIVER A B Driver: sostituisce una parte chiamante trasmettendo i parametri (corretti!) STUB 1 STUB 2 STUB 3 Stub: sostituisce una parte chiamata restituendo i valori di ritorno (corretti!) 13Test.57

58 STRATEGIA NON INCREMENTALE STRATEGIE DI INTEGRAZIONE BIG-BANG Integrazione simultanea di tutte le parti STRATEGIA INCREMENTALE TOP-DOWN Integrazione effettuata procedendo dall'alto, procedendo verso le procedure piu' annidate BOTTOM-UP Integrazione effettuata dal basso, partendo dalle foglie 13Test.58

59 I L TESTING INCREMENTALE Vantaggi Gli errori vengono individuati prima e piu' facilmente E' piu' accurato Svantaggi Puo' richiedere la scrittura di un numero considerevole di driver e stub E' richiesto piu' tempo macchina per l'esecuzione Riduce il parallelismo 13Test.59

60 APPROCCIO TOP-DOWN APPROCCIO BOTTOM-UP A DRIVER A B C D DRIVER B C DRIVER D STUB E STUB F G E F G STUB H H Integrare prima possibile i componenti piu critici e di I/O 13Test.60

61 APPROCCIO TOP-DOWN Vantaggi Utile quando i difetti o la complessita' sono nella parte alta della struttura Si ottiene rapidamente uno "scheletro" del prodotto semifunzionante Approccio piu' naturale Svantaggi Gli stub da produrre sono tipicamente complessi Puo' ritardare il completamento del test di alcuni componenti Piu' difficile osservare i risultati 13Test.61

62 Approccio Bottom-UP Vantaggi Utile quando i difetti o la complessita' sono nella parte bassa della struttura Piu' facile da realizzarsi Piu' facile osservare i risultati del test Svantaggi La produzione di drivers e' meno "naturale" Il prodotto non e' completo sino a quando non vengono aggiunti i componenti "alti" 13Test.62

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti Definizioni Problemi del testing:criterio di selezione dei casi di test Test Funzionale: suddivisione in classi di equivalenza e analisi dei valori limite Test Strutturale: basato sul flusso di controllo

Dettagli

Test del Software. Definizione SCOPO LIMITI DEL TEST

Test del Software. Definizione SCOPO LIMITI DEL TEST Definizione! Verifica dinamica del comportamento del software rispetto a quello atteso, utilizzando un insieme finito di casi di test, appropriatamente selezionati nel dominio di tutti i casi possibili

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

Test e validazione 1 La fase di test 1.1 Tecniche Ispezione: checklist Test white box: grafo di controllo complessità ciclomatica

Test e validazione 1 La fase di test 1.1 Tecniche Ispezione: checklist Test white box: grafo di controllo complessità ciclomatica Test e validazione 1 La fase di test Il test è il processo di verifica di un programma con lo scopo di individuare errori prima della consegna all utente finale. Tipicamente, correggere i difetti sul software

Dettagli

Verifica e validazione della qualità del sw

Verifica e validazione della qualità del sw Verifica e validazione della qualità del sw Tecniche di Programmazione Lez. 07 Università di Firenze a.a. 2009/10, I semestre 1/40 contenuti Termini e definizioni Tecniche rispetto alle caratteristiche

Dettagli

Il Testing. Ing. Emilio Spinicci 24/03/2002 1

Il Testing. Ing. Emilio Spinicci 24/03/2002 1 Il Testing Ing. Emilio Spinicci 24/03/2002 1 Introduzione Cenni sulla teoria del testing Unit Testing - test funzionale - test strutturale - misure di copertura IPL Cantata 3.3 - Descrizione e esempi di

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Tecniche di Collaudo del Software Collaudabilità Un attributo di qualità del software E il grado di semplicità con cui il software può essere collaudato Si compone di

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Software testing. Lezione 3 Functional Testing Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A.Bei/F.Rabini/F.

Software testing. Lezione 3 Functional Testing Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A.Bei/F.Rabini/F. 1 Software testing Lezione 3 Functional Testing Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: A.Bei/F.Rabini/F.Spiga 2 Functional Testing Sotto la dicitura funzionale si raccolgono i criteri

Dettagli

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure COLLAUDO Esempi di errori/difetti algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure Verifica e Validazione Validazione Requisiti

Dettagli

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente T4 Contenuto di un analisi dei requisiti Presentate un indice di un documento di analisi dei requisiti e descrivete in modo sintetico contenuto e ruolo di ogni capitolo. INDICE 1. STORIA DELLE REVISIONI

Dettagli

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 4 Codifica, Test e Collaudo. Al termine della fase di progettazione, a volte anche in parallelo, si passa alla fase di codifica e successivamente alla fase di test e collaudo. In questa parte viene approfondita

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga Software Testing Lezione 2 Livelli di test Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Rabini/F.Spiga 1 2 Livelli di test Unit Testing Integration Testing System Testing Unit Testing

Dettagli

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Informatica Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, ed elaborazione dell informazione.

Dettagli

La programmazione con vincoli in breve. La programmazione con vincoli in breve

La programmazione con vincoli in breve. La programmazione con vincoli in breve Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con

Dettagli

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete Funzioni in due variabili Raccolta di FAQ by Andrea Prevete 1) Cosa intendiamo, esattamente, quando parliamo di funzione reale di due variabili reali? Quando esiste una relazione fra tre variabili reali

Dettagli

Ingegneria del Software 21. Verifica e validazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 21. Verifica e validazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 21. Verifica e validazione Dipartimento di Informatica Università di Pisa A.A. 2014/15 roadmap Concetti e terminologia Verifica, validazione, integrazione e collaudo Verifica statica

Dettagli

Tavola riepilogativa degli insiemi numerici

Tavola riepilogativa degli insiemi numerici N : insieme dei numeri naturali Z : insieme dei numeri interi Q : insieme dei numeri razionali I : insieme dei numeri irrazionali R : insieme dei numeri reali Tavola riepilogativa degli insiemi numerici

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola Politecnico di Milano Ingegneria del Software a.a. 2006/07 Appello del 14 settembre 2007 Cognome Nome Matricola Sezione (segnarne una) Baresi, Ghezzi, Morzenti, SanPietro Istruzioni 1. La mancata indicazione

Dettagli

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Problema e metodologie di progetto Linguaggio C: Introduzione Monica Mordonini Problema e Algoritmo

Dettagli

Sistemi operativi I: Windows. Lezione I

Sistemi operativi I: Windows. Lezione I Sistemi operativi I: Windows Lezione I Scopo della lezione Richiamare le principali funzionalità di un sistema operativo Esemplificarle descrivendo la loro implementazione in Windows Introdurre alcuni

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame Ingegneria del Software MINR Esercitazione: esempi di esercizi di esame EserciziEsame.1 Struttura del compito 2/3 ore di tempo esercizi su Function point Test scatola nera Test scatola bianca Pianificazione

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi Problemi di soddisfacimento di vincoli Maria Simi a.a. 2014/2015 Problemi di soddisfacimento di vincoli (CSP) Sono problemi con una struttura particolare, per cui conviene pensare ad algoritmi specializzati

Dettagli

Definizione e sviluppo di un tool per la generazione automatica di documentazione di testing nel contesto di progetti software open source

Definizione e sviluppo di un tool per la generazione automatica di documentazione di testing nel contesto di progetti software open source Università degli Studi dell Insubria FACOLTA DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Specialistica in Informatica Definizione e sviluppo di un tool per la generazione automatica di documentazione

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

LAVORO ESTIVO DI INFORMATICA CLASSE 2O

LAVORO ESTIVO DI INFORMATICA CLASSE 2O LAVORO ESTIVO DI INFORMATICA CLASSE 2O PER COLORO CHE HANNO AVUTO LA SOSPENSIONE DEL GIUDIZIO, GLI ESERCIZI SVOLTI DEVONO ESSERE CONSEGNATI TASSATIVAMENTE IL GIORNO DELL'ESAME SCRITTO. A CHI È STATO ASSEGNATO

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

Dettagli

Giuseppe Santucci. Qualità nella Produzione del Software. 02- Il sistema assicurazione qualità (SQAS: Sofware Quality Assurance System)

Giuseppe Santucci. Qualità nella Produzione del Software. 02- Il sistema assicurazione qualità (SQAS: Sofware Quality Assurance System) Giuseppe Santucci Qualità nella Produzione del Software 02- Il sistema assicurazione qualità (SQAS: Sofware Quality Assurance System) 02SQAS.1 Peculiarità del SW XXX warrants that the media (!) on which

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Strategie di del Software Testing del Software Il testing è quell attivit attività di esercizio del software tesa all individuazione dei malfunzionamenti prima della messa

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Verifica e Convalida

Verifica e Convalida Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Verifica e Convalida E. TINELLI Definizioni Le attività di Verifica (Verification) e Convalida (Validation)

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Le funzioni elementari. La struttura di R. Sottrazione e divisione

Le funzioni elementari. La struttura di R. Sottrazione e divisione Le funzioni elementari La struttura di R La struttura di R è definita dalle operazioni Addizione e moltiplicazione. Proprietà: Commutativa Associativa Distributiva dell addizione rispetto alla moltiplicazione

Dettagli

ITAlian Software Testing Qualifications Board Simulazione d Esame. Livello Foundation. Versione 2011

ITAlian Software Testing Qualifications Board Simulazione d Esame. Livello Foundation. Versione 2011 ITAlian Software Testing Qualifications Board Simulazione d Esame Livello Foundation Versione 2011 DATI IDENTIFICATIVI CODICE DOCUMENTO DATA DI EMISSIONE STATO ITASTQB-EXAMSIM-FOUND-01 15/01/2012 REDATTA

Dettagli

Reti sequenziali e strutturazione firmware

Reti sequenziali e strutturazione firmware Architettura degli Elaboratori, a.a. 25-6 Reti sequenziali e strutturazione firmware Alla parte di corso sulle reti sequenziali è apportata una sensibile semplificazione rispetto a quanto contenuto nel

Dettagli

Introduzione ai Metodi Formali

Introduzione ai Metodi Formali Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Tecniche di DM: Alberi di decisione ed algoritmi di classificazione

Tecniche di DM: Alberi di decisione ed algoritmi di classificazione Tecniche di DM: Alberi di decisione ed algoritmi di classificazione Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Concetti preliminari: struttura del dataset negli

Dettagli

Verifica del codice con Interpretazione Astratta

Verifica del codice con Interpretazione Astratta Verifica del codice con Interpretazione Astratta Daniele Grasso grasso@dsi.unifi.it grasso.dan@gmail.com Università di Firenze, D.S.I., Firenze, Italy December 15, 2009 D.Grasso (Università di Firenze)

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Andrea Bobbio Anno Accademico 2000-2001 Algebra Booleana 2 Calcolatore come rete logica Il calcolatore può essere visto come una rete logica

Dettagli

Problemi di Programmazione Lineare Intera

Problemi di Programmazione Lineare Intera Capitolo 4 Problemi di Programmazione Lineare Intera La Programmazione Lineare Intera (PLI) tratta il problema della massimizzazione (minimizzazione) di una funzione di più variabili, soggetta a vincoli

Dettagli

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010) Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica, Ingegneria dei Sistemi Informatici Esercitazioni

Dettagli

Metodologie per la Progettazione Concettuale

Metodologie per la Progettazione Concettuale Metodologie per la Progettazione Concettuale Raccolta e analisi dei requisiti Scegliere il corretto livello di astrazione Standardizzare la struttura delle frasi Evitare frasi contorte Individuare sinonimi

Dettagli

excel La cartella di lavoro Il foglio di lavoro

excel La cartella di lavoro Il foglio di lavoro excel Fogli Elettronici Un foglio elettronico (o spreadsheet) e` un software applicativo nato dall esigenza di organizzare insiemi di dati tramite tabelle, schemi, grafici, etc. effettuare calcoli di natura

Dettagli

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza: DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente

Dettagli

Esercitazione 3. Corso di Fondamenti di Informatica

Esercitazione 3. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 3 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR Ambienti più realistici Ricerca online Maria Simi a.a. 2011/2012 Gli agenti risolutori di problemi classici assumono: Ambienti completamente osservabili e deterministici il piano generato può essere generato

Dettagli

Collaudo e qualità del software Quali test eseguire

Collaudo e qualità del software Quali test eseguire Collaudo e qualità del software Relatore Ercole Colonese Roma, Tipologie di test Temi trattati nel libro Modello a V Livelli di testing Tipi di test Test funzionali Test delle funzionalità Test di gestione

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Lo Studio di Fattibilità

Lo Studio di Fattibilità Lo Studio di Fattibilità Massimo Mecella Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza Definizione Insieme di informazioni considerate necessarie alla decisione sull investimento

Dettagli

n L ambiente di lavoro

n L ambiente di lavoro n L ambiente di lavoro n Usare Cabri n Comprendere Cabri n L ambiente di lavoro 1 Che cosa è Cabri Il programma Cabri* è stato sviluppato da Jean-Marie Laborde e Franck Bellemain presso l Institut d Informatique

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Capitolo 5 RESTAURO E RICOSTRUZIONE DI IMMAGINI

Capitolo 5 RESTAURO E RICOSTRUZIONE DI IMMAGINI Capitolo 5 RESTAURO E RICOSTRUZIONE DI IMMAGINI La differenza tra il restauro e il miglioramento (enhancement) delle immagini è che il miglioramento è un processo soggettivo, mentre il restauro è un processo

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano Capitolo 5: Ottimizzazione Discreta E. Amaldi DEI, Politecnico di Milano 5.1 Modelli di PLI, formulazioni equivalenti ed ideali Il modello matematico di un problema di Ottimizzazione Discreta è molto spesso

Dettagli

MATEMATICA 2001. p = 4/6 = 2/3; q = 1-2/3 = 1/3. La risposta corretta è quindi la E).

MATEMATICA 2001. p = 4/6 = 2/3; q = 1-2/3 = 1/3. La risposta corretta è quindi la E). MATEMATICA 2001 66. Quale fra le seguenti affermazioni è sbagliata? A) Tutte le funzioni ammettono la funzione inversa B) Una funzione dispari è simmetrica rispetto all origine C) Una funzione pari è simmetrica

Dettagli

Management Sanitario. Modulo di Ricerca Operativa

Management Sanitario. Modulo di Ricerca Operativa Management Sanitario per il corso di Laurea Magistrale SCIENZE RIABILITATIVE DELLE PROFESSIONI SANITARIE Modulo di Ricerca Operativa Prof. Laura Palagi http://www.dis.uniroma1.it/ palagi Dipartimento di

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

1. Considerazioni generali

1. Considerazioni generali 1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1

ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1 ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1 Nelle lezioni precedenti Abbiamo definito il modello Entità- Associazione che serve a descrivere la struttura dei dati Abbiamo usato il modello per

Dettagli

Esercizi di programmazione

Esercizi di programmazione Esercizi di programmazione SEQUENZA 1. Scrivere un algoritmo che calcoli il doppio di un numero fornito in input. 2. Scrivere un algoritmo che, dati tre numeri reali X, Y e Z calcoli il risultato di (X

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

Dispensa del corso di Informatica

Dispensa del corso di Informatica Dispensa 6-Boolean 1 Algebra Booleana Dispensa del corso di Informatica La logica George Boole (1815 1864) è stato un matematico e logico britannico, ed è considerato il padre fondatore della logica matematica.

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Capitolo 9: PROPAGAZIONE DEGLI ERRORI

Capitolo 9: PROPAGAZIONE DEGLI ERRORI Capitolo 9: PROPAGAZIOE DEGLI ERRORI 9.1 Propagazione degli errori massimi ella maggior parte dei casi le grandezze fisiche vengono misurate per via indiretta. Il valore della grandezza viene cioè dedotto

Dettagli

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un

Dettagli

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 1 Introduzione all informatica: algoritmi, linguaggi e programmi Indice 1. Introduzione 2. Risoluzione automatica di problemi - Algoritmi

Dettagli

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.

Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al. Modello Code and fix Processo parte III Leggere Sez. 7.4 Ghezzi et al. Modello iniziale Iterazione di due passi scrittura del codice correzione degli errori Problemi: dopo una serie di cambiamenti, la

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

Parte 3: Gestione dei progetti, Shop scheduling

Parte 3: Gestione dei progetti, Shop scheduling Parte : Gestione dei progetti, Shop scheduling Rappresentazione reticolare di un progetto Insieme di attività {,...,n} p i durata (nota e deterministica dell attività i) relazione di precedenza fra attività:

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Modelli di Programmazione Lineare Intera

Modelli di Programmazione Lineare Intera 8 Modelli di Programmazione Lineare Intera Come è stato già osservato in precedenza, quando tutte le variabili di un problema di Programmazione Lineare sono vincolate ad assumere valori interi, si parla

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = , dove: Finite State Machine (2)

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = <Q,,, q0, F>, dove: Finite State Machine (2) Idee guida ASM = FSM con stati generalizzati Le ASM rappresentano la forma matematica di Macchine Astratte che estendono la nozione di Finite State Machine Ground Model (descrizioni formali) Raffinamenti

Dettagli

Ingegneria del Software Interattivo. - Oltre l esperimento - Parte quarta: L usabilità. L osservazione nell ingegneria dell usabilità

Ingegneria del Software Interattivo. - Oltre l esperimento - Parte quarta: L usabilità. L osservazione nell ingegneria dell usabilità Ingegneria del Software Interattivo - Oltre l esperimento - Docente: Daniela Fogli Parte quarta: L usabilità 1. L ingegneria dell usabilità 2. I metodi di valutazione di usabilità dei sistemi interattivi

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Esercitazione. Costruzione del diagramma di GANTT con EXCEL

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Esercitazione. Costruzione del diagramma di GANTT con EXCEL ESERCITAZIONE Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Esercitazione Costruzione del diagramma di GANTT con EXCEL ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA LA COSTRUZIONE

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli