Programmazione Orientata agli Oggetti in Linguaggio Java

Documenti analoghi
Tecnologie di Sviluppo per il Web

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++

Tecnologie di Sviluppo per il Web

Programmazione Procedurale in Linguaggio C++

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione ai Calcolatori Elettronici

Tecnologie di Sviluppo per il Web

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Reti di calcolatori Introduzione al corso

Programmazione Procedurale in Linguaggio C++

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Procedurale in Linguaggio C++

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Introduzione alla rete Internet

Tecnologie di Sviluppo per il Web

Programmazione Orientata agli Oggetti in Linguaggio Java

Tecnologie di Sviluppo per il Web

Introduzione alla rete Internet

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Il problema dello zaino

Tecnologie di Sviluppo per il Web

Programmazione Orientata agli Oggetti in Linguaggio Java

Tecnologie di Sviluppo per il Web

Mappatura dei canali logici sui canali fisici

Programmazione Procedurale in Linguaggio C++

Web Content Management and E- Learning

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

utente: collezione di contenuti e servizi sviluppatore: pagine e applicazioni

UMTS e IMT Copyright. Architettura dell interfaccia radio. Reti cellulari a larga banda, ovvero la terza generazione

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione alla rete Internet

Esercizi di Algoritmi e Strutture Dati

Programmazione Orientata agli Oggetti in Linguaggio Java

Tecnologie di Sviluppo per il Web

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna

Analisi e Progettazione del Software

Programmazione Orientata agli Oggetti in Linguaggio Java

The project.

Introduzione ai Calcolatori Elettronici

Business Idea o Formula Imprenditoriale

Sicurezza e Gestione delle Reti (di telecomunicazioni)

Laboratorio di Informatica

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web

RETI DI CALCOLATORI - Reti locali

Inetd e TCP Wrappers

Introduzione alle Reti Telematiche

Il linguaggio di programmazione Python

Corso Programmazione

Introduzione ai calcolatori Elettronici

Materiale didattico. Sommario

Pratiche di XP [Beck] Extreme Programming (XP) Story Card. Gioco di pianificazione

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Linguaggio C Debugging

RETI WIRELESS. Introduzione e tipologia delle reti wireless Standard per reti wireless RETI RADIOMOBILI. Copyright Gruppo Reti - Politecnico di Torino

Tecnologie di Sviluppo per il Web Lab. di Tecnologie di Sviluppo Web

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Laboratorio di Informatica

Programmazione Orientata agli Oggetti in Linguaggio Java

Permessi, utenti e gruppi

Tecnologie di Sviluppo per il Web

ImoLUG. [ Corso Linux: Lezione 2 ]

Andrea Pasquinucci. Aspetti di Crittografia Moderna. Da DES alla Crittografia Quantistica

I linguaggi di programmazione

Programmazione Orientata agli Oggetti in Linguaggio Java

Basi territoriali e numeri civici come infrastrutture informative per il censimento e oltre

Tecnologie di Sviluppo per il Web

Rappresentazione con i diagrammi di flusso (Flow - chart)

Introduzione ai Calcolatori Elettronici

Federico Laschi. Conclusioni

Come fare il debug di query SQL complicate usando le CTE scrivibili

Fondamenti VBA. Che cos è VBA

Programmazione in Python. Moreno Marzolla

Strumenti per l automazione del testing di applicazioni web Javascript-based

Tecnologie di Sviluppo per il Web

Domande di verifica su crittografia e Firma Digitale Esercitazione 15 Novembre per esame 2014 IC DAC 1 / 15

COORDINATE NEL TERRITORIO ITALIANO: NOZIONI OPERATIVE

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Alberto Montresor Università di Trento

Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven

Algoritmi e Strutture Dati

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

2 Lavorare con Eclipse

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Tecnologie dei Sistemi di Automazione

Management dell innovazione tecnologica

Transcript:

Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it Test e Correzione: Introduzione >> Sommario Sommario Panoramica Correttezza In Queste Lezioni 2

Test e Correzione: Introduzione >> Sommario Panoramica In questo modulo continuiamo a parlare di tecniche e strumenti per ottenere codice di qualità In particolare ci concentriamo su due qualità fondamentali la correttezza la manutenibilità 3 Test e Correzione: Introduzione >> Correttezza Correttezza Un obiettivo di qualità a breve termine la correttezza il software deve implementare interamente e correttamente le specifiche ovvero realizzare correttamente i casi d uso Le tecniche fondamentali lo strumento principale per le verifiche di correttezza sono i test e il debugging (correzione) 4

Test e Correzione: Introduzione >> Correttezza Correttezza Verificare il codice con i test il gruppo di sviluppo deve mettere a punto un piano dei test che deve essere eseguito con regolarità spesso c è un gruppo di lavoro appositamente destinato a effettuare test Attenzione il piano dei test deve verificare la robustezza del codice 5 Test e Correzione: Introduzione >> Correttezza Correttezza Correggere il codice quando viene rilevato un errore logico ( bug ) attraverso i test o attraverso prove interattive è necessario procedere al debugging Due tecniche fondamentali utilizzo di un debugger utilizzo di stampe di debug 6

Test e Correzione: Introduzione >> Ma esiste un altra prospettiva Un obiettivo di qualità a lungo termine la manutenibilità La regola n. 1 del programmatore le specifiche cambiano con il tempo e i sistemi software si devono adattare la possibilità di adeguare facilmente e rapidamente il codice alle nuove specifiche è una caratteristica essenziale >> alcuni esempi 7 Test e Correzione: Introduzione >> Di conseguenza la qualità deve essere perseguita nel tempo mantenendo alto il livello del codice anche in caso di modifica delle specifiche Adattarsi ai cambiamenti una massima dell extreme Programming essere consapevoli che il software cambia e adottare strumenti adeguati a gestire i cambiamenti mantenendo alta la qualità 8

Test e Correzione: Introduzione >> Per garantire la manutenibilità alcune caratteristiche essenziali Tecniche per migliorare la manutenibilità curare l organizzazione del codice >> ruoli e responsabilità curare la leggibilità del codice >> convenzioni di stile automatizzare i test semplificare il debugging 9 Test e Correzione: Introduzione >> Automatizzare i test effettuare modifiche al codice potenzialmente introduce nuovi errori è indispensabile eseguire il piano dei test dopo ciascuna modifica effettuata, soprattutto a distanza di tempo questo obiettivo è raggiungibile solo se i test sono automatizzati ovvero se sono test di regressione 10

Test e Correzione: Introduzione >> Test di regressione test completamente automatizzato eseguibile rapidamente, ripetutamente, senza intervento interattivo Obiettivo ripetere frequentemente l esecuzione dei test per intercettare eventuali regressioni (passi indietro) introdotti nel codice dalle modifiche 11 Test e Correzione: Introduzione >> In caso di bug (errori) è necessario procedere al debugging se il software si evolve, è un attività che può avvenire frequentemente è indispensabile utilizzare strumenti semplici ed efficaci che consentano di effettuare rapidamente il debugging 12

Test e Correzione: Introduzione >> Correttezza Correttezza Sistema di logging sistema che permette di includere nel codice stampe di debug, che descrivono il funzionamento dell applicazione e di produrle solo su richiesta dell utente (durante le sessioni di correzione) oltre che in formati e su supporti diversi escludendole nelle versioni in produzione 13 Test e Correzione: Introduzione >> In Queste Lezioni In Queste Lezioni In questo ciclo di lezioni sviluppo di test di regressione e strumenti collegati (framework per il test) utilizzo di tecniche di logging e debugging e strumenti collegati (debugger, framework per il logging) 14

Test e Correzione: Introduzione >> In Queste Lezioni In Queste Lezioni I progetti di riferimento tutti quelli visti in precedenza Infatti tutti i progetti dei moduli precedenti sono stati sviluppati con test di regressione In questo modulo concludiamo la discussione del codice discutendo sintassi e semantica dei test 15 Test e Correzione: Introduzione >> Sommario Riassumendo Panoramica Correttezza In Queste Lezioni 16

Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 17