Come farsi autorizzare gli unit test dal boss

20
Come farsi autorizzare gli unit test dal boss Marco Amendola [email protected] @marcoamendola getlatestversion ALM for Dummies #ALM4Dummies

Transcript of Come farsi autorizzare gli unit test dal boss

Come farsi autorizzare gli unit test dal bossMarco [email protected]

@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’asset9

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 scappateI rifacimenti di un progetto sono il Vietnam dell’IT

Il nuovo codice diventa comunque legacy (in fretta!)

• Trasformate il codice legacy in codice testatoDa «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 ambientie 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 [email protected]

@marcoamendola

http://svy.mk/1BLujLb