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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCETTI DI BASE PER LA QUALITA

CONCETTI DI BASE PER LA QUALITA CONCETTI DI BASE PER LA QUALITA Misura: è una funzione m: A -> B che associa ad ogni attributo A di un osservabile nel mondo reale o empirico (dominio) un oggetto formale B nel mondo matematico (range);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Syllabus di Elementi di Informatica la scuola dell obbligo anno 2010

Syllabus di Elementi di Informatica la scuola dell obbligo anno 2010 Ministero dell Istruzione, dell Università e della Ricerca Dipartimento per l Istruzione Direzione Generale per gli Ordinamenti del Sistema Nazionale di Istruzione e per l Autonomia Scolastica Syllabus

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

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

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

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

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

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

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

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

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

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

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

Complessità computazionale

Complessità computazionale 1 Introduzione alla complessità computazionale Un problema spesso può essere risolto utilizzando algoritmi diversi Come scegliere il migliore? La bontà o efficienza di un algoritmo si misura in base alla

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

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

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

Manuale programmazione ISO

Manuale programmazione ISO DOCUMENTAZIONE PER L UTENTE Manuale programmazione ISO SIDAC S.r.L 21017 Samarate (Varese) Via Acquedotto, 111 E_Mail info@sidaccnc.it Tel. 0331.22.30.19 r.a. Fax. 0331.22.30.78 1 Ver. 1.0 - Aggiornamento

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

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

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

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

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

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

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

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 ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

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

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

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO ALGORITMI 1. GLI ALGORITMI Un algoritmo è la descrizione del percorso risolutivo di un problema per giungere dai dati iniziali ai risultati finali. Scriviamo l algoritmo pensando di rivolgerci a un esecutore,

Dettagli

Esercizi di Ingegneria del Software

Esercizi di Ingegneria del Software Esercizi di Ingegneria del Software Il caso della Grande Distribuzione V. Ambriola, C. Montangero e L. Semini Corso di Laurea in Informatica Corso di Laurea in Informatica Applicata Dipartimento di Informatica

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

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

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive.

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive. Lezione 6 Prerequisiti: L'insieme dei numeri interi. Lezione 5. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive. Questa è la prima lezione dedicata all'anello

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

Guida al livellamento delle risorse con logica Critical Chain (2 parte)

Guida al livellamento delle risorse con logica Critical Chain (2 parte) Paolo Mazzoni 2011. E' ammessa la riproduzione per scopi di ricerca e didattici se viene citata la fonte completa nella seguente formula: "di Paolo Mazzoni, www.paolomazzoni.it, (c) 2011". Non sono ammesse

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

SCUOLA PRIMARIA: MATEMATICA

SCUOLA PRIMARIA: MATEMATICA SCUOLA PRIMARIA: MATEMATICA Traguardi per lo sviluppo delle competenze al termine della scuola primaria L'alunno si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali e sa valutare

Dettagli

S.C.S. - survey CAD system 4 - PARTICELLE

S.C.S. - survey CAD system 4 - PARTICELLE 4 - PARTICELLE Il menu PARTICELLE gestisce la creazione di nuove particelle mediante diversi problemi relativi alla divisione di aree. È possibile impostare l orientamento della dividente, generarla parallela

Dettagli