La strada per sviluppare più rapidamente: Unit Test & Continuous Integration



Похожие документы
DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Test e collaudo del software Continuous Integration and Testing

Concetti di base di ingegneria del software

Professional PHP Refactoring

L o. Walter Ambu japs: una soluzione agile (

Che cos è un prototipo? Perchè creare prototipi?

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Introduzione al Simple Cloud API

Strumenti di gestione del ciclo di vita del software

Come portare la vostra intranet su IBM i con Drupal e Zend Server

Automazione Industriale (scheduling+mms) scheduling+mms.

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

BackupPC Backup di rete con de-duplicazione

Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici. Prof. Franco Sirovich Dipartimento di Informatica Università di Torino

Strumenti per la gestione della configurazione del software

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

11. Evoluzione del Software

Workflow di Test. Valerio Mercanti - ISP0607 1

lem logic enterprise manager

Reingegnerizzazione del processo di test nel contesto Exprivia

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

RES USER MEETING. L automazione del ciclo di vita dei JCL

Il portale italiano delle classificazioni

PrometeoQualità. Manuale Documenti

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T

12. Evoluzione del Software

Segreteria organizzativa: SALA DEL CONSIGLIO via del Vecchio Politecnico 8

4.1 Che cos è l ideazione

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

Programmazione a Oggetti Modulo B

Progetto Virtualizzazione

Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition

Esempi di algoritmi. Lezione III

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

Rational Unified Process Introduzione

Basi di Dati Relazionali

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A Autori: F.Rabini/F.Spiga

La prima piattaforma per chi insegna e per chi impara l italiano

La Pubblica Amministrazione consumatore di software Open Source

commercialista, consulente del lavoro XBOOK la soluzione per l'organizzazione dello studio professionale

Guida per la creazione e la gestione di un profilo Google Scholar Citations

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Integrazione dei processi aziendali Sistemi ERP e CRM. Alice Pavarani

SOLUZIONE PER L'IDENTIFICAZIONE UNIVOCA DEI DISPOSITIVI DI PTC

L ARMONIZZAZIONE DEI PROCESSI CON IL CLIENTE AL CENTRO

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Programma per l elaborazione delle buste paga. dei collaboratori domestici VERSIONE /07/2010

WINGESFAR A. Una società di

Verso una gestione totalmente digitale dei documenti contabili

MISURARE IL COSTO DELLA VITA. Harcourt Brace & Company

Tecniche di Simulazione: Introduzione. N. Del Buono:

Università degli Studi di Salerno

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti

Cycling Test Cycling Test and Training Incrementale Wingate Curva P/V Critical Power

Sme.UP Qualità e Manutenzione

MANUALE UTENTE GIS ATC MODULO ENERGIA

LE RICERCHE DI MERCATO

Copyright. Rinuncia e limitazione di responsabilità

Test di unità con JUnit4

RiusaLO, la libreria di Learning Object della PA

Sviluppo software guidato dal testing. metodologie e strumenti

Mac Application Manager 1.3 (SOLO PER TIGER)

Introduzione alla Virtualizzazione

Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

NCP Networking Competence Provider Srl Sede legale: Via di Porta Pertusa, Roma Tel: , Fax:

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Gestione Risorse Umane Web Work-flow Selezione

Ciclo di vita del software

Configuration Management

ARTICOLO TECNICO Smart-MED-Parks: il Software

ORACOLO Gestione questionari.

Introduzione all Ingegneria del Software

L IMPORTANZA DEL COACHING NELLE AZIENDE

SOCIAL MEDIA MARKETING 2.0 BUZZ MARKETING NEI SOCIAL MEDIA

Approfondimento: Migrazione dei database e backup della posta

MANUALE PER L UTILIZZO DELLA PROCEDURA DI RESET PASSWORD

Mon Ami 3000 Cespiti Gestione cespiti e calcolo degli ammortamenti

Programmazione Java Avanzata

Rapporto ambientale Anno 2012

2. Ciclo di Vita e Processi di Sviluppo

FIRESHOP.NET. Gestione del taglia e colore.

DESCRIZIONE SOFTWARE ECALL

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

Транскрипт:

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration by Enrico Zimuel Senior Consultant & Architect Zend Technologies Email: enrico.z@zend.com Blog: http://www.zimuel.it/blog Copyright 2007, Zend Technologies Inc.

Sommario Metodologie di sviluppo Introduzione al Testing automatico Il progetto PHPUnit Esempi di Unit Test in Zend Framework Introduzione alla Continuous Integration Il progetto Bamboo

Metodologia di sviluppo Perchè utilizzare una nuova metodologia di sviluppo, Unit Test + Continuous Integration? più confidenti nelle modifiche del software; ripetibilità/predicibilità; modifiche centralizzate, riusabilità del codice; limitare lo scope ad una sola istanza del test. Name of this section 3

Strumenti = IDE per lo sviluppo in PHP = Testing applicazioni PHP = Continuous Integration Name of this section 4

Terminologia Unit Test Il codice da testare Test Il codice che richiama il codice da testare Asserzione Condizione di test Code coverage Le linee di codice che sono state testate Continuous integration L'applicazione continua del controllo di qualità, es. Unit test Name of this section 5

PHPUnit PHPUnit è un framework open source per la creazione di test automatici in PHP Gli obiettivi di PHPUnit sono: facilità d'utilizzo (scrivere, leggere, eseguire test); velocità di esecuzione dei test; creazione di test isolati; test componibili; E' integrato in Zend Studio Per maggiori informazioni: http://www.phpunit.de/ Name of this section 6

Demo: PHPUnit & Zend Studio Esempio di creazione di un test con PHPUnit per un progetto in Zend Framework Integrazione con Zend Studio Funzione di Code Coverage Name of this section 7

Che cos'è la Continuous Integration? Name of this section 8

Il vecchio modello: a cascata Name of this section 9

Problemi del modello a cascata E' difficile individuare tutti i requisiti in un singolo step I requisiti cambiano continuamente Capita spesso di dover tornare indietro, rieseguendo il lavoro più volte I tempi ed i costi di sviluppo sono difficilmente valutabili e tendono sempre ad aumentare Name of this section 10

Un modello migliore: Iterazione 1) Definire i requisiti 2) Specificare i test 3) Implementazione, fintanto che i test risultano positivi 4) Ripetizione degli step Name of this section 11

Vecchia metodologia: creazione manuale di Test Svantaggi: Scrivere documentazione dei test Creazione di test manuali per ogni release Processo lento e non privo di errori Name of this section 12

Un modo migliore: creazione di Test automatici Test del codice... con altro codice Il codice per il testing è importante tanto quanto quello di produzione Esecuzione di test su tutto il progetto per scovare problemi di regressione Economico, veloce, distribuito Name of this section 13

Continuous Integration = Sviluppo iterativo + Test automatici Name of this section 14

Continuous Integration Le modifiche vengono eseguite ad incrementi piccoli e rapidi Ogni volta che si esegue una modifica sul codice si eseguono i test automatici ed il processo di build/rilascio Se tutti i test sono positivi si passa allo step successivo del processo di QA Se I test falliscono gli sviluppatori devono sistemare l'errore immediatamente Name of this section 15

Continuous Integration: vantaggi Migliore rintracciabilità degli errori Incremento della visibilità del progetto Rapidi feedback dagli utenti finali Rilascio incrementale del progetto Risparmio di tempo Definizione di tempistiche reali e fattibili Name of this section 16

Continuous Integration: per lo sviluppatore Gestione dei conflitti istantanea Ultima versione del progetto sembre disponibile L'aggiornamento frequente facilita ed incoraggia la creazione di moduli semplici Le metriche sul processo di CI migliorano la qualità del codice Name of this section 17

Un'implementazione tipica del processo di CI Name of this section 18

Ciclo di build e release Name of this section 19

Bamboo Bamboo è un software per facilitare l'implementazione della metodologia di Continuous Integration Funzionalità: istant continuous integration; facile integrazione in scenari diversi; build distribuiti; report e analisi; integrazione con PHPUnit Per maggiori info: http://www.atlassian.com/software/bamboo/ Name of this section 20

Bamboo: esempio di report Name of this section 21

Bamboo: metriche Name of this section 22

Bamboo: collaborazione istantanea Name of this section 23

Grazie! Per ulteriori informazioni: http://www.zend.com http://www.atlassian.com