Verifica parte IIC. Rif. Ghezzi et al
|
|
- Agata Mazzoni
- 5 anni fa
- Visualizzazioni
Transcript
1 Verifica parte IIC Rif. Ghezzi et al
2 Sommario (recap) Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione
3 Test funzionali (black box) l Il test white-box non rileva la mancata implementazione di funzionalità. l Test black-box, basati sulla specifica di un programma, anziché sulla loro implementazione. l I test set si individuano in base a casistiche ricavate dalla specifica (formale o informale). Verifica 2C 3
4 Esempio di specifica Il programma riceve in ingresso una registrazione che descrive una fattura (viene fornita una descrizione dettagliata del formato della registrazione). La fattura deve essere inserita in un file di fatture ordinato per data. La fattura deve essere inserita nella posizione corretta del file. Se esistono altre fatture che riportano la stessa data, la nuova fattura deve essere inserita dopo l ultima già presente. Inoltre devono essere eseguite alcune verifiche di coerenza: il programma dovrebbe verificare se il cliente è già presente nel corrispondente archivio dei clienti, se i dati del cliente nei due file corrispondono, etc. Verifica 2C 4
5 Approccio intuitivo al test 1. Si fornisce una fattura la cui data corrisponde alla data corrente 2. Si fornisce una fattura la cui data precede la data corrente (illegale?). Sottocasi: 1. Fattura con stessa data di una fattura già presente 2. Fattura con data diversa da tutte quelle già presenti 3. Si forniscono diverse fatture scorrette Verifica 2C 5
6 Tecniche sistematiche black-box l Test guidato da specifiche logiche l Test guidato da sintassi l Test basato su tavole di decisione l Test basato su grafi causa-effetto Verifica 2C 6
7 Specifica logica l x, z: variabili di tipo invoice (strutture con campi customer, amount, date, etc.) l current_date: il giorno in cui un operazione viene eseguita l f: variabile di tipo invoice_file. f(i) i-esimo elemento di f. l file di tipo customer_file, etc. Verifica 2C 7
8 Specifica logica l dato un file f di record (senza ripetizioni) e un record x, pos(x,f) restituisce la posizione i di x in f l predicato sorted_by_date con argomento di tipo invoice_file: sorted_by_date(y) º" i,j in Integers (i<j f(i).date f(j).date) l result e warning: variabili booleane che indicano rispettivamente successo e anomalia di un operazione di inserimento Verifica 2C 8
9 Specifica logica for all x in Invoices, f in Invoice_Files {sorted_by_date(f) and not exist j, k (j k and f(j) =f(k)} insert(x, f) {sorted_by_date(f) and for all k (old_f(k) = z implies exists j (f(j) = z)) and for all k (f(k) = z and z x) implies exists j (old_f(j) = z) and exists j (f(j).date = x.date and f(j) x) implies j < pos(x, f) and result º x.customer belongs_to customer_file and warning º (x belongs_to old_f or x.date < current_date or...) } Verifica 2C 9
10 Riscrittura della postcondizione TRUE implies sorted_by_date(f) and for all k old_f(k) = z implies exists j (f(j) = z) and for all k (f(k) = z and z x) implies exists j (old_f(j) = z) and (x.customer belongs_to customer_file) implies result and not (x.customer belongs_to customer_file and...) implies not result and x belongs_to old_f implies warning and x.date < current_date implies warning and... Verifica 2C 10
11 Applicazione del criterio di copertura delle condizioni l Qualunque caso di test: verifica che il file contenga solo le fatture precedenti e quella nuova, e che sia ordinato l Almeno un caso di test in cui il campo customer di una fattura è presente in customer_file, e uno in cui è assente l Almeno un caso di test in cui il campo date della fattura è lo stesso di una fattura esistente, e uno in cui non lo è Verifica 2C 11
12 Test syntax-driven l Utilizzato nella verifica di compilatori (e di altri software basati su linguaggi formali). l Grammatica utilizzata per definire insiemi di test. l Esempio: test set in cui ogni produzione sintattica BNF è utilizzata almeno una volta. Verifica 2C 12
13 Test syntax-driven l Interprete per il seguente linguaggio: <expression> ::= <expression> + <term> <expression> - <term> <term> <term> ::= <term> * <factor> <term> / <factor> <factor> <factor> ::= ident ( <expression>) Verifica 2C 13
14 Test syntax-driven l Applicazione del principio di completa copertura alle regole della grammatica l Generazione di un test per ogni regola della grammatica l Alcuni test possono coprire più di una regola l La specifica è formale, quindi la generazione del test può essere automatizzata Verifica 2C 14
15 Esempio l Regola da testare <term> ::= <term> * <factor> l Produzione di un caso di test: l <expression> Þ l <expression> + <term> Þ Partenza dallo scopo della grammatica Utilizzo della regola l <expression> + <term> * <factor> Þ l <term> + <term> * <factor> Þ l <factor> + <factor> * <factor> Þ l ident + ident * ident Verifica 2C 15
16 Test basato su tabelle di decisione Le tabelle di decisione sono un formalismo semplice per descrivere come combinazioni diverse di ingressi possono generare uscite diverse Verifica 2C 17
17 Test basato su tabelle di decisione: specifica Il word processor può presentare le porzioni di testo in tre formati diversi: testo normale (plain, p), testo in grassetto (boldface, b) e testo in corsivo (italics, i). I seguenti comandi possono essere applicati a ciascuna porzione del testo: rendere il testo normale (P), rendere il testo in grassetto (B), rendere il testo in corsivo (I), enfatizzare (E) e super-enfatizzare (SE). Esistono, inoltre, comandi per specificare dinamicamente il fatto che E possa significare o B o I (questi comandi vengono denotati rispettivamente come E = B e E = I). Analogamente si può specificare dinamicamente che SE indichi B (comando SE = B), I (comando SE = I) o B e I (comando SE = B + I). Verifica 2C 18
18 Tabella di decisione P B I E SE E = B E = I SE = B SE = I SE = B + I ac tion * * * * * * * * * * * * * * * p b i b i b i b,i b,i Righe rappresentano condizioni Colonne rappresentano regole: azioni come risultato delle condizioni Esplosione di casi di tesi Verifica 2C 19
19 Test l Applicazione del principio di completa copertura: generazione dei test in modo da esercitare ogni colonna. l Applicazione esaustiva può essere molto costosa: in generale, a n condizioni possono corrispondere 2 n colonne Verifica 2C 20
20 Grafi causa-effetto l n condizioni, m effetti l Fissato un ordine per le condizioni, (es.: B, I, P, E, SE, E=B, E=I, SE=B, SE=I, SE=B+I) un comando di ingresso (combinazione di condizioni) si può rappresentare come n-pla di variabili booleane (es.: E=B ed E come <f,f,f,t,f,t,f,f,f,f>) l Fissato un ordine per gli effetti (es.: b, p, i), un uscita (combinazione di effetti) come m-pla di variabili booleane (es. p come <f,f,t>) Verifica 2C 21
21 Grafi causa-effetto Relazione ingresso-uscita come funzione booleana (es. grafico and/or) B I P O R b E E = B SE A N D i E = I SE = B SE = I O R A N D p SE = B + I Verifica 2C 22
22 Vincoli fra variabili logiche l e, al più uno; i, almeno uno; o, uno e uno solo; l a richiede (implies) b; a maschera (implies not) b Verifica 2C 23
23 Grafo con vincoli (causa-effetto) B m I P m O R b E E = B A N D i SE E = I SE = B SE = I O R A N D m p m SE = B + I Verifica 2C 24
24 Criterio di copertura l Generare tutte le possibili combinazioni di input e controllare l output rispetto alla specifica. l Esempio: il comando E ed E=B dovrebbe dare l uscita b. l Il grafo può mostrare incoerenza (uscita corrispondente a ingressi inammissibili) e incompletezza (nessun ingresso porta a un uscita ammissibile) Verifica 2C 25
25 Riduzione del numero di test l Per ogni combinazione dei valori di uscita, generazione di alcune combinazioni di input che li generano (scelte euristicamente) e propagazione all indietro. l Nodo OR con output t: l combinazioni con un solo input vero l Nodo AND con output f: l combinazioni con un solo input falso Verifica 2C 26
26 Test di condizioni di confine l Partizione dei domini di input in classi l Sia per il testing white-box che black-box, abbiamo supposto che il comportamento dei programmi per tutti gli elementi di una classe sia simile l Molti errori di programmazione (come l uso di < al posto di ) hanno effetti al confine fra le classi. l Criterio: utilizzo di casi di test al confine fra le classi. Verifica 2C 27
27 Esempio if x > y then else S1 S2 l Suddividendo il dominio nei due casi x>y e x y, spesso si scelgono valori tali che x > y o x < y, trascurando x = y, che sarebbe significativo nel caso dell uso di > al posto di. Verifica 2C 28
28 Il problema dell oracolo l Oracolo: entità in grado di dire se un output è corretto per un dato input. l Necessario per l attività di test. l L unica implementazione dell oracolo potrebbe essere il programma stesso! l Spesso la correttezza è definita in base a proprietà facili da verificare, che possono essere utilizzate come oracolo. Verifica 2C 29
Verifica parte IIA. Rif. Ghezzi et al
Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Test (o analisi dinamica) l Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative l Non può (in generale) essere
Verifica parte IIC. Test funzionali (black box) Specifica. Approccio intuitivo al test
Test funzionli (lck ox) Verific prte IIC if. Ghezzi et l. 6.3.4.2-6.3.4.4 Il test white-ox non rilev l nct ipleentzione di funzionlità. Test sti sull specific di un progr, nziché sull loro ipleentzione.
Verifica parte IIB. Rif. Ghezzi et al
Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Sommario Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test
Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al
Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione
Verifica e Validazione del Software
Verifica e Validazione del Software Testing processes 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato sui processi) Pressman, Principi di Ingegneria del Software,
TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+
TRADUZIONE DI STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ a cura di: Eleonora Antonelli Simone Maletta Stefano Novara INDICE 1. Grammatica di TLA+ a cura di Eleonora Antonelli
Ingegneria del Software 22a. Progettazione delle prove. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 22a. Progettazione delle prove Dipartimento di Informatica Università di Pisa A.A. 2014/15 prova (o collaudo o test) Verifiche (o validazioni) dinamiche attività che prevedono l
Interpreti, compilatori e semantica operazionale
Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione
Linguaggi di programmazione: sintassi e semantica Sintassi fornita con strumenti formali: Semantica spesso data in modo informale
LOGICA DI HOARE INTRODUZIONE Linguaggi di programmazione: sintassi e semantica Sintassi fornita con strumenti formali: es. grammatica in BNF Semantica spesso data in modo informale di stile operazionale
PREPARAZIONE PER SECONDA PROVA IN ITINERE Esercizio 1 SULLA MODELLAZIONE DEI DATI
PREPARAZIONE PER SECONDA PROVA IN ITINERE Esercizio 1 SULLA MODELLAZIONE DEI DATI Si definisca il tipo opportuno di dato per memorizzare una tabella che contenga, per ciascuna delle principali valute (dollaro
Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione
Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma
Logica per la Programmazione
Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,
INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione
INTRODUZIONE ALLA LOGICA DI HOARE Corso di Logica per la Programmazione INTRODUZIONE Dall inizio del corso ad ora abbiamo introdotto, un po alla volta, un linguaggio logico sempre più ricco: connettivi
Logica per la Programmazione
Logica per la Programmazione Lezione 11 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,
Verifica parte IIIC. Esecuzione simbolica. Esempio. Esempio: asserzione
Esecuzione Verifica parte IIIC Rif. Ghezzi et al. 6.5 Approccio intermedio fra analisi e test Consiste nell esecuzione del programma con valori simbolici anziché numerici. Un esecuzione corrisponde all
Risoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
Collaudo del software
Collaudo del software Il software deve essere testato con il preciso scopo di trovare degli errori prima di essere consegnato al cliente Il collaudo è un insieme di attività pianificate per testare il
Linguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
Linguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
Ingegneria del software
Ingegneria del software Non linearità del software Prima di procedere a vedere altri criteri di definizione di casi di test occorre evidenziare alcune caratteristiche del software Una caratteristica fondamentale
Esercitazione 2. Espressioni booleane Il comando if-else
Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in
Implementazione di DFA in C
Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
Logica per la Programmazione
Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Tripla di Hoare soddisfatta A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a.
Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
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
Introduzione alla programmazione nella shell di Unix 10 Maggio 2005
Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Page 1 Shell e programmazione La shell di UNIX definisce un vero e proprio linguaggio di programmazione, le cui caratteristiche principali
Calcolo numerico e programmazione Elementi di logica
Calcolo numerico e programmazione Elementi di logica Tullio Facchinetti 23 marzo 2012 10:50 http://robot.unipv.it/toolleeo Algebra booleana (George Boole (1815-1864)) è definita
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 Algoritmo, programma, processo Algoritmo Programma Processo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Descrizione
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE. Algoritmo, programma, processo
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 Processo sequenziale Sequenza di stati attraverso i quali passa l elaboratore durante l esecuzione di un programma (storia di un processo o traccia dell
Fondamenti di Informatica
Fondamenti di Informatica Prof. Arcangelo Castiglione A.A. 2017/18 Outline Algebra di Boole Relazione con i Circuiti Logici Elementi Costitutivi Operatori Logici Elementari Funzioni Logiche (o Booleane)
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome 1) Il termine informatica viene dalla fusione delle seguenti parole a) informazione
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Dati Conclusioni parte b versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.
Correttezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
Processi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di un
Processi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione 1 Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Verifica e Validazione del Software
Verifica e Validazione del Software Testing White Box Ingegneria del Software 2 Testing White Box 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato sui processi)
Verifica e Validazione del Software
Verifica e Validazione del Software Testing Object Oriented Ingegneria del Software 2 Testing Object Oriented 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato
Algebra Booleana. 13. Rif:
Algebra Booleana Fondatore: George Boole (1815-1864) Boole rilevo le analogie fra oggetti dell'algebra e oggetti della logica l algebra Booleana è il fondamento dei calcoli con circuiti digitali. Rif:
Lezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
ITI M. FARADAY. Programmazione a. s
ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:
Istruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati Prof. Alberto Postiglione Università degli
Descrizione di un algoritmo
Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare
Parte I - Concetti Base ESEMPIO
Informatica Nome e Cognome: Esempio Esame Programma Completo, I Turno 17/12/2015 C. I. Durate: 45 Minuti N. Matricola Questa prova contiene 32 domande. Il punteggio totale è 32. Ogni risposta corretta
Corso di laurea in Informatica (Triennale) A.A. 2002/ 03 Corso di Programmazione (C) Docente: S. Ferilli II esonero (16 dicembre 02)
Corso di laurea in Informatica (Triennale) A.A. 2002/ 03 Corso di Programmazione (C) Docente: S. Ferilli II esonero (16 dicembre 02) Cognome e Nome: Matricola: Esercizio n.1 Specificare intestazione, nidificazione
Validazione attraverso il TESTING Validazione, verifica, debugging e defensing programming
Validazione attraverso il TESTING Validazione, verifica, debugging e defensing programming La parola validazione si riferisce a un processo inteso ad accrescere la nostra fiducia che un programma si comporterà
Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix
Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Programmazione E` possibile memorizzare sequenze di comandi all'interno di le eseguibili: Ad esempio: #!bin/bash echo hello world!
Semantica Operazionale del linguaggio imperativo IMP
Aniello Murano Semantica Operazionale del linguaggio imperativo IMP 2 Lezione n. Parole chiave: Sem. Operazionale Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione
Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano
Automatic generation of test cases
Tecniche Automatiche per la Correttezza del Software 2016/2017 Automatic generation of test cases Prof. Salvatore La Torre Alessandro Sacco Overview Testing Manual Testing vs Automated Testing Generazione
Scopo del laboratorio
p. 1/1 Scopo del laboratorio Imparare ad usare programmi che implementino metodi di ottimizzazione: simplesso, branch and bound ecc. utilizzarli per risolvere un problema proposto Modellatori Solver p.
UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13
UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare
LA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella
LA LOGICA DI HOARE Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella INTRODUZIONE Dall inizio del corso ad ora abbiamo introdotto, un po alla volta, un linguaggio logico
George BOOLE ( ) L algebra booleana. (logica proposizionale)
George BOOLE (1815-64) L algebra booleana. (logica proposizionale) La logica e George BOOLE George BOOLE nel 1847 pubblicò il libro Mathematical Analysis of Logic, nel quale presentava ciò che oggi si
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Unità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
Lezione 5. Sommario. La logica booleana. I principi della logica booleana Gli operatori logici
Lezione 5 La logica booleana Sommario I principi della logica booleana Gli operatori logici 1 Variabili Booleane Variabile booleana=quantità che può assumere solo due valori I due valori hanno il significato
Concetti Introduttivi
Concetti Introduttivi Linguaggi di Programmazione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Linguaggi di Programmazione Impartiscono
Linguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
Le funzioni in JavaScript. Modularizzazione
Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi
Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
Elementi di Base. Introduzione a Python.
Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2013/14
INTRODUZIONE ALLA LOGICA DI HOARE Corso di Logica per la Programmazione A.A. 2013/14 INTRODUZIONE Dall inizio del corso ad ora abbiamo introdotto, un po alla volta, un linguaggio logico sempre più ricco:
Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
LE BASI DI DATI. Prima parte Premesse introduttive I MODELLI DEI DATI
LE BASI DI DATI Prima parte Premesse introduttive I MODELLI DEI DATI MODELLAZIONE DEI DATI Un modello dei dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la natura
ciclo di vita della soluzione (informatica) di un problema
Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti
Simulazione di sistemi non lineari Introduzione a Stateflow
Simulazione di sistemi non lineari Introduzione a Stateflow Gianmaria De Tommasi 1 1 Università degli Studi di Napoli Federico II detommas@unina.it Ottobre 2012 Corsi AnsaldoBreda G. De Tommasi (UNINA)
LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
Programmazione web lato client con JavaScript. Marco Camurri 1
Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'
ciclo di vita della soluzione (informatica) d un problema
ciclo di vita della soluzione (informatica) d un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti ma prima di arrivare a questo 1.
Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense
Circuiti e reti combinatorie Appendice A (libro italiano) + dispense Linguaggio del calcolatore Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e Anche per esprimere
LINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1
ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com
La sezione di dichiarazione delle costanti 1.2 I tipi elementari Classificazione dei tipi Il tipo integer Il tipo boolean
Laboratorio di Programmazione A.A. 2000\2001 La sezione di dichiarazione delle costanti 1.2 I tipi elementari Classificazione dei tipi Il tipo integer Il tipo boolean Editazione a cura di: de Pinto E.
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
Laboratorio di Python
Algoritmo, sulle liste Università di Bologna 3 e 5 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione Correzione esercizi scrivere e documentare un programma con un menu dove:
Linguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
Verifica parte IID. Test in grande. Test e modularità. Test di modulo
Test in grande Verifica parte IID Rif. Ghezzi et al. 6.3.5-6.3.6 Molte delle tecniche viste finora hanno alta complessità, o non sono automatizzabili. Possono quindi essere applicate solo a programmi piccoli,
Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI
Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()
laboratorio di python
laboratorio di python definizioni di booleani, selezione ed uso degli input 13 Marzo 2019 1/32 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che non ha nessun parametro, non restituisce
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Algebra di Boole X Y Z V. Algebra di Boole
L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole che
Logica booleana. Bogdan Maris ( )
Logica booleana 1 Algebra di Boole Opera con i soli valori di verità 0 o 1 (variabili booleane o logiche) La struttura algebrica studiata dall'algebra booleana è finalizzata all'elaborazione di espressioni
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
Laboratorio Programmazione Anno Lezione 3
Laboratorio Programmazione Anno 2012-2013 Lezione 3 Scripting Fino ad ora, per fare esercizi, abbiamo utilizzato l ambiente interattivo di python. È possibile creare dei file contenenti (lunghe) sequenze
11/19/13. Esercizi su verifica. Esercizio 1. Esercizi su verifica 2
Esercizi su verifica Esercizio 1 Esercizi su verifica 2 1 Esercizi su verifica 3 Esercizio 2 Si descriva il risultato di una esecuzione simbolica della seguente procedura ( Pascal (in linguaggio indicando
Testing black box di web service: sperimentazione su di un servizio senza stato
tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Alfredo Monaco Matr. 534/001519 Obiettivi Risulta importante poter valutare se un web service abbia o non abbia
Verifica e Validazione del Software
Verifica e Validazione del Software Testing Black Box Ingegneria del Software 2 Testing Black Box 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato sui processi)
Programmazione di INFORMATICA e Laboratorio
ISIUO ECNICO SAALE settore ECNOLOGICO ad indirizzo: Elettronica ed Elettrotecnica - Informatica e elecomunicazioni Meccanica, Meccatronica ed Energia "VIORIO EMANUELE III" Via Duca della Verdura, 48-90143