La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità.
|
|
- Niccoletta Vitale
- 8 anni fa
- Visualizzazioni
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
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
DettagliAutomazione 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
DettagliSistemi 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
DettagliEsercizi 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à
DettagliCorrettezza. 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
DettagliTesting: 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
DettagliSoftware 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
DettagliVerifica 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
DettagliPiano 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.
DettagliCollaudo 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
DettagliCapitolo 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:
DettagliIntroduzione 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
DettagliSommario. 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
DettagliSoluzione 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
DettagliVerifica 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
DettagliFasi 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
DettagliLA 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
DettagliStimare 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
DettagliCAPITOLO 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
DettagliConcetti 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
DettagliMetodologie 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
DettagliConfiguration Management
Configuration Management Obiettivi Obiettivo del Configuration Management è di fornire un modello logico dell infrastruttura informatica identificando, controllando, mantenendo e verificando le versioni
DettagliUniversità 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
DettagliFunzioni 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
DettagliUn 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.
DettagliIndice 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)
DettagliAppunti 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
DettagliEsempi 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
DettagliUTILIZZATORI 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
DettagliDeterminare 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
DettagliLaboratorio 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 -----------------------------------------------------------
DettagliRISOLUTORE 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
DettagliREGOLAZIONE (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
DettagliGenerazione 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:
DettagliAnalisi 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
DettagliIng. 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
DettagliAlgoritmi 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
DettagliDatabase. 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
DettagliINTRODUZIONE 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.
DettagliCAPACITÀ 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
DettagliSiamo 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
DettagliLa 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
DettagliCapitolo 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
DettagliStrumenti 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?
DettagliCorso 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
DettagliVerifica 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
DettagliProf. 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
Dettagli11. 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,
Dettagli1. 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,
DettagliLA 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,
DettagliCiclo 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
Dettaglif(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
DettagliAppendice 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,
DettagliOrganizzazione 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
DettagliLa 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
DettagliEsempi 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
DettagliOSSERVAZIONI 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
Dettaglirisulta (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
DettagliPowerSchedo. 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
DettagliCHIUSURE 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:
DettagliPROBABILITÀ - 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À -
DettagliIL 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
DettagliCOMUNE 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
DettagliSoftware 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
DettagliGestione 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
DettagliIL 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
DettagliCapitolo 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
DettagliIl 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
DettagliLezioni 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ò
DettagliVC-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
DettagliPrevenzione 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:
DettagliVerifica 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)
DettagliIntroduzione 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
DettagliEsercizio 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
DettagliUniversità 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
DettagliALGEBRA 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
Dettagli13. 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
DettagliIl 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
DettagliLaboratorio 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
DettagliLogica 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
DettagliE 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
DettagliUso 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
DettagliSISTEMI 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
DettagliProject 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
DettagliElementi 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
Dettagli4 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
DettagliING 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...
DettagliGuida 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-
Dettagli5.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
DettagliAPPUNTI 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....................................
DettagliDispensa 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.
DettagliTest 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
DettagliAlla 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
DettagliLezione 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
DettagliScheduling 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
DettagliGestione 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
Dettagli1. 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
DettagliCALCOLO 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,
DettagliFondamenti 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
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