SlideShare a Scribd company logo
1 of 20
Come farsi autorizzare
gli unit test dal boss
Marco Amendola
marco.amendola@outlook.com
@marcoamendola
getlatestversion
ALM for Dummies
#ALM4Dummies
• Chi sa già cosa siano gli unit test?
• Chi già li utilizza nel proprio lavoro quotidiano?
Sondaggio
2
• A chi vuole iniziare ad usare unit test
• A chi vuole migliorare le pratiche
di sviluppo aziendali
• A chi lavora su progetti molto longevi
A chi si rivolge
3
A cosa servono gli unit test
• Verifica della correttezza del codice
• Rete di sicurezza
4
Rete di sicurezza
Diverse attività quando sviluppiamo
• Evoluzione/Correzione bug
• Nuove funzioni
• Ottimizzazione
• Refactoring
Evitare di modificare (involontariamente) i comportamenti del sistema
è il task maggiore
5
Ostacoli all’utilizzo degli unit test
• Scarsa conoscenza delle tecniche e manualità
• Pratica non presente nella cultura aziendale
• Spesso presentati in scenari «greenfield»
6
Approcci diversi
• Consulenti esterni
• Dipendenti (o interni)
Limiti
• Non c’è un metodo infallibile
• Ambito ristretto al proprio
potenziale di intervento
Cambiare la cultura aziendale
7
Convincere il boss
Come sviluppatori siamo
• dei nerd affascinati dalla tecnica
• poco abituati a vedere (o evidenziare!)
aspetti «business»
8
Parlare in modo comprensibile al «business»
Vantaggio tecnico Punto di interesse per il «business»
Diminuzione delle regressioni Diminuzione ore impiegate su:
• test pre-rilascio
• correzione anomalie
Ciclo di codifica, test e debug più rapidi e
meno noiosi
Risparmio dei tempi impiegati per:
• avvio applicazione
• autenticazione
• navigazione
• creazione caso
• test manuale
Base di codice ben strutturata e più facilmente
modificabile
Diminuzione ore impiegate per:
• manutenzione evolutiva
• istruzione nuovi dev
Miglior design del sorgente Maggior qualità dell’asset
9
Mantenere il passo
• Essere costanti
• Creare massa critica: gli sforzi sono velocemente superati dai risultati
• Ricercare altri sponsor interni
• Evidenziare risultati quantitativamente
10
Gestire il codice legacy
• Scappate!
Una cattiva codebase crea stress
• Attenti a dove scappate
I rifacimenti di un progetto sono il Vietnam dell’IT
Il nuovo codice diventa comunque legacy (in fretta!)
• Trasformate il codice legacy in codice testato
Da «Edit & Pray» a «Cover & Modify»
11
Poco convinti?
• Spesso ci si lamenta del progetto poco «cool»,
ma si continua a peggiorarlo
• E’ un processo lento ma le modifiche tendono
ad ammassarsi in punti vicini
• E’ un approccio applicabile anche con ambienti
e tool vecchi
• Si usano tecniche interessanti
• Si riduce lo stress da incertezza
12
• Identificare il punto da modificare
• Istanziare la classe nel test
• Isolare le dipendenze da altre classi e servizi esterni
• Difficile eseguirli nel test
• Diventa un test di integrazione
• «Certificare» il comportamento attuale
• Verifica stato
• Sondaggio attraverso fake/mock
• Effettuare la modifica
Metodologia generale
13
• Dipendenze funzionali e temporali
• L’ordine non deve essere importante
• Bisogna «ricostruire» il mondo ad ogni test
• Test troppo grandi
• Non si trova in fretta la causa di errori
• Ma neanche insignificanti!
• Test molto lenti
• Meglio se <10ms, con eccezioni
Da evitare
14
Con moderazione
• Test contro basi dati
• Male necessario
• Rigenerazione dei dati
• Ripristino da backup
• Test di gruppi articolati di classi
• Test di integrazione
15
Consigli
• «Fotografare» output attuale
• Approval test
• Migliorare la copertura appena possibile
• Suddividere i test per tempo di esecuzione
• Lo scopo è far girare almeno un gruppo
di test continuamente
16
Takeaway
• Sottolineare aspetti quantitativi
• Non «bruciare» il tema, magari iniziare senza chiedere
• Contribuire con un investimento di tempo
• 10% = 30’ su 4h
• Insistere: i vantaggi sono notevoli
• Per mettere i codice sotto test sono
costretto a migliorarlo
• Si riduce il timore di errori e lo stress
17
Libri da leggere
• Working Effectively with Legacy Code (Michael Feathers)
http://bit.ly/alm4d-test-1
• The Art of Unit Testing (Roy Osherove)
http://bit.ly/alm4d-test-2
18
Sponsor
19
Feedback form
20
Marco Amendola
marco.amendola@outlook.com
@marcoamendola
http://svy.mk/1BLujLb

More Related Content

Similar to Come farsi autorizzare gli unit test dal boss

PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerAlessandro Alpi
 
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Pietro Di Bello
 
SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...
SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...
SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...SMAU
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2Giulio Roggero
 
Test Driven Development @ Xe.Net
Test Driven Development @ Xe.NetTest Driven Development @ Xe.Net
Test Driven Development @ Xe.NetMauro Servienti
 
Trust me, I'm a developer
Trust me, I'm a developerTrust me, I'm a developer
Trust me, I'm a developerGiulio Roggero
 
SQL Server Worst Practices
SQL Server Worst PracticesSQL Server Worst Practices
SQL Server Worst PracticesGianluca Sartori
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementMatteo Emili
 
Inversion of Control @ CD2008
Inversion of Control @ CD2008Inversion of Control @ CD2008
Inversion of Control @ CD2008Mauro Servienti
 
Delphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del TestingDelphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del TestingMarco Breveglieri
 
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in ItalianPierpaoloCaricato
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOpsAlessandro Alpi
 
Agile@scale, second chance
Agile@scale, second chanceAgile@scale, second chance
Agile@scale, second chanceFelice Pescatore
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiMarco Da Rin Zanco
 
Il programmatore
Il programmatoreIl programmatore
Il programmatoreMarco Riva
 

Similar to Come farsi autorizzare gli unit test dal boss (20)

PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL Server
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
 
SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...
SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...
SMAU NAPOLI 2021 - Come individuare problemi e malfunzionamenti nei software ...
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
 
Test Driven Development @ Xe.Net
Test Driven Development @ Xe.NetTest Driven Development @ Xe.Net
Test Driven Development @ Xe.Net
 
Trust me, I'm a developer
Trust me, I'm a developerTrust me, I'm a developer
Trust me, I'm a developer
 
SQL Server Worst Practices
SQL Server Worst PracticesSQL Server Worst Practices
SQL Server Worst Practices
 
Software Testing e TDD
Software Testing e TDDSoftware Testing e TDD
Software Testing e TDD
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle management
 
Lezione 1: I metodi agili
Lezione 1: I metodi agiliLezione 1: I metodi agili
Lezione 1: I metodi agili
 
Inversion of Control @ CD2008
Inversion of Control @ CD2008Inversion of Control @ CD2008
Inversion of Control @ CD2008
 
Delphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del TestingDelphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del Testing
 
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software development
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in Italian
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOps
 
User Research per Startup
User Research per StartupUser Research per Startup
User Research per Startup
 
Agile@scale, second chance
Agile@scale, second chanceAgile@scale, second chance
Agile@scale, second chance
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
 
Il programmatore
Il programmatoreIl programmatore
Il programmatore
 

More from Marco Amendola

Divertirsi anche con il codice legacy
Divertirsi anche con il codice legacyDivertirsi anche con il codice legacy
Divertirsi anche con il codice legacyMarco Amendola
 
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Marco Amendola
 
Win8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVMWin8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVMMarco Amendola
 
WP7, MVVM e Caliburn.Micro
WP7, MVVM e Caliburn.MicroWP7, MVVM e Caliburn.Micro
WP7, MVVM e Caliburn.MicroMarco Amendola
 
MVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.MicroMVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.MicroMarco Amendola
 

More from Marco Amendola (6)

LUIS e Bot SDK
LUIS e Bot SDKLUIS e Bot SDK
LUIS e Bot SDK
 
Divertirsi anche con il codice legacy
Divertirsi anche con il codice legacyDivertirsi anche con il codice legacy
Divertirsi anche con il codice legacy
 
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
 
Win8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVMWin8@work - Windows 8 e MVVM
Win8@work - Windows 8 e MVVM
 
WP7, MVVM e Caliburn.Micro
WP7, MVVM e Caliburn.MicroWP7, MVVM e Caliburn.Micro
WP7, MVVM e Caliburn.Micro
 
MVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.MicroMVVM senza fronzoli con Caliburn.Micro
MVVM senza fronzoli con Caliburn.Micro
 

Come farsi autorizzare gli unit test dal boss

  • 1. Come farsi autorizzare gli unit test dal boss Marco Amendola marco.amendola@outlook.com @marcoamendola getlatestversion ALM for Dummies #ALM4Dummies
  • 2. • Chi sa già cosa siano gli unit test? • Chi già li utilizza nel proprio lavoro quotidiano? Sondaggio 2
  • 3. • A chi vuole iniziare ad usare unit test • A chi vuole migliorare le pratiche di sviluppo aziendali • A chi lavora su progetti molto longevi A chi si rivolge 3
  • 4. A cosa servono gli unit test • Verifica della correttezza del codice • Rete di sicurezza 4
  • 5. Rete di sicurezza Diverse attività quando sviluppiamo • Evoluzione/Correzione bug • Nuove funzioni • Ottimizzazione • Refactoring Evitare di modificare (involontariamente) i comportamenti del sistema è il task maggiore 5
  • 6. Ostacoli all’utilizzo degli unit test • Scarsa conoscenza delle tecniche e manualità • Pratica non presente nella cultura aziendale • Spesso presentati in scenari «greenfield» 6
  • 7. Approcci diversi • Consulenti esterni • Dipendenti (o interni) Limiti • Non c’è un metodo infallibile • Ambito ristretto al proprio potenziale di intervento Cambiare la cultura aziendale 7
  • 8. Convincere il boss Come sviluppatori siamo • dei nerd affascinati dalla tecnica • poco abituati a vedere (o evidenziare!) aspetti «business» 8
  • 9. Parlare in modo comprensibile al «business» Vantaggio tecnico Punto di interesse per il «business» Diminuzione delle regressioni Diminuzione ore impiegate su: • test pre-rilascio • correzione anomalie Ciclo di codifica, test e debug più rapidi e meno noiosi Risparmio dei tempi impiegati per: • avvio applicazione • autenticazione • navigazione • creazione caso • test manuale Base di codice ben strutturata e più facilmente modificabile Diminuzione ore impiegate per: • manutenzione evolutiva • istruzione nuovi dev Miglior design del sorgente Maggior qualità dell’asset 9
  • 10. Mantenere il passo • Essere costanti • Creare massa critica: gli sforzi sono velocemente superati dai risultati • Ricercare altri sponsor interni • Evidenziare risultati quantitativamente 10
  • 11. Gestire il codice legacy • Scappate! Una cattiva codebase crea stress • Attenti a dove scappate I rifacimenti di un progetto sono il Vietnam dell’IT Il nuovo codice diventa comunque legacy (in fretta!) • Trasformate il codice legacy in codice testato Da «Edit & Pray» a «Cover & Modify» 11
  • 12. Poco convinti? • Spesso ci si lamenta del progetto poco «cool», ma si continua a peggiorarlo • E’ un processo lento ma le modifiche tendono ad ammassarsi in punti vicini • E’ un approccio applicabile anche con ambienti e tool vecchi • Si usano tecniche interessanti • Si riduce lo stress da incertezza 12
  • 13. • Identificare il punto da modificare • Istanziare la classe nel test • Isolare le dipendenze da altre classi e servizi esterni • Difficile eseguirli nel test • Diventa un test di integrazione • «Certificare» il comportamento attuale • Verifica stato • Sondaggio attraverso fake/mock • Effettuare la modifica Metodologia generale 13
  • 14. • Dipendenze funzionali e temporali • L’ordine non deve essere importante • Bisogna «ricostruire» il mondo ad ogni test • Test troppo grandi • Non si trova in fretta la causa di errori • Ma neanche insignificanti! • Test molto lenti • Meglio se <10ms, con eccezioni Da evitare 14
  • 15. Con moderazione • Test contro basi dati • Male necessario • Rigenerazione dei dati • Ripristino da backup • Test di gruppi articolati di classi • Test di integrazione 15
  • 16. Consigli • «Fotografare» output attuale • Approval test • Migliorare la copertura appena possibile • Suddividere i test per tempo di esecuzione • Lo scopo è far girare almeno un gruppo di test continuamente 16
  • 17. Takeaway • Sottolineare aspetti quantitativi • Non «bruciare» il tema, magari iniziare senza chiedere • Contribuire con un investimento di tempo • 10% = 30’ su 4h • Insistere: i vantaggi sono notevoli • Per mettere i codice sotto test sono costretto a migliorarlo • Si riduce il timore di errori e lo stress 17
  • 18. Libri da leggere • Working Effectively with Legacy Code (Michael Feathers) http://bit.ly/alm4d-test-1 • The Art of Unit Testing (Roy Osherove) http://bit.ly/alm4d-test-2 18