La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità."

Transcript

1 Software Testing Dott. Ing. Michele Banci DSI Università degli Studi di Firenze 1

2 Introduzione Attività atta alla valutazione di un programma (sistema) determinando che esso verifichi un determinato risultato atteso. Sebbene sia cruciale per la qualità del software e sia largamente utilizzato, Il testing del software rimane ancora un arte, ciò deriva dalla ridotta comprensione dei principi del software. La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità. Testing non vuol dire solo debugging Scopo del Testing: assicurazione di qualità, V&V, stima dell affidabilità. Le più importanti: testing di correttezza e di affidabilità. trade-off fra budget, tempo e qualità. DSI Università degli Studi di Firenze 2

3 Introduzione È quel processo di esecuzione dei un programma (o sistema) con lo scopo di trovare errori. Il software è simile a altri sistemi fisici in cui si hanno ingressi e si producono risultati (uscite). La differenza del software consiste nel modo in cui esso fallisce. Sistemi fisici: falliscono in un fissato ( piccolo ) insieme di modi. Il software può fallire in molti modi BIZZARRI. Individuare tutti i diversi modi di fallimento di un software è impossibile in generale. DSI Università degli Studi di Firenze 3

4 Introduzione A differenza dei sistemi fisici il software contempla esclusivamente errori di design, non sono presenti errori di costruzione (di produzione). No Corrosione No Deterioramento Non si modifica nel tempo I difetti di design permangono indefinitamente e resteranno latenti fino a quando non saranno attivati. DSI Università degli Studi di Firenze 4

5 Introduzione I bugs esistono quasi sempre in qualsiasi programma di una certa dimensione: Poca cura NO Irresponsabilità NO Generalmente la complessità del software è intrattabile in generale la mente umana ha una ridotta abilità nel trattare la complessità. DSI Università degli Studi di Firenze 5

6 Introduzione Il software, e anche i sistemi digitali, sono sistemi non continui, pertanto testare i valori di soglia non è sufficiente per garantirne la correttezza. Devono essere testati TUTTI i possibili valori un test completo sarebbe irrealizzabile. E.g. Testare un programma che somma due numeri interi di 32 bit in ingresso. Produce 2 64 test cases distinti = secondi = 1 anno Inoltre per applicazioni che interagiscono con il mondo esterno: Timing unpredictable environmental effects human interactions DSI Università degli Studi di Firenze 6

7 Introduzione Se si verifica un fallimento durante il testing e a seguito il codice viene cambiato il programma potrebbe superare altri test eseguiti in precedenza e non superati. Il programma potrebbe non superare test fatti in precedenza e già superati. Il testing dovrebbe ricominciare. Il costo di una tale attività risulterebbe proibitivo. Pesticide Paradox: Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual. DSI Università degli Studi di Firenze 7

8 Introduzione Il testing è parte integrante dello sviluppo del software. Esso viene distribuito in ogni fase del ciclo di sviluppo del software. In genere, più del 50% del tempo di sviluppo viene utilizzato per il testing. DSI Università degli Studi di Firenze 8

9 Lo scopo del testing 1. Migliorare la qualità; 2. Verifica e Validazione (V&V); 3. Stimare l affidabilità. DSI Università degli Studi di Firenze 9

10 Migliorare la qualità. Computer e software usati in applicazioni critiche possono causare danni a cose e persone a causa dei BUGS. airplane crashes, space shuttle missions to go awry, halted trading on the stock market, Bugs can kill. Bugs can cause disasters. la qualità e l affidabilità di un software = vita o di morte. Qualità = conformità con i requisiti specificati in fase di design. Il Debugging (~ testing) viene eseguito dai programmatori al fine di individuare difetti di progettazione. La natura imperfetta dell uomo rende impossibile creare un programma corretto fin da subito. Lo scopo del debugging consiste nel trovare i problemi e risolverli durante la fase di programmazione. DSI Università degli Studi di Firenze 10

11 Verification & Validation (V&V) V&V (Verification & Validation) è un altro scopo importante del testing. Il testing può essere utilizzato come metrica. Basandoci sul risultato dei medesimi test è possibile eseguire un confronto comparativo fra prodotti diversi ma basati sulle medesime specifiche. Non è possibile testare la qualità in modo diretto, ma è possibile testare quei fattori correlati con la qualità. La qualità è costituita da 3 insiemi di fattori functionality, engineering, e adaptability. Questi 3 insiemi di fattori si possono pensare come una dimensioni nello spazio della qualità del software. Ciascuna dimensione può inoltre essere scomposta nei sui singoli fattori. DSI Università degli Studi di Firenze 11

12 Software Quality Factors Functionality (exterior quality) Correctness Reliability Usability Integrity Engineering (interior quality) Efficiency Testability Documentation Structure Adaptability (future quality) Flexibility Reusability Maintainability DSI Università degli Studi di Firenze 12

13 Misura della qualità Un buon testing deve poter fornire delle misure per i fattori di qualità rilevanti. L importanza dei fattori varia dal tipo di applicazione in esame. I sistemi in cui è in gioco la vita umana: reliability e integrity. Sistemi gestionali: usability e maintainability. Per programmi usati una sola volta per scopo scientifico: nessun fattore. Il nostro testing deve essere efficace, creato in modo tale da misurare i fattori di qualità in modo tale da rendere tangibile e visibile la qualità. Clean tests, o positive tests : Test atti a validare se il prodotto fa quello che deve fare. In realtà si riesce ad affermare che il programma funziona correttamente per quello specifico caso di test. Un numero finito di test non può garantire che il programma funziona correttamente in tutte le possibili situazioni. Dirty tests, o negative tests: al contrario dei precedenti anche un solo test fallito è sufficiente per dimostrare che il programma non funziona. Alcune parti del programma devono avere una sufficiente gestione delle eccezioni in grado di superare un certo livello di test negativi. Design for testing: è una parte importante dello sviluppo del software il quale rende più semplice il testing del programma stesso (riduce tempi e costi). DSI Università degli Studi di Firenze 13

14 For reliability estimation L affidabilità del software è spesso in relazione con la struttura dello stesso e la quantità del testing a cui è stato sottoposto. Basandosi su un approccio operazionale (stima della frequenza di uso dei vari input), il testing può fungere da campionamento statistico in modo tale da creare i dati di fallimento per stimare l affidabilità. Si utilizzano le medesime tecniche di testing inventate anni fa. Il testing del sw può essere molto costoso, ma in certi casi catastrofici il non fare testing può esserlo molto di più. Risolvere il problema del testing del software può essere paragonabile al problema della terminazione di Turing (halting problem): data una macchina di Turing M ed una stringa x, stabilire se M termina la computazione avendo x come input. Non possiamo mai essere sicuri della correttezza di un programma. Non possiamo mai essere sicuri della correttezza delle specifiche Non possiamo mai essere sicuri della correttezza del sistema di verifica DSI Università degli Studi di Firenze 14

15 Classificazione di metodi di testing (Livelli di test) By purpose: correctness testing, performance testing, reliability testing security testing. By scope: unit testing, mirato alla correttezza degli algoritmi component testing, integration testing, mirato alla correttezza delle interfacce system testing. affidabilità, sicurezza e prestazioni By life-cycle phase: requirements phase testing, design phase testing, program phase testing, evaluating test results, installation phase testing, acceptance testing imposto dal cliente, verifica che il programma soddisfi le richieste del cliente stesso. maintenance testing. (Test di regressione) verifica che non si siano introdotti errori in versioni successive DSI Università degli Studi di Firenze 15

16 Correctness testing (for unit test) La correttezza è il requisito minimo per un programma, è lo scopo primario del testing. Necessita di un Oracolo per poter discriminare un comportamento corretto da uno non corretto. Tester e sua conoscenza del modulo sotto test: White box (Test Strutturale) e.g. control flow, data flow, etc. Black box (test funzionale) Variano per il principio su cui si basa il criterio di selezione dei test. L approccio black-box e white-box non si limitano solo al test di correttezza. DSI Università degli Studi di Firenze 16

17 Test Funzionale - Black-box testing È un metodo in cui i dati di test sono derivati dalle specifiche funzionali senza considerare la struttura finale del software. Viene chiamato: data-driven, input/output driven, or requirements-based testing. Infatti ci si interessa soltanto delle funzionalità del modulo. Test funzionale: enfatizza l esecuzione delle funzioni e l analisi dei loro dati di ingresso e uscita. Il tester considera il software come una scatola nera sono visibili solo gli ingressi, le uscite e le specifiche funzionali, la funzionalità viene determinata osservando le uscite prodotte da determinati ingressi (funzioni di trasferimento). Vengono inviati (esercitati) vari input e le corrispondenti uscite sono confrontate con le specifiche così da validarne la correttezza. Tutti i casi di test sono derivati dalle specifiche. Non sono considerati i dettagli implementativi del codice. DSI Università degli Studi di Firenze 17

18 Black-box testing specifiche funzionali Inoltre, non potremo mai essere sicuri della correttezza e completezza delle specifiche. Dovuto alle limitazioni del linguaggio usato per le specifiche (linguaggio naturale), si avranno sicuramente problemi di ambiguità. Anche se usassimo formalismi o linguaggi ristretti, si potrebbe ancora errare nello scrivere tutti i possibili casi nelle specifiche. Le specifiche in se stesse possono divenire un problema intrattabile: Non è possibile specificare precisamente ogni situazione che si può incontrare utilizzando un numero limitato di parole. Le persone sono in grado di specificare chiaramente quello che desiderano? Normalmente sono in grado di dire se un prototipo corrisponde o meno a ciò che si desiderava. Il problema delle specifiche contribuisce a circa il 30% dei bugs nel software. DSI Università degli Studi di Firenze 18

19 Black-box testing spazio degli ingressi Maggiore è lo spazio di ingresso coperto e maggiori saranno i bugs individuati, pertanto si avrà maggior confidenza sulla qualità del sw. Idealmente si potrebbe tentare di testare esaustivamente lo spazio degli ingressi. IMPOSSIBILE L esplosione combinatoria è il maggior problema del testing funzionale. DSI Università degli Studi di Firenze 19

20 Black-box testing research forse eliminare La ricerca nel campo del black-box testing si rivolge a massimizzare l efficacia del testing col minor costo possibile (minor numero di casi di test). Non è possibile esaustivamente usare tutto lo spazio degli stati degli ingressi, ma è possibile sollecitare esaustivamente un sottospazio di tale spazio. Equivalence Class Partitiong (ECPT) Il partitioning una tecnica molto comune. Se abbiamo partizionato lo spazio degli ingressi e assunto che tutti i valori in una partizione sono equivalenti, allora si può testare solo un solo valore rappresentativo di ciascuna partizione per coprire tutto lo spazio degli ingressi. Il domain testing partiziona il dominio di ingresso in regioni, e considera i valori di ingresso in ciascun dominio come una classe di equivalenza. I domini possono essere testati esaustivamente e coperti selezionando un valore rappresentativo per ciascun dominio. Ovviamente i valori di confine rivestono un certo interesse. I test cases che esplorano i valori di confine hanno maggior valore rispetto a test con valori contenuti all interno del dominio. BOUNDARY VALUE ANALYSIS (BVAN) richiede uno o più valori limite selezionato come rappresentativo. Il problema con questo tipo di analisi sta nella errata definizione dei domini, questa definizione non può essere scoperta correttamente solo sulla base delle specifiche. Un buon partizionamento richiede la conoscenza della struttura del software. DSI Università degli Studi di Firenze 20

21 Black-box testing research Random testing Utilizzato per valutare l affidabilità e le performance ma non per la ricerca degli errori. I metodi basati sulle specifiche si riassumono in: 1. EQUIVALENCE CLASS PARTITIONING (ECPT) Si divide il dominio di input del programma in classi con l'ipotesi che un caso di test per ciascuna classe sia rappresentativo di tutti i valori della classe. Per ciascuna condizione di input si associano almeno due classi di equivalenza, una valida ed una invalida. 2. BOUNDARY VALUE ANALYSIS (BVAN) Si scelgono i casi di test in prossimità della frontiera delle classi. 3. TEST CASE by ERROR GUESSING (TCEG) Tecnica ad-hoc basata sull' intuito e sull' esperienza di chi esegue il test. DSI Università degli Studi di Firenze 21

22 Random Testing I dati utilizzati per i test cases sono selezionati casualmente nel dominio di ingressso del programma. Random testing non vuol dire che si abbandona completamente la input/output analysis del programma o del modulo. Lo scopo della maggior parte delle applicazioni è di creare un profilo operazionale del programma o del modulo. Definizione 1: Operational Profile Il Profilo operazionale di un programma nel dominio dei dati di ingresso è la distribuzione di probabilità di selezionare ciascun punto del dominio dei dati di ingresso mentre il programma viene utilizzato in condizioni normali di lavoro. DSI Università degli Studi di Firenze 22

23 Random Testing Una delle maggiori applicazioni del random testing è il fornire dati per la stima dell affidabilità del software. I Test case sono generati casualmente in accordo con il proofilo operazionale, e i dati di fallimento vengono acquisiti. I dati ottenuti dal random testing posso essere usati per la stima dell affidabilità. Nessun altro metodo di testing può essere utilizzato per tale stima. Qualsiasi stima di affidabilità non è corretta se il profilo operazionale non è corretto. DSI Università degli Studi di Firenze 23

24 Svantaggi del Random Testing 1. Può essere necessario creare un gran numero (proibitivo) di tests per poter essere confidenti di avere sufficientemente coperto il dominio di ingresso; 2. La distribuzione casuale degli ingressi identifica soltanto i guasti del programma Principio di Pareto-Zipf ( legge 80/20 ): i valori 80% e 20% sono ottenuti mediante osservazioni empiriche di numerosi fenomeni e sono solo indicativi, in genere l'80% dei risultati dipende dal 20% delle cause. 3. È difficile stimare la copertura o determinare se abbiamo adeguatamente il dominio di ingresso. DSI Università degli Studi di Firenze 24

25 Random Testing - Testing Oracles Il gran numero di casi di test che sono tipicamente necessari per avere risultati statisticamente significativi impone la necessità di creare automaticamente i casi di test. Casi di test automaticamente generati (TVG) è corretto se abbiamo il profilo operazionale e un buon modo di generazione casuale; Inoltre occorre un metodo per decidere se il risultato del test è un risultato atteso oppure no. Un programma o un insieme di dati o un processo che decide se i risultati sono quelli attesi è chiamato: Testing Oracle! DSI Università degli Studi di Firenze 25

26 Random Testing - Testing Oracles Esempio: Consideriamo la specifica di una funzione tolower la quale prende una stringa dallo standard input e pone la stringa corrispondente sullo standard output, con tutte le lettere maiuscole sostituite nelle corrispondenti lettere minuscole (i.e. A to a, B to b, etc.). Le stringhe possono essere formate da tutti i caratteri ASCII fra 32 e 126 inclusi; i caratteri al di fuori da questo range sono caratteri di controllo e causeranno un messaggio di errore. Come possiamo determinare se l output della funzione tolower coincide con con il risultato atteso? DSI Università degli Studi di Firenze 26

27 Random Testing - Testing Oracles Specifications Specifica formale scritta in una forma matematica (pseudo) risultano migliori al fine di selezionare e creare testing oracles piuttosto che specifiche informali scritte in linguaggio naturale. Solved examples sono sviluppati a mano. Parametric oracles caratterizzano una vasta classe di soluzioni per l ingresso del test scegliendo parametri appropriati. Built in tests and checks sono asserzioni che vengono aggiunte al codice per specificare quando un risultato è valido oppure invalido. Alternativamente si possono sviluppare procedure di self test. Data and Databases - Dati in forma di tabelle, documenti, grafi o altro formato contenenti i risultati. Golden program Utilizza specifiche eseguibili, versioni precedenti del programma, oppure eseguire un test in parallelo con un altro sistema che fornisce le stesse funzionalità. DSI Università degli Studi di Firenze 27

28 Equivalence Partitioning Come si possono creare casi di test in modo tale da coprire i guasti del programma. La risposta adottata il molti metodi di partitioning consiste nel dividere il dominio di ingresso e di uscita in modo tale che: 1. Occorrono meno casi di test per coprire grandi domini di ingresso; 2. Si hanno maggiori chance di scoprire guasti del programma; 3. Si ha una buona idea di quanto del dominio di ingresso si è coperto con i casi di test. DSI Università degli Studi di Firenze 28

29 Equivalence Partitioning Lo scopo consiste nel dividere il dominio di ingresso in classi (insiemi!) di casi di test i quali abbiano un effetto simile sul programma. Tali classi sono denominate CLASSI DI EQUIVALENZA. Definizione: Equivalence Class (EC) È un insieme di inputs che il programma tratta in modo identico quando il programma viene testato. DSI Università degli Studi di Firenze 29

30 Equivalence Partitioning Ciascuna Classe di equivalenza viene utilizzata per rappresentare certe condizioni (o predicati) sul dominio dei dati di ingresso. Per il partitioning si è soliti considerare sia gli ingressi validi che invalidi. Definizione: Una condizione sugli input (Input Condition) è un predicato sui valori degli ingressi. Un ingresso valido (Valid input) al programma o modulo è un elemento del dominio che si attende sia correttamente gestito dal programma restituendo un valore di non-errore (non errato). Un ingresso invalido ci si aspetta restituisca un valore di errore (valore errato). DSI Università degli Studi di Firenze 30

31 Equivalence Partitioning Input Conditions Sono usate tipicamente per partizionare il dominio di ingressi in classi di equivalenza allo scopo di selezionare certi ingressi. Consideriamo una versione modificata della specifica del quadrato di un numero questo dovrà restituire un intero di 32 bit: x {0,., 65535} square(x) = x * x Il dominio di ingresso dedotto dalla (scarna) specifica è l insieme di integer; La condizione di input è: x {0,., 65535} DSI Università degli Studi di Firenze 31

32 Equivalence Partitioning 1. È un metodo sistematico per identificare gli insiemi di classi di interesse di condizioni di ingresso da testare. 2. Ciascuna classe è rappresentativa di (copre) un insieme di altri possibili test. Ci si aspetta che il programma si comporti nello stesso modo fer tutti gli elementi della classe di equivalenza. Anziché scrivere test per tutti gli elementi della classe, si prende un test case rappresentativo e inferire le proprietà della classe da questo test case. Occorre fare attenzione assicurarsi che tutti i membri della classe si comportino allo stesso modo. DSI Università degli Studi di Firenze 32

33 Equivalence Partitioning: metodologia Lo scopo è quello di minimizzare il numero di casi di test necessari per coprire il dominio degli ingressi. 1. Identificare le classi di equivalenza (ECs); 2. Identificare i casi di test. DSI Università degli Studi di Firenze 33

34 Identifying Equivalence Classes: Guidelines 1. Se una condizione di ingresso specifica un range di valori, identificare una classe di equivalenza valida e due invalide. Esempio: Se abbiamo l insieme di valori {1,...., 99} allora occorreranno le seguenti classi: Classe di equivalenza valida {1,..., 99}; Classi di equivalenza invalide {x x < 1} and {x x > 99}. DSI Università degli Studi di Firenze 34

35 Identifying Equivalence Classes: Guidelines 2. Se una condizione di ingresso specifica un insieme di valori di ingresso e ciascuno è gestito in modo diverso, identificare una classe di equivalenza per ciascun elemento dell insieme e una invalida EC. Esempio: Se l ingresso è selezionato da un insieme di N distinti elementi allora occorreranno N + 1 ECs: Una valida EC per ciascun elemento dell insieme {M 1 },..., {M N }; Una invalida EC per gli elementi fuori dall insieme {x x {M 1,..., M N }}. 3. Se si ritiene che il programma maneggia ciascun ingresso valido in modo distinto, allora occorre definire una valida EC per ciascun ingresso valido. Esempio: Se l ingresso viene da un menu allora si definisce una valida EC per ciascun item del menu. DSI Università degli Studi di Firenze 35

36 Identifying Equivalence Classes: Guidelines 4. Se le specifiche indicano N ingressi validi, si devono definire una valida EC e due invalide EC per ciascun valore N dell ingresso Una per zero valori, e una per valori > N. 5. Se un condizione di ingresso specifica una situazione del tipo must be, identificare una valida EC e una invalida EC. Esempio: Il primo carattere di un input deve essere numerico allora occorreranno due EC una valida EC {s il primo carattere di s è numerico} una invalida EC {s il primo carattere non è numerico} 6. Se gli elementi in una EC sono trattati in modi diversi dal programma, allora la EC deve essere splittata in EC più piccole. DSI Università degli Studi di Firenze 36

37 Identifying Test Cases 1. Assegnare un unico numero a ciascuna EC. 2. while Non tutte le valide ECs sono state coperte dai casi di test do 3. scrivere un nuovo caso di test che copra il maggior numero di ECs non coperte. 4. while Tutte le invalide ECs non sono state coperte dai casi di test do 5. Scrivere un caso di test che copra uno e solo uno delle non coperte invalide ECs. DSI Università degli Studi di Firenze 37

38 Equivalence Partitioning: Esempio 1 Consideriamo la seguente specifica informale per il problema seguente: Classificazione di triangoli. 1. Il programma legge i 3 valori positivi dallo standard input. 2. I 3 valori sono interpretati come rappresentativi delle lunghezze dei lati di un triangolo. 3. Il programma stampa un messaggio sullo standard output che indica se il triangolo, se può essere creato, è scaleno, isoscele, equilatero o rettangolo. DSI Università degli Studi di Firenze 38

39 Equivalence Partitioning: Esempio 1 Quale è il dominio di ingresso per il suddetto programma? Le possibilità includono: L insieme di tutte le possibili stringhe in ingresso siamo testando la robustezza e vogliamo sapere se stringhe non corrette vengono rigettare dal programma; L insieme di tutti i possibili interi, sia positivi che negativi; L insieme di tutti i possibili interi positivi. Quali sono le condizioni degli ingressi? Requirement Input Condition 3 interi in ingresso (x; y; z) int int int Gli interi devono essere positivi: x>0, y>0, z>0. Nota: si sta utilizzando la regola 6 per determinare le classi di equivalenza. DSI Università degli Studi di Firenze 39

40 Equivalence Partitioning: ECs Le classi di equivalenza sono: Equivalence class Test Case scalene triangle isosceles triangle right-angled triangle non-triangle non-positive input equilateral triangle {(3, 5, 7),... } {(2, 3, 3),... } {(3, 4, 5),... } {(1, 1, 3),... } {(-1, 0, 3), (-2,-3,-3),... } {(7, 7, 7),... } DSI Università degli Studi di Firenze 40

41 Boundary Value Analysis Lo scopo è l analisi delle frontiere delle ECs. Intuitivamente si ha che i difetti (faults o failures) sono più probabili al confine fra due ECs. Sceglie i test cases sulla frontiera o intorno ad essa. È un raffinamento e estensione del partizionamento in ECs. Il partizionamento richiede la scelta di un solo caso di test mentre la BVA ne richiede di più. DSI Università degli Studi di Firenze 41

42 Boundary Conditions Definizione: Boundary Conditions sono predicati applicati sui valori di frontiera e su intorni delle ECs degli input e output. Le due differenze introdotte dalla BVA sono: 1. Sia le condizioni di ingresso che di uscita vengono usate per selezionare i casi di test. 2. Anziché un solo caso di test da una EC, BVA consiglia di prendere più casi di test in un intorno della frontiera. DSI Università degli Studi di Firenze 42

43 Boundary Conditions Se una condizione sugli input specifica un range di valori, allora si devono creare test case validi per gli estremi del range, e invalidi per i punti oltre la frontiera. Se una condizione sugli input specifica un numero di valori, si devono creare test case per il valore minimo e massimo,minotre uno all interno dei valori e all esterno di questi. Analogamente deve essere fatto per le condizioni sugli output. Le condizioni di frontiera possono essere difficili da identificare soprattutto per quel che riguarda il dominio delle uscite. DSI Università degli Studi di Firenze 43

44 The Triangle Program Revisited Specifica del problema: Il programma legge valori floating dal std input. I 3 valori sno i 3 lati del triangolo. Il programma stampa a video il risultato del tipo di triangolo (se è un triangolo) Isoscele, scaleno, equilatero, rettangolo DSI Università degli Studi di Firenze 44

45 The Triangle Program Revisted 1. dati i lati (A, B, C) per essere scaleno la somma dei qualsiasi coppia di lati deve essere > del terzo lato boundary conditions A + B > C B + C > A A + C > B Per la condizione A + B > C possiamo esplorare la frontiera usando i seguenti casi di test (1, 2, 3), (1, 2, 2.999), (1, 2, 3.001). 2. dati i lati (A, B, C) per essere isoscele due lati devono essere uguali boundary conditions A = B B = C A = C Per la condizione A = C possiamo esplorare la frontiera usando i seguenti casi di test (2, 2, 3), (2, 1.999, 3), (2, 2.001, 3),.. DSI Università degli Studi di Firenze 45

46 The Triangle Program Revisted 3. dati i lati (A, B, C) per essere equilatero tutti i lati dovranno essere uguali boundary A = B = C possiamo esplorare la frontiera usando i seguenti casi di test (3, 3, 3), (3, 2.999, 3), (3, 3.001, 3),.. 4. dati i lati (A, B, C) per essere rettangolo si deve avere A2 + B2 = C2 possiamo esplorare la frontiera usando i seguenti casi di test (3, 4, 5), (3, 4, 4.999), (3, 4, 5.001),.. 5. dati i lati (A, B, C) per non essere un triangolo si deve avere Frontiere simili alle precedenti (1, 2, 3), (1, 2, 2.999), (1, 2, 3.001),.. 6. per dati di ingresso non positivi si avrà (0, 1, 2), (-0.001, 1, 2), (0.001, 1, 2),.. DSI Università degli Studi di Firenze 46

47 White-box testing Il software viene considerato come una white-box, le strutture e il flusso del sw sono visibili al tester. I piani di test sono creati in base ai dettagli implementativi del software: il tipo di linguaggio usato, la logica, lo stile,... I casi di test si deriveranno dalla struttura del programma. White-box testing = glass-box testing = logic-driven testing = design-based testing. Esistono molte tecniche disponibili per il white-box testing, L intrattabilità del problema viene facilitata dalla conoscenza specifica della struttura del programma da testare. Si possono ottenere gradi di esaustività : Si esegue ciascuna riga di codice almeno una volta (statement coverage), Ogni branch statements viene attraversato (branch coverage), Copre tutte le possibili combinazioni di condizioni booleane (Multiple condition coverage). DSI Università degli Studi di Firenze 47

48 When to stop testing? Il testing è potenzialmente senza fine. Quando fermiamo l attività di testing? È un compromesso fra budget, tempo e qualità. Sarà guidato da modelli di profitto. Uno dei più usati metodi (non corretto) consiste nel terminare l attività quando il budget o il tempo o i casi di test sono finiti. Un metodo sicuramente migliore consiste nel terminare l attività quando l affidabilità ha raggiunto il livello richiesto o quando i benefici nel continuare il testing sarebbero minimi. Questo richiede l uso di modelli di affidabilità per stimare l affidabilità del software sotto test. DSI Università degli Studi di Firenze 48

49 Alternatives to testing (1) Software testing è considerato un metodo problematico per migliorare la qualità. Usare il testing per individuare e correggere i difetti può essere un processo senza fine. I bugs non possono essere completamente eliminati. Testare e fissare i problemi può non necessariamente migliorare la qualità e l affidabilità. Talvolta risolvere un problema può introdurne altri più severi. Item: In the summer of 1991, telephone outages occurred in local telephone systems in California and along the Eastern seaboard. These breakdowns were all the fault of an error in signaling software. Right before the outages, DSC Communications (Plano, TX) introduced a bug when it changed three lines of code in the several-million-line signaling program. After this tiny change, nobody thought it necessary to retest the program. Coverage testing: si può considerare che code coverage e branch coverage siano collegati alla qualità del software? Non ne esiste la prova. Il così detto "human testing" -- ispezione del codice, walkthroughs, reviews sono suggerite come una possibile alternativa. Alcuni risultati sperimentali indicano che la rilettura del codice tramite astrazione è efficienteb tanto quanto functional and structural testing in termini di numero di guasti osservati. I formal methods per provare la correttezza sono un altra strada possibile. Cmq non sono in grado di superare la barriera della complessità. DSI Università degli Studi di Firenze 49

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

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale La Sicurezza Funzionale del Software Prof. Riccardo Sisto Ordinario di Sistemi di Elaborazione delle Informazioni Dipartimento di Automatica e Informatica Sicurezza Funzionale del Vari Aspetti Sicurezza

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

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

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

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

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

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

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Verifica di ipotesi e intervalli di confidenza nella regressione multipla

Verifica di ipotesi e intervalli di confidenza nella regressione multipla Verifica di ipotesi e intervalli di confidenza nella regressione multipla Eduardo Rossi 2 2 Università di Pavia (Italy) Maggio 2014 Rossi MRLM Econometria - 2014 1 / 23 Sommario Variabili di controllo

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

LA REVISIONE LEGALE DEI CONTI La comprensione

LA REVISIONE LEGALE DEI CONTI La comprensione LA REVISIONE LEGALE DEI CONTI La comprensione dell impresa e del suo contesto e la valutazione dei rischi di errori significativi Ottobre 2013 Indice 1. La comprensione dell impresa e del suo contesto

Dettagli

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Sommario Introduzione Definizione di WCET Importanza del WCET Panoramica dei classici metodi per calcolare il WCET [1] Utilizzo di

Dettagli

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI VERO FALSO CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI 1. V F Un ipotesi statistica è un assunzione sulle caratteristiche di una o più variabili in una o più popolazioni 2. V F L ipotesi nulla unita

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Configuration Management

Configuration Management Configuration Management Obiettivi Obiettivo del Configuration Management è di fornire un modello logico dell infrastruttura informatica identificando, controllando, mantenendo e verificando le versioni

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

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Un gioco con tre dadi

Un gioco con tre dadi Un gioco con tre dadi Livello scolare: biennio Abilità interessate Costruire lo spazio degli eventi in casi semplici e determinarne la cardinalità. Valutare la probabilità in diversi contesti problematici.

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

Determinare la grandezza della sottorete

Determinare la grandezza della sottorete Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano

Dettagli

Laboratorio di Pedagogia Sperimentale. Indice

Laboratorio di Pedagogia Sperimentale. Indice INSEGNAMENTO DI LABORATORIO DI PEDAGOGIA SPERIMENTALE LEZIONE III INTRODUZIONE ALLA RICERCA SPERIMENTALE (PARTE III) PROF. VINCENZO BONAZZA Indice 1 L ipotesi -----------------------------------------------------------

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE

REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE Nella Sezione 16.5 abbiamo visto come un regolatore che voglia fissare il prezzo del monopolista in modo da minimizzare la

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Ing. Simone Giovannetti

Ing. Simone Giovannetti Università degli Studi di Firenze Dipartimento di Elettronica e Telecomunicazioni Ing. Simone Giovannetti Firenze, 29 Maggio 2012 1 Incertezza di Misura (1/3) La necessità di misurare nasce dall esigenza

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

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

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

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY) CICLO DI LEZIONI per Progetto e Gestione della Qualità Facoltà di Ingegneria CAPACITÀ DI PROCESSO (PROCESS CAPABILITY) Carlo Noè Università Carlo Cattaneo e-mail: cnoe@liuc.it 1 CAPACITÀ DI PROCESSO Il

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

La progettazione centrata sull utente nei bandi di gara

La progettazione centrata sull utente nei bandi di gara Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA La progettazione centrata sull utente nei bandi di gara Autore: Maurizio Boscarol Creatore: Formez PA, Progetto Performance

Dettagli

Capitolo 12 La regressione lineare semplice

Capitolo 12 La regressione lineare semplice Levine, Krehbiel, Berenson Statistica II ed. 2006 Apogeo Capitolo 12 La regressione lineare semplice Insegnamento: Statistica Corso di Laurea Triennale in Economia Facoltà di Economia, Università di Ferrara

Dettagli

Strumenti di indagine per la valutazione psicologica

Strumenti di indagine per la valutazione psicologica Strumenti di indagine per la valutazione psicologica 2.2 Mettere a punto un test psicologico Davide Massidda davide.massidda@gmail.com Da dove partire C'è davvero bisogno di un nuovo strumento di misura?

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

Verifica e Validazione del Simulatore

Verifica e Validazione del Simulatore Verifica e del Simulatore I 4 passi principali del processo simulativo Formulare ed analizzare il problema Sviluppare il Modello del Sistema Raccolta e/o Stima dati per caratterizzare l uso del Modello

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

11. Evoluzione del Software

11. Evoluzione del Software 11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ In questa Appendice mostreremo come trovare la tariffa in due parti che massimizza i profitti di Clearvoice,

Dettagli

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza Roberto Ugolini 1 Il processo di sviluppo sicuro del codice (1/2) Il processo di sviluppo sicuro del codice () è composto

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Appendice III. Competenza e definizione della competenza

Appendice III. Competenza e definizione della competenza Appendice III. Competenza e definizione della competenza Competenze degli psicologi Lo scopo complessivo dell esercizio della professione di psicologo è di sviluppare e applicare i principi, le conoscenze,

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

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

OSSERVAZIONI TEORICHE Lezione n. 4

OSSERVAZIONI TEORICHE Lezione n. 4 OSSERVAZIONI TEORICHE Lezione n. 4 Finalità: Sistematizzare concetti e definizioni. Verificare l apprendimento. Metodo: Lettura delle OSSERVAZIONI e risoluzione della scheda di verifica delle conoscenze

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

PowerSchedo. Un sistema di supporto alla decisione nel settore dell'oil&gas. For further information: www.mbigroup.it

PowerSchedo. Un sistema di supporto alla decisione nel settore dell'oil&gas. For further information: www.mbigroup.it PowerSchedo Un sistema di supporto alla decisione nel settore dell'oil&gas For further information: Introduzione PowerSchedO è uno strumento software di supporto alle decisioni per problemi nel settore

Dettagli

CHIUSURE di MAGAZZINO di FINE ANNO

CHIUSURE di MAGAZZINO di FINE ANNO CHIUSURE di MAGAZZINO di FINE ANNO Operazioni da svolgere per il riporto delle giacenze di fine esercizio Il documento che segue ha lo scopo di illustrare le operazioni che devono essere eseguite per:

Dettagli

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE Matematica e statistica: dai dati ai modelli alle scelte www.dima.unige/pls_statistica Responsabili scientifici M.P. Rogantin e E. Sasso (Dipartimento di Matematica Università di Genova) PROBABILITÀ -

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

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) COMUNE DI RAVENNA Il sistema di valutazione delle posizioni del personale dirigente GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) Ravenna, Settembre 2004 SCHEMA DI SINTESI PER LA

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Gestione delle Presenze WorkFlow Manuale Operativo

Gestione delle Presenze WorkFlow Manuale Operativo Sistemi di Gestione per l Area del Personale Gestione delle Presenze Work Flow Modulo Presenze Manuale Operativo Guida Utente: Pag. 1 Work Flow Procedura di gestione delle presenze La procedura Work Flow

Dettagli

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) CORSO DI Gestione aziendale Facoltà di Ingegneria IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) Carlo Noè Università Carlo Cattaneo Istituto di Tecnologie e-mail: cnoe@liuc.it 1 Il processo di

Dettagli

Capitolo Terzo Valore attuale e costo opportunità del capitale

Capitolo Terzo Valore attuale e costo opportunità del capitale Capitolo Terzo Valore attuale e costo opportunità del capitale 1. IL VALORE ATTUALE La logica di investimento aziendale è assolutamente identica a quella adottata per gli strumenti finanziari. Per poter

Dettagli

Il mercato di monopolio

Il mercato di monopolio Il monopolio Il mercato di monopolio Il monopolio è una struttura di mercato caratterizzata da 1. Un unico venditore di un prodotto non sostituibile. Non ci sono altre imprese che possano competere con

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

Prevenzione e protezione incendi nelle attività industriali

Prevenzione e protezione incendi nelle attività industriali Prevenzione e protezione incendi nelle attività industriali Scopo della prevenzione incendi è il conseguimento della sicurezza contro gli incendi mediante la determinazione degli strumenti idonei ad ottenere:

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

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Università del Piemonte Orientale. Corso di laurea in biotecnologia. Corso di Statistica Medica. Intervalli di confidenza

Università del Piemonte Orientale. Corso di laurea in biotecnologia. Corso di Statistica Medica. Intervalli di confidenza Università del Piemonte Orientale Corso di laurea in biotecnologia Corso di Statistica Medica Intervalli di confidenza Università del Piemonte Orientale Corso di laurea in biotecnologia Corso di Statistica

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Laboratorio in classe: tra forme e numeri Corso organizzato dall USR Lombardia. GRUPPO FRAZIONI SCUOLA SECONDARIA DI I GRADO-CLASSE I a.s.

Laboratorio in classe: tra forme e numeri Corso organizzato dall USR Lombardia. GRUPPO FRAZIONI SCUOLA SECONDARIA DI I GRADO-CLASSE I a.s. Laboratorio in classe: tra forme e numeri Corso organizzato dall USR Lombardia GRUPPO FRAZIONI SCUOLA SECONDARIA DI I GRADO-CLASSE I a.s.009/00 LABORATORIO IN CLASSE TRA FORME E NUMERI - a.s. 009/00 LABORATORIO

Dettagli

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero

Dettagli

E naturale chiedersi alcune cose sulla media campionaria x n

E naturale chiedersi alcune cose sulla media campionaria x n Supponiamo che un fabbricante stia introducendo un nuovo tipo di batteria per un automobile elettrica. La durata osservata x i delle i-esima batteria è la realizzazione (valore assunto) di una variabile

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi Project Management Modulo: Introduzione prof. ing. Guido Guizzi Definizione di Project Management Processo unico consistente in un insieme di attività coordinate con scadenze iniziali e finali, intraprese

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 29-Analisi della potenza statistica vers. 1.0 (12 dicembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema Pagina: 1 e-travel ING SW Progetto di Ingegneria del Software e-travel Requisiti Utente Specifiche Funzionali del Sistema e Pagina: 2 di 9 Indice dei contenuti 1 INTRODUZIONE... 3 1.1 SCOPO DEL DOCUMENTO...

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Test d ipotesi. Statistica e biometria. D. Bertacchi. Test d ipotesi

Test d ipotesi. Statistica e biometria. D. Bertacchi. Test d ipotesi In molte situazioni una raccolta di dati (=esiti di esperimenti aleatori) viene fatta per prendere delle decisioni sulla base di quei dati. Ad esempio sperimentazioni su un nuovo farmaco per decidere se

Dettagli

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto

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

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Gestione Turni. Introduzione

Gestione Turni. Introduzione Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente

Dettagli

1. Limite finito di una funzione in un punto

1. Limite finito di una funzione in un punto . Limite finito di una funzione in un punto Consideriamo la funzione: f ( ) = il cui dominio risulta essere R {}, e quindi il valore di f ( ) non è calcolabile in =. Quest affermazione tuttavia non esaurisce

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

Dettagli

Fondamenti e didattica di Matematica Finanziaria

Fondamenti e didattica di Matematica Finanziaria Fondamenti e didattica di Matematica Finanziaria Silvana Stefani Piazza dell Ateneo Nuovo 1-20126 MILANO U6-368 silvana.stefani@unimib.it 1 Unità 9 Contenuti della lezione Operazioni finanziarie, criterio

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

Dettagli