#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing su database Alessandro

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

Elaborazione di Franco Grivet Chin
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
Ordine degli Ingegneri della Provincia di Belluno (by Mario De Ghetto) 18/04/2008 Ordine degli Ingegneri della Provincia di Belluno IL SOFTWARE LIBERO.
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Windows Development Day 28/01/05 Bologna The Media Center Show Daniele Bochicchio Microsoft ASP.NET MVP Daniele Bochicchio
Miglioramento della protezione dei dati mediante SQL Server 2005 Utilizzo della crittografia di SQL Server 2005 per agevolare la protezione dei dati Pubblicato:
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Fabio Mignani Senior Technology Specialist
Microsoft Education Academic Licensing Annalisa Guerriero.
ASP.NET – Data Binding Davide Vernole .NET MVP.
Massimiliano Bosco – Aliware – Torino – Project 2003 Sviluppare Soluzioni EPM con Project Server (2/4)
1 Smart Client distribuzione e aggiornamento Fabio Santini.
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
Minimum Requirements Comparison WinFLP 1 Windows XP 3 Linux Ubuntu 2 SUSE Linux 4 Fedora 10 5 Technical minimum Processor 233 MHz Pentium class processor.
I contenuti di questa presentazione sono stati realizzati a cura di M
NESSUS.
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
OPEN OFFICE e IMPRESS Masucci Antonia Maria.
I PRIMI FILE NELLE CARTELLE CLASSE VIRTUALE EDULAB PROGETTO LIM Laura Antichi.
L’inclusione dei comuni piccoli
Ciclo di vita del software
C# LE BASI 2007 Prima lezione - Introduzione.
SVILUPPO MODERNO DI APPLICAZIONI PER WINDOWS
BRIDGE-3K Verso il futuro La migrazione dai sistemi HP3000. Un ponte verso il futuro conservando la cultura e le risorse aziendali. NOVITA 2007.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
UGIALT.NET Conference II
Cliccare col mouse per avanzare
Windows Azure Community Tour… la vendemmia Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto allOrdine degli Ingegneri di Belluno Community.
Progetto di Reti di Calcolatori L-S Orchestrazione di servizi WEB
Concetti di base sul Software dei PC Unitre Anno
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Visual Basic Le novità del linguaggio
A cura della Unità Nazionale eTwinning Italia Risorse online per i gemellaggi elettronici Alessandra Ceccherelli Unità Nazionale eTwinning Italia.
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> fast on demand software.
Visual Studio Tools per Office System 2003 Fabio Santini Developer Evangelist Developer And Platform Evangelism.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
14/06/2008 – Matteo Baglini Mail: Blog:
User stories Claudio Maccari Mail:
Claudio Maccari Mail: Blog (ITA): Blog (ENG):
Ingegneria del software Modulo 4 -Processi software Unità didattica 2 -eXtreme Programming Ernesto Damiani Università degli Studi di Milano Lezione 2 –
ASP.NET per il client web Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci )
Maggio 2010 ICT4LAW Business process management systems: strumenti e tecnologie Luigi Magnanini – SSB Progetti.
#sqlsatPordenone #sqlsat367 February 28, 2015 Ricerche full-text Emiliano Pinto
Inside outlook EDIFACT Framework Architecture
Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013
N4N Platform Architecture PA Inside outlook.
Da Teradata a Oracle SQLWays – DDL/Schema, Viste, Macros, Procedure, BTEQ, Migrazione di applicazioni Copyright (c) Ispirer Systems.
OpenProj: una valida alternativa a MS Project
SQLWays – Software per migrazione Copyright (c) Ispirer Systems Ltd. Tutti i diritti riservati. Da Progress 4GL a C#.NET Modello di collaborazione.
Ispirer Systems Presentazione dell’azienda Copyright (c) Ispirer Systems Ltd. Tutti i diritti riservati.
Real World data access layers DataSet vs. Custom entities Pierre Greborio Software Architect – PEWay SrL Microsoft MVP – Solutions Architect.
Sviluppo per Pocket PC con SQL Server CE 2.0 Fabio Santini Silvano Coriani.NET Developer Evangelist Microsoft Corporation.
LABORATORIO DI INFORMATICA Ingegneria Informatica a. a
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Extreme Programming Genova, 29 Ottobre /06/20152 Cosa è XP? È una delle metodologie cosiddette agili per lo sviluppo di software. Le metodologie.
#sqlsatTorino #sqlsat400 May 23, 2015 Entity Framework 7 Back To The Future Nuove piattaforme, nuovi data store Michael about.me/micdenny.
Joomlahost.it1 Presentato da Fustini Alessandro Myslq DBA e Developer certified Joomlahost.it.
.NET vNext e lo sviluppo web cross-platform
Davide Benvegnù Introduzione a Visual Studio Online #VSOIntro.
Davide Benvegnù Gestione del codice sorgente con VSO #VSOSources.
Davide Benvegnù Integrazione con Visual Studio Online #VSOAPI.
Progetto EuropAs Passaporto Digitale di Ascoli in Europa Modulo I Cultura digitale, utilizzo consapevole delle nuove tecnologie, codifica e decodifica.
Davide Benvegnù Continuous Integration con VSO #VSOCI.
Davide Benvegnù Cloud Load Testing con VSO #VSOLoadTest.
#sqlsatTorino #sqlsat400 May 23, 2015 AzureML - Creating and Using Machine Learning Solutions Davide
SQL Server deployment journey da dev a ops
Transcript della presentazione:

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing su database Alessandro

#sqlsatPordenone #sqlsat367 February 28, 2015 Sponsors

#sqlsatPordenone #sqlsat367 February 28, 2015 Organizers

#sqlsatPordenone #sqlsat367 February 28, 2015 Speaker  SQL Server MVP dal 2008  Microsoft Certified  blogs:  [ITA]  [ENG]  Maggiori informazioni su: 

#sqlsatPordenone #sqlsat367 February 28, 2015 Agenda  Concetti ALM/DLM  Concetti Unit Testing  Perché Unit Testing su database  Framework per Unit Testing  Soluzioni per Unit Testing  Conclusioni  Q&A

#sqlsatPordenone #sqlsat367 February 28, 2015 Che cosa si intende con ALM? Application Lifecycle Management (ALM) rappresenta l'unione di attività di gestione di business con attività di ingegneria del software, resa possibile dall'utilizzo di strumenti che facilitano la gestione delle fasi di: analisi dei requisiti, progetto architetturale, sviluppo, testing, gestione delle release, del change e del deployment. (fonte Wikipedia)

#sqlsatPordenone #sqlsat367 February 28, 2015 Perchè ALM?  Rottura delle barriere tra i team (integrazione)  Rilascio di software di qualità  Rilascio di software in tempi brevi  Soddisfazione del cliente  Migliore organizzazione del lavoro  Monitorizzazione e tracciabilità delle attività  Migliore gestione del codice (più «pulito»)

#sqlsatPordenone #sqlsat367 February 28, 2015 Per raggiungere la qualità..  Continuous Integration!  SVILUPPO  SEND  BUILD  TEST

#sqlsatPordenone #sqlsat367 February 28, 2015 DLM – Database lifecycle management DLM (sottoinsieme di ALM) è un approccio alla gestione dello schema del database, dei dati e dei metadati. Ma non solo, è l’insieme degli strumenti e delle tecnologie che consentono l’organizzazione del ciclo di vita di un database, partendo dall’analisi, passando per lo sviluppo, il testing ed il deploy, per arrivare alla fase di backup e persistenza dei dati. (fonte TechNet)

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing In ingegneria del software, per unit testing (testing unitario) si intende l'attività di prova e collaudo di singole unità software. A seconda del paradigma di programmazione, l’unità può essere una singola funzione, una singola classe o un singolo metodo. Lo scopo fondamentale è l’individuazione precoce dei bug (o la prevenzione delle regressioni). (fonte Wikipedia)

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – Perché?

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – Perchè?  Testare funzionalità mission-critical di business  Sviluppo evolutivo  Per capire precocemente alcuni bug  Supporto di alert automatici  Per prevenire regressioni il più possibile  Avere copertura di test  Scrivere in maniera «testabile» i nostri metodi

#sqlsatPordenone #sqlsat367 February 28, 2015 Quindi.. «Fix dei bug appena trovati»  I bug non fixati camuffano altri bug  I bug non fixati fanno sembrare la qualità un’opzione  Discutere su bug non fixati è una perdita di tempo  I bug non fixati aumentano in generale gli sforzi

#sqlsatPordenone #sqlsat367 February 28, 2015 Da non dimenticare..  I bug non fixati portano metriche non affidabili  I bug non fixati distraggono il team  I bug non fixati ostacolano la velocità di release  I bug non fixati portano stime non accurate  Fixare codice familiare è più semplice  Fixare un bug oggi costa meno rispetto a farlo domani

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – Cosa facciamo di solito?  Preleviamo una copia dei dati su cui lavorare di test  Test manuale  T-SQL – debug per i valori delle variabli  PRINT, PRINT, SELECT…  Soggettività ed errori umani  Alcuni casi di test sono obsoleti poichè i dati cambiano  Alcuni test coinvolgono spesso constraint e strutture che non hanno niente a che vedere con il test stesso

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – Cosa dovrei testare?  Calcoli in procedure e funzioni  Constraint (schema)  Casi limite sui dati  Comportamenti attesi sui dati  Gestione degli errori  Sicurezza  Standard

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – Strumenti  Framework  tSQLt  tSQLUnit  SQLCop  SS-Unit  Tools  SQLTest di Red-Gate (tSQLt + SQLCop)  Unit test project con Visual Studio

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – tSQLt  Free framework (open source)  T-SQL  Necessita di SQLCLR abilitato  Comprende le asserzioni più comuni  Self-contained  Transazioni isolate  Versatile  Piuttosto simile a xUnit

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – strutture tSQLt  Built-in  schema tsqlt  Classi  Gruppi di stored procedure (che sono i test)  Struttura  Assemble (crea oggetti fake e mock)  Act (applica logiche)  Assert (asserisce, verifica risultati)  Convenzioni  Nome: test*

#sqlsatPordenone #sqlsat367 February 28, 2015 DEMO 1 tSQLt and Red-Gate SQL Test +

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – Visual Studio  Visual Studio Data Tools  Unit test projects (creati con template) .Net + T-SQL  Supportato anche in VS 2013  Test UI Integrata (Test Explorer)  UI per definizione test  Pre/Post test

#sqlsatPordenone #sqlsat367 February 28, 2015 DEMO 2 Visual Studio database unit testing projects +

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – tSQLUnit  Free framework (open source)  T-SQL  Self-contained  Transazioni isolate  Comprende le asserzioni più comuni  Setup dati e ripristino  Simile a xUnit tSQLUnit

#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing – strutture tSQLUnit  TestSuites  È il nome subito dopo il prefisso ut_  Gruppi di procedure  User defined test (prefisso ut_)  ut_NomeTestSuite_QuelCheVaFatto  Built-in  Procedure con prefisso tsu_  Fixtures  Procedure con suffisso _setup  ut_NomeTestSuite_setup  Procedure con suffisso _teardown per  ut_NomeTestSuite_teardown  Vengono eseguite per ogni Test nella Suite tSQLUnit

#sqlsatPordenone #sqlsat367 February 28, 2015 DEMO 3 tSQLUnit in SQL Server Management Studio tSQLUnit +

#sqlsatPordenone #sqlsat367 February 28, 2015 Comparazione – SQL Test  Pro  Integrazione con SSMS  Esecuzione a classi  Messaggi e icone (UI)  T-SQL  Self-contained  Supporta tSQLt e SQLCop  Contro  Ui da migliorare (prodotto giovane)  Installa un set di oggetti  Necessita di SQLCLR  Necessita TRUSTWORTHY ON

#sqlsatPordenone #sqlsat367 February 28, 2015 Comparazione – Visual Studio  Pro  È Visual Studio  Supporto futuri del project template  UI comoda e potente (dotata di designer)  Non vengono installati oggetti aggiuntivi sul database  Contro  Un progetto aggiuntivo non è troppo confortevole  Non è T-SQL (C# o VB.Net)  Sta al di fuori di SSMS (è un contro? Dipende!)  Diverso per ogni versione passata di Visual Studio

#sqlsatPordenone #sqlsat367 February 28, 2015 Comparazione – tSQLUnit  Pro  Solo T-SQL  Basato sul ben conosciuto xUnit framework  Non necessita di SQLCLR  Open source  Contro  Nessuna UI  Installa un set di oggetti sul database  Non troppa documentazione (per T-SQL) tSQLUnit

#sqlsatPordenone #sqlsat367 February 28, 2015 Conclusioni  Non ci sono motivazioni per non testare un database come succede per il codice  Esistono tool per testare  Esistono tool per creare dati e fake  I processi di test migliorano la qualità dei rilasci e del software

#sqlsatPordenone #sqlsat367 February 28, 2015 Risorse (VS 2010) unit-testing-in-ssdt.aspxhttp://blogs.msdn.com/b/ssdt/archive/2012/12/07/getting-started-with-sql-server-database- unit-testing-in-ssdt.aspx (SSDT) (VS 2012) (VS 2013) (Article on CI) (DLM) tsqlt/ (PL-SQL)

#sqlsatPordenone #sqlsat367 February 28, 2015 Q&A  Domande?

#sqlsatPordenone #sqlsat367 February 28, 2015 #sqlsatPordenone #sqlsat367 THANKS! SpeakerScore