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: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice. Convalida: attività volta ad assicurare che il SW sia conforme ai requisiti dell utente. Verifica: attività volta ad assicurare che il SW sia conforme alle specifiche dell analista. Goal: determinare malfunzionamenti/anomalie/errori

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 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

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

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

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

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software.

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Test Giulio Destri Ing. del Software: Test - 1 Scopo del modulo Definire

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

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

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

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

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

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

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

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

Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività

Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività Schemi di scomposizione delle attività Gestione parte IIC Work Breakdown Structures (WBS) Struttura ad albero: radice: attività principale i nodi figli rappresentano la scomposizione del nodo padre le

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

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

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Ing. Emilio Spinicci 07/04/2004 1

Ing. Emilio Spinicci 07/04/2004 1 Il Testing Ing. Emilio Spinicci 07/04/2004 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

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere

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

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

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

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

IL PROCESSO TECNICO DI SCHEDULAZIONE: TEMPI E COSTI DI UN PROJECT LABORATORIO INTEGRATO DI COSTRUZIONE E PRODUZIONE LEZIONE 4

IL PROCESSO TECNICO DI SCHEDULAZIONE: TEMPI E COSTI DI UN PROJECT LABORATORIO INTEGRATO DI COSTRUZIONE E PRODUZIONE LEZIONE 4 IL PROCESSO TECNICO DI SCHEDULAZIONE: TEMPI E COSTI DI UN PROJECT UNA VOLTA CREATA LA WBS E, QUINDI, INDIVIDUATA CIASCUNA PARTE ELEMENTARE DEL PROJECT, SI PASSA ALLA SCHEDULAZIONE CHE CONSISTE NELL ASSEGNARE

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

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

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

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

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

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

Rischi 1. Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi

Rischi 1. Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi Rischi 1 Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi Un ingegnere del software viene coinvolto direttamente nel processo di identificazione delle aree potenziali

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

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica 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

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

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop SMS IN Rules SMS IN Rules } Geodrop Geodrop SMS In 2.3 Regole per la manipolazione dei messaggi Guida alla scrittura di condizioni complesse Guida alle condizioni complesse v1.0-it, 7 Dicembre 2012 Indice

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Introduzione alla verifica automatica

Introduzione alla verifica automatica Sistemi digitali Introduzione alla verifica automatica Utilizzati in quasi tutte le attività umane Complessità elevata semplici sistemi hanno milioni di linee di codice Tempi di realizzazione sempre più

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

Capitolo 2. Un introduzione all analisi dinamica dei sistemi

Capitolo 2. Un introduzione all analisi dinamica dei sistemi Capitolo 2 Un introduzione all analisi dinamica dei sistemi Obiettivo: presentare una modellistica di applicazione generale per l analisi delle caratteristiche dinamiche di sistemi, nota come system dynamics,

Dettagli

GESTIONE DELL INFORMAZIONE AZIENDALE GRUPPO A prova scritta del 20 maggio 2004

GESTIONE DELL INFORMAZIONE AZIENDALE GRUPPO A prova scritta del 20 maggio 2004 GESTIONE DELL INFORMAZIONE AZIENDALE GRUPPO A prova scritta del 20 maggio 2004 Rispondere alle seguenti domande marcando a penna la lettera corrispondente alla risposta ritenuta corretta (una sola tra

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

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3 Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 3 funzioni definizione ed invocazione delle funzioni semantica dell invocazione

Dettagli

Sincronizzazione e coordinamento nel distribuito

Sincronizzazione e coordinamento nel distribuito Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

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

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi) Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Modelli di Ottimizzazione

Modelli di Ottimizzazione Capitolo 2 Modelli di Ottimizzazione 2.1 Introduzione In questo capitolo ci occuperemo più nel dettaglio di quei particolari modelli matematici noti come Modelli di Ottimizzazione che rivestono un ruolo

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

LA NORMA UNI EN ISO 9001:2000 E IL SISTEMA DI GESTIONE PER LA QUALITA

LA NORMA UNI EN ISO 9001:2000 E IL SISTEMA DI GESTIONE PER LA QUALITA LA NORMA UNI EN ISO 9001:2000 E IL SISTEMA DI GESTIONE PER LA QUALITA Esercitazione del 11.11.2005 Dott.ssa Michela Ferri LA NORMA UNI EN ISO 9001:2000 E IL SISTEMA DI GESTIONE PER LA QUALITA 4. SISTEMA

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

Analisi dei Sistemi di Misurazione - MSA

Analisi dei Sistemi di Misurazione - MSA Data: 16 Marzo 2011 Indice Il processo zione impiego specifico Cenni di SPC e di MSA 2 CARATTERISTICA DA CONTROLLARE, TOLLERANZA E RELATIVA CLASSE DI IMPORTANZA METODO DI CONTROLLO STRUMENTO DI MISURA

Dettagli

Ricerca informata. Scelta dell euristica

Ricerca informata. Scelta dell euristica Ricerca informata Scelta dell euristica SMA* (Simplified Memory-Bounded A*) SMA* espande sempre la foglia migliore finché la memoria è piena A questo punto deve cancellare un nodo in memoria SMA* cancella

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos

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

Parte 1. Vettori di bit - AA. 2012/13 1.1

Parte 1. Vettori di bit - AA. 2012/13 1.1 1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

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

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

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

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Dimensionamento dei lotti di produzione: il caso con variabilità nota

Dimensionamento dei lotti di produzione: il caso con variabilità nota Dimensionamento dei lotti di produzione: il caso con variabilità nota A. Agnetis In questi appunti studieremo alcuni modelli per il problema del lot sizing, vale a dire il problema di programmare la dimensione

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79

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

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

02: Project Management

02: Project Management 02: Project Management Le tre P del project management Persone motivate / esperte SEI PM-CMM (People Management Capability Maturity Model) assunzione / selezione addestramento / cultura di gruppo stipendio

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

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

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Sommario. 1 Codifica binaria delle informazioni. 2 Codifica binaria di informazioni di tipo numerico e aritmetica binaria

Sommario. 1 Codifica binaria delle informazioni. 2 Codifica binaria di informazioni di tipo numerico e aritmetica binaria Sommario Codifica delle informazioni 1 Codifica delle informazioni M. Favalli 2 Codifica di informazioni di tipo numerico e aritmetica Engineering Department in Ferrara 3 M. Favalli (ENDIF) Codici Reti

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

Svantaggi della Commutazione di Circuito. Commutazione di Pacchetto. Struttura di un Pacchetto

Svantaggi della Commutazione di Circuito. Commutazione di Pacchetto. Struttura di un Pacchetto Università degli studi di Salerno Laurea in Informatica I semestre / Commutazione di Pacchetto Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Svantaggi della Commutazione

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

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57

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

Verifica della correttezza formale del numero di partita IVA

Verifica della correttezza formale del numero di partita IVA Verifica della correttezza formale del numero di partita IVA A tutti i soggetti che intraprendono un attività rilevante ai fini Iva (impresa, arte, professione), al momento della presentazione della dichiarazione

Dettagli

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI PROBLEMA: un azienda deve scegliere fra due possibili investimenti al fine di massimizzare il profitto netto nel rispetto delle condizioni interne e di mercato

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

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

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

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag