DanBlog

Il blog di Daniele Armanasco
posts - 47, comments - 79, trackbacks - 1634

Mocking e unit testing: lavorare bene seppure a mezz’aria!

Quando parlo di test unitari e mocking ai clienti che non ne hanno mai fatto uso (nemmeno personale ;-)) mi risulta difficile farne cogliere tutti i pregi; la prossima volta mi ricorderò del progetto di cui mi sto occupando questi giorni (o li dirigerò a questo post).

Si tratta di un programma che deve monitorare il flusso di alcune pratiche richieste agli istituti bancari dall’agenzia delle entrate. La richiesta viene ricevuta tramite PEC ed un sistema (esistente) ne interpreta le informazioni e gestisce tutto l’iter (abbastanza complesso). Il mio programma non deve “far altro” che verificare la coerenza di tutte le informazioni sparse tra database relazionali (quello principale e quello “di confronto” per controlli di quadratura) e file relativi alla richiesta presenti su file system locale o server remoti.

Io non dispongo ancora del sistema o di una sua simulazione (alcune parti sono ancora in fase di realizzazione); di fatto non ho né la terra sotto i piedi (db, cartelle, ecc.) né il cielo sopra la testa (l’interfaccia, che non ci sarà mai perché il mio programma sarà lanciato da riga di comando).

Nonostante questo, grazie ai test unitari e al mocking con cui sostituisco alle mie dipendenze esterne (db, file) degli oggetti “finti”, POSSO lavorare alla mia parte verificandone la logica che implemento e raffinando man mano il mio modello del dominio.

Mi sento un pò come se stessi creando un organo artificiale che poi andrò a impiantare nel paziente curandomi solo delle “cuciture”, perché il funzionamento interno l’avrò già provato senza paziente; molto meglio che dover provare l’organo per la prima volta sul paziente!

Print | posted on lunedì 23 novembre 2009 15.40 |

Feedback

Gravatar

# re: Mocking e unit testing: lavorare bene seppure a mezz’aria!

> Quando parlo di test unitari e mocking ai clienti

intendi clienti tecnici (developer a cui dai consulenza) o CTO interessati al aspetto di business (costi e vantaggi) ?
23/11/2009 16.11 | Luca Minudel
Gravatar

# re: Mocking e unit testing: lavorare bene seppure a mezz’aria!

In genere il focus principale è su costi e vantaggi.
Spesso si tratta di piccole aziende in cui c'è un responsabile progetto che ha competenze da developer non molto aggiornate (i test unitari non rientrano in queste competenze) e deve rispondere di costi e vantaggi di ogni scelta. L'aspetto di business è condizione necessaria (quando va bene vengono accettati vantaggi grandi a lungo termine a fronte di costi piccoli a breve termine; quando va male anche i vantaggi devono essere a breve termine).
Hai qualche consiglio utile nei due casi?
23/11/2009 17.09 | Daniele Armanasco
Gravatar

# re: Mocking e unit testing: lavorare bene seppure a mezz’aria!


credo che l'esperienza diretta di casi reali che stai facendo sia una testiomnianza molto utile ed efficace con i clienti che voglio valutare costi e vantaggi. per quelli patiti di numeri e benchmark, ho in canna un post con misurazioni fatte in diversi progetti che misurano l'efficacia del TDD.


per i developer, la cosa che trovo più efficace è quella di convincere con l'esempio e per l'insegnamento creare spazi volontari invece di obbligare tutti a praticare il TDD a forza. per questo è utile sviluppare buona padronanza de tdd con code-base legacy o comunque con codice di produzione.
23/11/2009 20.19 | Luca Minudel
Gravatar

# re: Mocking e unit testing: lavorare bene seppure a mezz’aria!

Non vedo l'ora di leggere il tuo post con le misurazioni.
Buon lavoro.
25/11/2009 14.21 | Daniele Armanasco
Comments have been closed on this topic.

Powered by: