Vademecum al testing automatico/1

Che differenza c’è tra unit test e acceptance test? In quali occasioni è opportuno scrivere uno unit test e quando invece è meglio scrivere un acceptance test?

Queste sono domande tipiche e più che legittime quando un team inizia a muovere i primi passi nel mondo del testing automatico. Personalmente scrivo il mio codice attraverso il TDD ormai da parecchio tempo, ma mi è capitato di lavorare con team che scrivono test automatici solo dopo aver scritto il codice applicativo corrispondente. Non solo: uno sviluppatore o un team che si interessano al TDD tipicamente passano qualche tempo praticando test-after, prima di iniziare a muoversi test-driven. È un’evoluzione naturale quindi ed è un po’ come imparare a camminare prima di iniziare a correre. Spero che sia evidente che la mia netta preferenza va verso un approccio test-driven.

Detto ciò, le informazioni che seguono costituiscono un approccio al testing pragmatico e volutamente non formalizzato: hanno l’obiettivo di aiutarvi nelle vostre attività quotidiane. Di conseguenza, le definizioni e i suggerimenti qui riportati non vogliono essere necessariamente a prova di bomba da un punto di vista formale, ma spero che possano essere efficaci nel vostro contesto professionale.

Questa prima parte è concentrata sugli unit test.

 

[Read more…]

Progetto ETROM/1

Con questo articolo si inaugura una nuova rubrica che speriamo possa incontrare i vostri favori. Sappiamo di non essere particolarmente originali, ma il termine Gola Profonda si è stampato in modo indelebile nel nostro immaginario collettivo per potervi sfuggire (a partire da film come Tutti gli uomini del presidente in avanti, che avevate capito!). E allora vi esortiamo, fate venire fuori il delatore che è in voi, spiate, denunciate, spargete fluido velenoso nascondendovi dietro allo pseudonimo Gola Profonda: noi vi garantiremo l’anonimato. Unica regola: nomi, aziende, luoghi… non ci interessano, non li vogliamo sapere, quello che vogliamo non è di certo diffamare nessuno, bensì stigmatizzare vizi profondi e superficiali virtù dell’IT di casa nostra.

Come al solito, mandate le vostre segnalazioni a info@stacktrace.it

ETROM

Questo diario di bordo è la storia di un team XP alle prese con un progetto in un contesto tradizionale. In qualche modo, è la storia di culture che a volte si confrontano e più spesso si scontrano. Oppure è più semplicemente la storia di ordinaria umanità alle prese con reciproche incomprensioni.
Il luogo del delitto è rappresentato da Sfiziosi Virgulti, software house di nicchia dal passato storico, in balia dei postumi della Gnù Economy, alla ricerca di un’identità che fa fatica a spiccare, in bilico tra moderne incertezze e antiche illusioni.

[Read more…]

Recensione di Implementation Patterns

Implementation Patterns CoverSono sicuro che da qualche parte sulla rete esiste il vademecum della recensione perfetta o un manuale per scrivere recensioni. Onestamente, preferisco raccontarvi il mio viaggio con il libro di Beck. Intanto una premessa: a partire dal cosiddetto Libro Bianco, ovvero “Extreme Programming Explained: Embrance Change” – prima edizione, ho letto tutti i libri che Beck ha pubblicato. Questo background mi ha sicuramente influenzato, ed è con queste lenti che bisogna approcciare la mia recensione di “Implementation Patterns”.

[Read more…]

2007 Turing Award

Sono stati resi noti i vincitori del Turing Award per il 2007: Edmund M. Clarke, E. Allen Emerson e Joseph Sifakis hanno vinto il cosiddetto Nobel dell’informatica per il loro lavoro sui metodi formali di verifica del design e dei requisiti di un sistema (hardware o software che sia). Il loro contributo in particolare ha consentito di sviluppare in modo pratico il metodo noto come Model Checking: attraverso la modellazione di un sistema concorrente in termini di formule di logica temporale, è possibile valutarne la bontà del funzionamento, ovvero è possibile determinare in modo automatico se il sistema rispetta una data specifica. I concetti chiave sono una modellazione attraverso un linguaggio che consenta di rappresentare stati temporali concorrenti, da cui è possibile derivare un albero temporale degli stati (i cui cammini di attraversamento rappresentano tutte i possibili stati in cui il sistema si verrà a trovare) e una logica temporale, detta Computational Tree Logic (CTL), che consenta di verificare delle proprietà del sistema stesso. L’applicazione pratica del Model Checking ha riscontrato successo soprattutto nel campo dell’hardware e limitatamente anche per il software (sono ad esempio note le esperienze di Nasa, Microsoft e Bell Labs).

Trovo questa notizia degna di essere menzionata per tre motivi: intanto i Turing Award sono rilevanti per chiunque si occupi di informatica, sia teorica che pratica, e poi per una volta questo premio dà un senso al termine science in Computer Science. Infine, vale la pena di ricordare che questi metodi spostano di fatto il problema dal sistema in sé verso il modello: sebbene in ambiti limitati la cosa calzi a pennello, è pur vero che la verifica formale avviene sul modello e quindi chi si occupa di verificare il modello stesso? Detto ciò, ben lungi da me sminuire i meriti di Clarke, Emerson e Sifakis.

Non ci sono più i software engineer di una volta

CrossTalk, ovvero il giornale di software engineering del Dipartimento della Difesa americano (DoD), ha pubblicato nel numero di gennaio uno spunto interessante riguardante gli skill dei software engineer di domani. L’intervento è firmato da due professori del corso di Computer Science della New York University, nonché esponenti di spicco della comunità Ada attraverso AdaCore, fornitore di soluzioni Ada al DoD stesso (e non solo).

[Read more…]

I video dell’Agile Alliance Functional Testing Tools Visioning Workshop sono online

Logo Agile Alliance Due mesi fa l’Agile Alliance ha organizzato un workshop dedicato a strumenti per test funzionali o, più in generale, test di accettazione (AAFTT 2007). Recentemente James Shore ha pubblicato il transcript del suo intervento controverso e nonostante i video siano in realtà online già da alcuni giorni, questa è l’occasione per fare il punto sulla querelle tra lui ed Elisabeth Hendrickson.

[Read more…]

Italian Agile Day 2007

Italian Agile Day 2007 Venerdì 23 novembre si è tenuto a Bologna l’Italian Agile Day. La manifestazione, giunta alla sua quarta edizione, rappresenta per una volta tanto un evento unico nel panorama internazionale: a partire dall’edizione del 2006 il suo organizzatore, Marco Abis, decise di tentare di allestire un evento totalmente gratuito e autofinanziato grazie a contributi volontari. Ancora una volta la comunità italiana ha risposto in modo entusiastico.

[Read more…]