Verifica e Validazione del Software
|
|
|
- Regina Rubino
- 8 anni fa
- Просмотров:
Транскрипт
1 Verifica e Validazione del Software Testing processes Ingegneria del Software 2 Testing Processes 1
2 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli (più dettagliato sui processi) Pressman, Principi di Ingegneria del Software, 5 edizione, Capitoli Ghezzi, Jazazeri, Mandrioli, Ingegneria del Software, 2 edizione, Capitolo 6 (più dettagliato sulle tecniche) Ingegneria del Software 2 Testing Processes 2
3 Modello V R equir ements specifica tion S ystem specifica tion S ystem design Detailed design Acceptance test plan S ystem integ r a tion test plan Sub-system integ r a tion test plan Module and unit code and test Service Acceptance test S ystem integ r a tion test Sub-system integ r a tion test Ingegneria del Software 2 Testing Processes 3
4 Test Driven Development (TDD) Ingegneria del Software 2 4 Metodi Agili
5 Riferimenti S. Amber. Introduction to Test Driven Development (TDD). (online community/forum for TDD) D. Janzen, Test-Driven Development:Concepts, Taxonomy,and Future Direction, IEEE Computer Ingegneria del Software 2 5
6 Cosa significa TDD? È un approccio evolutivo allo sviluppo software in cui si scrive prima un test che fallisce, e poi si scrive il relativo codice. Differisce dagli approcci tradizionali, in cui prima si scrive il codice e poi (forse) lo si testa. Ingegneria del Software 2 6
7 La soluzione offerta dal TDD Ciclo di sviluppo Tradizionale Design Code Test Sviluppo con TDD Test Code Design Ingegneria del Software 2 7
8 Cosa è il TDD TDD è uno stile di sviluppo/ progettazione, non è una tecnica di testing In TDD la programmazione e lo unit test non sono attività separate In TDD, si può scrivere nuovo codice solo se un test automatico è fallito TDD Mantra: Only ever write code to fix a failing test Ingegneria del Software 2 8
9 Vantaggi del TDD Permette di scrivere software migliore e più rapidamente (costruendo software in piccoli incrementi- 1 test per volta) Evita la paura nello sviluppatore che : induce a procedere per tentativi fa comunicare meno fa temere il feedback rende acidi! Ingegneria del Software 2 9
10 Vantaggi Produce codice pulito e che funziona (in modo opposto allo sviluppo architecture driven, in cui si fanno prima tutte le decisioni) Consente agli sviluppatori di produrre un insieme di test di regressione automatizzabili, man mano che sviluppano Ingegneria del Software 2 10
11 Qualità interna col TDD La presenza di difetti nel codice può dipendere dalla mancanza di test, o dalla mancata esecuzione di test che abbiano evidenziato tali difetti. Invece: Col TDD non ci sarà mai, praticamente, una parte di codice non testata Scrivendo i test prima del codice, si è portati a cercare test che esercitano sia i casi normali, che i casi limite e di errore Si riduce il tempo per la correzione dei difetti (si sa esattamente quali nuove linee possano aver fatto fallire il test: non serve neanche il debugger!) Ingegneria del Software 2 11
12 Il Ciclo di Sviluppo TDD RED GREEN REFACTOR TEST-DRIVEN APPROACH Scrivi un test che non funzionerà (red) Fai in modo che il test funzioni, scrivendo solo il codice necessario a superarlo (green) Migliora (restructuring - refactoring) il codice ed i test Esegui tutti i test per assicurarsi che non ci siano problemi Ripeti finchè non trovi altri test Ingegneria del Software 2 12
13 Livelli di Testing System Testing in tre stage Simulation stage Il software viene testato in isolamento in un ambiente completamente simulato Prototyping stage L ambiente reale inizia a rimpiazzare quello simulato, ma il software è eseguito sempre su di un emulatore Un emulatore è un componente software che emula il comportamento di un componente reale da cui il software da testare dipende Pre-production stage Il software è eseguito su di un device reale in un ambiente reale Ingegneria del Software 2 Testing Automation 13 13
14 Livello produttore-utente privilegiato Alpha testing: uso del sistema da parte di utenti reali ma nell'ambiente di produzione e prima della immissione sul mercato. Beta Testing: installazione ed uso del sistema in ambiente reale prima della immissione sul mercato. tipicamente adottati dai produttori di packages per mercato di massa! Ingegneria del Software 2 Testing Processes 14
15 Testing di Accettazione Testing effettuato sull intero sistema sulla base di un piano e di procedure approvate dal cliente (o utente); l obiettivo é quello di mettere il cliente, l'utente o altri a ciò preposti (collaudatori o enti ad hoc) in condizione di decidere se accettare il prodotto; Occorre provare che il software fornisce tutte le funzionalità, le prestazioni, l affidabilità, etc. richieste, e che non fallisca. É in genere un testing black-box (a scatola nera): Basato solo sulle specifiche del software; I Tester non accedono al suo codice. è a carico del committente;.. è più 'una dimostrazione che un test' Ingegneria del Software 2 Testing Processes 15
16 Il Testing dei Requisiti Non Funzionali Ingegneria del Software 2 Testing Processes 16
17 Performance testing Dopo che il sistema è stato completamente integrato, è possibile testarne le proprietà emergenti, come le prestazioni ed affidabilità. I test di prestazione in genere riguardano il carico e si pianificano test in cui il carico viene incrementato progressivamente finché le prestazioni diventano inaccettabili. Il carico deve essere progettato in modo da rispecchiare le normali condizioni di utilizzo. Ingegneria del Software 2 Testing Processes 17
18 Stress testing Nello stress testing si sollecita il sistema con un carico superiore a quello massimo previsto: in queste condizioni in genere i difetti vengono alla luce. Stressando il sistema si può testare il comportamento in caso di fallimento. L eventuale fallimento dovrebbe essere leggero e non produrre effetti catastrofici. Si deve controllare che non ci siano perdite inaccettabili di servizio e di dati. Lo Stress testing è particolarmente rilevante per sistemi distribuiti che possono mostrare severe degradazioni delle prestazioni quando la rete è sommersa di richieste. Ingegneria del Software 2 Testing Processes 18
19 Altri tipi di Testing (di requisiti Non-Funzionali) Testing di Compatibilità Consiste nel provare la stessa applicazione al variare di diversi sistemi e piattaforme e al variare di diverse configurazioni E difficilissimo poter testare su tutte le piattaforme possibili In ogni caso, è impossibile testare sulle piattaforme di futura generazione! Ogni applicazione dovrebbe dichiarare l insieme di piattaforme per le quali è stata testata la compatibilità Testing di Accessibilità Consiste nel verificare che sia possibile l accesso ai contenuti dell applicazione in presenza di capacità hardware/software ridotte (sul lato client) e di disabilità dell utente Particolarmente importante per applicazioni Web, in particolare per quelle dirette ad un pubblico globale (es.: applicazioni istituzionali) Esistono standard nazionali (es.: Legge Stanca) e internazionali (es.: W3C) contenenti requisiti di accessibilità a regole da verificare Ingegneria del Software 2 Testing Processes 19
20 Altri tipi di Testing Testing di Sicurezza Consiste nel verificare l efficacia del sistema nel difendersi e prevenire accessi da utenti non autorizzati, utilizzo improprio delle risorse, etc. Studiato a fondo nell esame di Security (and Dependability) Testing di Usabilità consiste nel verificare e misurare l usabilità dell applicazione per gli utenti, valutando se soddisfa degli standard minimi La misura dell usabilità non è completamente una misura oggettiva, per cui deve essere valutata con metodologie statistiche Ingegneria del Software 2 Testing Processes 20
14. Verifica e Validazione
14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dell utente? Introdurremo i concetti di verifica e validazione Descriveremo le fasi del processo di testing Parleremo
3. Ciclo di Vita e Processi di Sviluppo
3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di
Gestione dello sviluppo software Modelli Base
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_1 V1.0 Gestione dello sviluppo software Modelli Base Il contenuto
Ingegneria del Software
Ingegneria del Software Introduzione e Concetti Fondamentali Porfirio Tramontana, 2009 Corso di Ingegneria del Software Slide 1 Riferimenti Ian Sommerville, Ingegneria del Software, Capitolo 1 Porfirio
Lo sviluppo del progetto informatico
Lo sviluppo del progetto informatico Il progetto Il controllo di qualità Le qualità per i prodotti di software Le figure professionali La metodologia La conoscenza degli obiettivi L analisi La progettazione
Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven
Tesi di laurea in Informatica Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven Relatore Ch.mo Prof. Giuseppe Trautteur Candidato Gioacchino Del
Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1
Modelli di processo Ciclo di vita di un prodotto sw = tutte le fasi che accompagnano tale prodotto dal concepimento dell idea dello stesso fino al suo ritiro Modello di processo = tentativo di organizzare
La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013
La Raccolta dei Requisiti Corso di Ingegneria del Software Anno Accademico 2012/2013 Introduzione La raccolta dei requisiti è il processo della determinazione in forma testuale (anche grafica) di che cosa
Il coinvolgimento del cliente finale nel processo produttivo dei servizi digitali: mito o realtà? Software Testing Forum 2016 Milano 16 Giugno
Il coinvolgimento del cliente finale nel processo produttivo dei servizi digitali: mito o realtà? Software Testing Forum 2016 Milano 16 Giugno La Mission IQ Zone IQ Zone è il TCOE di Clariter che aiuta
Strumenti per l automazione del testing di applicazioni web Javascript-based
tesi di laurea Strumenti per l automazione del testing di applicazioni web Javascript-based Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana 1 candidato Salvatore Agnello Matr. 41/2612
Analisi e specifica dei requisiti
Analisi e specifica dei requisiti Processo che stabilisce i servizi che il committente richiede al sistema da sviluppare ed i vincoli con cui lo si utilizzera` e sviluppera` Requisiti funzionali o non
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)
Collaudo e qualità del software Quali test eseguire
Collaudo e qualità del software Relatore Ercole Colonese Roma, Tipologie di test Temi trattati nel libro Modello a V Livelli di testing Tipi di test Test funzionali Test delle funzionalità Test di gestione
Stato dell arte sulle tecniche di testing di Sistemi Embedded
tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Porfirio Tramontana candidato Alfonso Cutolo Matr. 041/3068 Obiettivi Facoltà di Ingegneria Obiettivi Ordinare e descrivere in maniera metodologica
Il concetto di sicurezza informatica: le politiche di contrasto alla criminalità informatica
Il concetto di sicurezza informatica: le politiche di contrasto alla criminalità informatica Autore: Guzzo Antonio In: Informatica giuridica La sicurezza in senso lato e nell ambito della cosiddetta Scienza
Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Motivazioni 1
Lezione 1 Ingegneria del Software II- Introduzione e Motivazione Ingegneria del Software 2 Introduzione e Motivazioni 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.1
Materiale didattico. Sommario
Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
L AFFIDABILITA NELLA FASE DI PRODUZIONE
9. L AFFIDABILITA NELLA FASE DI PRODUZIONE Ed.1 del 14/09/98 Rev. 3 del 08/09/00 AFFIDABILITA' DI COMPONENTI E SCHEDE ELETTRONICHE-sez 9 1 L AFFIDABILITA IN PRODUZIONE ATTIVITA CHIAVE PER L AFFIDABILITA
13. Verifica e Validazione del Software
13. Verifica e Validazione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 13. Verifica e Validazione del Software 1 / 13 Verifica e Validazione
Capitolo I1: Laboratorio con DevC++
1. Introduzione DevC++ è un ambiente di sviluppo integrato (IDE, ovvero Integrated Development Environment) che permette di scrivere e verificare programmi in linguaggio C o C++, sia in modalità Windows
Ciclo di vita per lo sviluppo di software sicuro
Ciclo di vita per lo sviluppo di software sicuro (a cura di Roberto Ugolini Postecom Spa) Security Service Unit Documento pubblico Le motivazioni del cambiamento 1/3 2 Aumentare il livello di sicurezza
Non rischiate, scegliete la miglior soluzione per client desktop e portatili CLIENT SECURITY
Non rischiate, scegliete la miglior soluzione per client desktop e portatili CLIENT SECURITY Un software aggiornato è il segreto della sicurezza L 83% [1] dei primi dieci malware potrebbe essere evitato
Gestione della Concorrenza
Corso di Complementi di Basi di Dati Gestione della Concorrenza Angelo Montanari 1 Anomalie delle transazioni concorrenti -1 Perdita di aggiornamento Lettura sporca Aggiornamento fantasma 2 2 Anomalie
Modelli di Ciclo di Vita del Software (CVS)
Modelli di Ciclo di Vita del Software (CVS) Una morfologia dell organizzazione del lavoro nelle fabbriche del software: fasi della produzione, tipi di attività, collegamento ed interfacciamento, pianificazione,
Nell ambito quindi di un ulteriore potenziamento della propria struttura, Klopotek Software & Technology Services S.r.l.
Frontend Developer Rif. FD All interno di un ambiente internazionale, la risorsa, riportando direttamente al Development Manager, farà parte del team dedicato al disegno ed all implementazione della nuova
Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.
Modello Code and fix Processo parte III Leggere Sez. 7.4 Ghezzi et al. Modello iniziale Iterazione di due passi scrittura del codice correzione degli errori Problemi: dopo una serie di cambiamenti, la
Integrated Architecture Tools
Integrated Architecture Tools Francesco Tagliazucchi Commercial Engineer IA Italia 1 Tipico ciclo di vita del progetto 1. VALUTARE 2. PROGETTARE La disponibilità di tecnologie che apportano reali vantaggi
CICLO DI VITA DEL PROGETTO
Minimaster in PROJECT MANAGEMENT CICLO DI VITA DEL PROGETTO Giovanni Francesco Salamone COMPETENZE TECNICHE CICLO DI VITA DEL PROGETTO ( ICB 3 - Elemento 1.11 ) Giovanni Francesco Salamone Ottobre 2009
INTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Per dubbi/domande 2 [email protected] Modelli di Cicli
Il nuovo riuso. L Innovazione in Campania
L Innovazione in Campania Risultati e sviluppi futuri degli Accordi di Programma Quadro per l e-government e la Società dell Informazione ] 22 maggio 2009 Il Maurizio Coppola Regione Campania - Dirigente
Organizzazione e Project Management Vincenzo Corvello
3 Gestione dei Progetti Organizzazione e Project Management Vincenzo Corvello 2 Organizzazioni e Project Management 1. I Progetti sono attività complesse e uniche svolte da individui e, soprattutto, da
Università di Pisa Facoltà di Scienze Matematiche Fisiche e Naturali
Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica (classe 23/S: Informatica) Corso di Laurea Specialistica in Tecnologie Informatiche (classe 23/S: Informatica)
Sviluppo di un'interfaccia grafica per l'automatizzazione di campagne di software fault injection. relatore Ch.mo prof.
tesi di laurea triennale Sviluppo di un'interfaccia grafica per l'automatizzazione di campagne Anno Accademico 2010/2011 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Roberto Natella candidato
L ESPERIENZA della REGIONE TOSCANA
L ESPERIENZA della REGIONE TOSCANA Dr. Rolando Giomarelli Az. Usl 7 di Siena Componente del Gruppo di Lavoro Regione Toscana validazione sito www.coperturasicura.toscana.it Dr. Rolando Giomarelli Az. Usl
Cosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati
Basi di Dati Cosa vuol dire progettare una base di dati? Il DBMS non va progettato il DBMS si acquista o esiste già è impossibile pensare di sviluppare un DBMS anni di sviluppo necessità di elevate competenze
Software Embedded Integration Testing. Ing. Matteo Maglio Milano, 17 Febbraio 2011
Software Embedded Integration Testing Ing. Matteo Maglio Milano, 17 Febbraio 2011 Chi siamo Skytechnology è una società di ingegneria che opera nell area dei sistemi embedded aiutando i propri Clienti
LA MECCATRONICA E L AUTOMAZIONE PER LA FABBRICA DEL FUTURO
LA MECCATRONICA E L AUTOMAZIONE PER LA FABBRICA DEL FUTURO Prof. Alessandro Gasparetto [email protected] Workshop Verso la fabbrica intelligente Udine, 27 Novembre 2014 Che cos è la meccatronica? La
INTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Modelli di Cicli di vita 2 Mostrano come le attività sono
scopri il nostro mondo
scopri il nostro mondo Profilo HRSflow, divisione del gruppo INglass, progetta e realizza su scala mondiale sistemi a canale caldo per lo stampaggio ad iniezione di materiale plastico. L azienda supporta
Il PROCESSO UNIFICATO
Corsi di laurea triennale in Ingegneria Informatica Corso di Ingegneria del software Il PROCESSO UNIFICATO Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante
Disegno di Macchine. Docente: ing. Francesca Campana
Disegno di Macchine Docente: ing. Francesca Campana Ruolo del disegno Tecnico, Tecniche di rappresentazione: Assonometrie, Spaccati e Viste Esplose, Messe in Tavola mediante proiezioni ortogonali. CAD
