<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>TDD</title>
        <link>http://blogs.ugidotnet.org/papo/category/TDD.aspx</link>
        <description>Test Driven Development</description>
        <language>it-IT</language>
        <copyright>papo</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Design does matter</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2008/10/03/94233.aspx</link>
            <description>oggi a pranzo con qualche collega discutevamo di come risolvere un esercizio di logica (ad esempio, trovare l'intersezione tra array, e valutarne la complessità), che il nostro coach ognitanto ci lascia come stimolo per tenere allenata la mente, e per favorire il confronto tra tutti noi del team [continua..]&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/94233.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2008/10/03/94233.aspx</guid>
            <pubDate>Fri, 03 Oct 2008 10:20:35 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2008/10/03/94233.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/94233.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/94233.aspx</trackback:ping>
        </item>
        <item>
            <title>Disaccoppiamento, inversione delle dipendenze e architetture esagonali</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2008/09/20/94094.aspx</link>
            <description>questa settimana è arrivato un nuovo tassello nel mosaico dell'applicazione Java che il mio team sta sviluppando in questo periodo. è ormai in code complete la user-story che ho preso in carico, che si occupa di realizzare l'aggancio ad una coda, realizzata da sviluppatori di un altro team interno, e di supportare il formato dei dati concordato con loro. [continua..]&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/94094.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2008/09/20/94094.aspx</guid>
            <pubDate>Sat, 20 Sep 2008 18:05:19 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2008/09/20/94094.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/94094.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/94094.aspx</trackback:ping>
        </item>
        <item>
            <title>Feedback, feedback, feedback!</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2008/09/15/94030.aspx</link>
            <description>non è un segreto, sono test-infected. questo significa che prima di iniziare a scrivere del codice, il mio istinto (o malattia) mi porta a partire da un test automatico. ma non è solo questo: l'approcio infatti mi si rivela utile in ogni situazione in cui ci sia da scoprire come fare qualcosa di nuovo. [continua..]&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/94030.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2008/09/15/94030.aspx</guid>
            <pubDate>Mon, 15 Sep 2008 10:24:51 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2008/09/15/94030.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/94030.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/94030.aspx</trackback:ping>
        </item>
        <item>
            <title>Customer Test-Driven Development with FIT and FitNesse</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2008/07/06/93291.aspx</link>
            <description>no, non è un post in inglese. il titolo si riferisce alla sessione che io e il mio collega Tommaso abbiamo tenuto lo scorso giovedì per i ragazzi della &lt;a style="font-weight: bold;" href="http://essap.dicom.uninsubria.it/"&gt;ESSAP&lt;/a&gt; (&lt;span style="font-style: italic;"&gt;European Summer School on Agile Programming&lt;/span&gt;) presso Villa Toeplitz a Varese. è stata un'esperienza stupenda, sia per il fatto che ci siamo tutti divertiti moltissimo, sia per l'interesse che i partecipanti (un po' assonnati per il post pranzo!) hanno dimostrato verso i temi esposti.&lt;br /&gt;
&lt;br /&gt;
putroppo, questa era la prima volta che la sessione prendeva corpo, e quindi sicuramente non siamo stati efficaci quanto speravamo: l'argomento è insidioso perchè offre il fianco a lunghe discussioni puramente tecniche, errore in cui siamo caduti anche noi. il pubblico, una ventina di ragazzi da tutta europa, era molto eterogeneo, chi vedeva per la prima volta le tematiche legate ai &lt;span style="font-weight: bold;"&gt;metodi Agili&lt;/span&gt;, accanto a chi invece già adotta alcuni principi e pratiche nel proprio lavoro ed era lì per affinarli o capire come farli meglio funzionare.&lt;br /&gt;
&lt;br /&gt;
abbiamo scelto di dividere la sessione in due parti. prima un'introduzione al concetto di &lt;span style="font-style: italic;"&gt;iterazione&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;test di accettazione&lt;/span&gt; scritti da/con il cliente, quali possibili forme usare per scriverli e quali tool esistono a supporto. abbiamo descritto in dettaglio il funzionamento di &lt;a style="font-weight: bold;" href="http://fit.c2.com/"&gt;FIT&lt;/a&gt; e &lt;a style="font-weight: bold;" href="http://www.fitnesse.org/"&gt;FitNesse&lt;/a&gt; e mostrato le principali fixtures usate, quelle di FIT e alcune di &lt;a style="font-weight: bold;" href="http://fit.c2.com/wiki.cgi?FitLibrary"&gt;FitLibrary&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
nella seconda parte della sessione invece abbiamo fatto un esercizio, partendo da un esempio scritto da noi (una variazione di quello che i ragazzi avevano già visto in altre sessioni): un semplice &lt;a href="http://davenicolette.wikispaces.com/TDD+Randori+and+Fishbowl"&gt;gioco di ruolo&lt;/a&gt; per il quale abbiamo realizzato una decina di &lt;span style="font-style: italic;"&gt;user stories&lt;/span&gt;, corredandole di &lt;span style="font-style: italic;"&gt;test unitari&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;test di accettazione&lt;/span&gt;. quindi abbiamo eletto a &lt;span style="font-style: italic;"&gt;customer&lt;/span&gt; uno dei ragazzi nel pubblico, chiesto a lui di inventarsi la prossima user story e iniziato a descriverla in &lt;span style="font-weight: bold;"&gt;forma testuale&lt;/span&gt; su una lavagna. prendendo spunto da quanto già fatto per le altre storie, abbiamo poi scritto un test di accettazione, sempre su lavagna, e tradotto poi in &lt;span style="font-weight: bold;"&gt;forma tabellare&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
il resto del pomeriggio (troppo breve!) i ragazzi hanno così lavorato in coppie cercando di implementare la storia richiesta, partendo dalla traduzione in FitNesse del test di accettazione, collezzionando una bella "barra rossa", doverosa a inizio iterazione. hanno poi iniziato a decidere dove porre le responsabilità richieste, e mi pare che tutti abbiano deciso di assegnarle a oggetti già esistenti, iniziando così a scrivere i test unitari, a vederli fallire uno ad uno, per poi modificare il sistema e godersi il premio di una barra verde!&lt;br /&gt;
&lt;br /&gt;
anche se l'esempio era molto semplice e le modifiche da aggiungere davvero limitate, ho notato la soddisfazione sopratutto dei ragazzi nuovi alle tematiche ad ogni esecuzione con successo dei test unitari. è quello che in &lt;span style="font-style: italic;"&gt;eXtreme Programming&lt;/span&gt; viene detto il &lt;span style="font-weight: bold;"&gt;valore del feedback&lt;/span&gt;, assolutamente fondamentale.&lt;br /&gt;
&lt;br /&gt;
prima di andare a casa, tutte le coppie sono riuscite a chiudere la micro-iterazione, verificando che il loro lavoro fosse &lt;span style="font-weight: bold;"&gt;corretto&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;concluso&lt;/span&gt;, vedendo passare con successo anche il test di accettazione. qualche coppia, avendo finito in anticipo, ha iniziato a lavorare su una seconda carta, inventata al momento. mi spiace solo che l'abbiano scelta loro invece di coinvolgere il "customer-per-un-giorno", ma è comprensibile dato l'entusiasmo e la brama di giocare col la pratica e lo strumento.&lt;br /&gt;
&lt;br /&gt;
a me non resta che ringraziare tutti: gli organizzatori (primo tra tutti il mio coach &lt;a href="http://matteo.vaccari.name/blog/archives/121"&gt;Matteo&lt;/a&gt;) per l'occasione concessa e i partecipanti per le ottime domande a cui abbiamo cercato di rispondere in modo conciso. da parte mia, è stata una giornata splendida, mi ha fatto crescere come "speaker", ruolo per me nuovo, ho avuto anche l'occasione per conoscere di persona alcuni nomi "digitali" (come &lt;a href="http://blogs.ugidotnet.org/luka"&gt;Luka&lt;/a&gt;), e si è conclusa con uno ottimo &lt;span style="font-style: italic;"&gt;social-dinner&lt;/span&gt;!&lt;br /&gt;
&lt;br /&gt;
il materiale della sessione sarà presto disponibile sul sito della ESSAP, nel frattempo è raggiungibile qui:&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://jacopo.franzoi.googlepages.com/mindmapAcceptanceTDDwithFITandFitNes.pdf"&gt;mindmap&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://jacopo.franzoi.googlepages.com/RolePlayGame.zip"&gt;esercizio&lt;/a&gt; (in java)&lt;/li&gt;
&lt;/ul&gt;
le nostre gesta sono anche state immortalate! più le rivedo e più sorrido. in ogni caso, sono &lt;a href="http://it.youtube.com/watch?v=6n-6TiZY3HA"&gt;qui&lt;/a&gt;, &lt;a href="http://it.youtube.com/watch?v=pLnebsN7tfM"&gt;qui&lt;/a&gt;, &lt;a href="http://it.youtube.com/watch?v=Q4Sg6KduqQ0"&gt;qui&lt;/a&gt; e &lt;a href="http://it.youtube.com/watch?v=bCWJ6L_96Ts"&gt;qui&lt;/a&gt; (peccato non si veda la scritta sul mio tesserino "&lt;span style="font-style: italic;"&gt;Jacopo - xtreme guitarist&lt;/span&gt;", nascosta dalla maglia rosso acceso!).&lt;br /&gt;
&lt;br /&gt;
grazie ancora a tutti, spero la scuola possa farsi conoscere ancora di più, magari nelle prossime edizioni ci troveremo anche molti della comunità ugidotnet!&lt;br /&gt;
&lt;br /&gt;
a presto.&lt;br /&gt;
-papo&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/93291.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2008/07/06/93291.aspx</guid>
            <pubDate>Sun, 06 Jul 2008 13:08:53 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2008/07/06/93291.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/93291.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/93291.aspx</trackback:ping>
        </item>
        <item>
            <title>Model-View-Presenter per Compact Framework</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2007/10/26/89217.aspx</link>
            <description>stavo per rispondere a Jeremy , che è curioso di sapere quale variante di Model-View-Presenter sia maggiornente diffusa tra i suoi affezionati, indicando come nel mio caso si tratti del Passive View. però poi mi sono accorto che era uno spunto buono per un post...
[continua]&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/89217.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2007/10/26/89217.aspx</guid>
            <pubDate>Fri, 26 Oct 2007 10:19:39 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2007/10/26/89217.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/89217.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/89217.aspx</trackback:ping>
        </item>
        <item>
            <title>[semi-OT] presentazione TDD in Java e .NET</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2007/03/18/73233.aspx</link>
            <description>&lt;HTML&gt;
&lt;BODY&gt;
&lt;span&gt;
&lt;P&gt;finalmente sono riuscito a finire di sistemare il
materiale per una presentazione che darò la prossima settimana, che ho chiamato
"&lt;EM&gt;Sviluppo software guidato dal testing, metodologie e strumenti&lt;/EM&gt;", che in
sostanza si tratta di un approfondimento degli argomenti che ho affrontato nel
mio lavoro di tesi.&lt;/P&gt;
&lt;P&gt;la cosa fantastica è che la presentazione la devo fare nella mia (ex)
università! il docente che mi ha seguito per il lavoro di tesi mi ha infatti
messo a disposizione un'ora del suo corso per esporre ai suoi studenti le
tematiche che ruotano attorno al TDD, e di certo non mi sono tirato
indietro!&lt;/P&gt;
&lt;P&gt;così, ho articolato il tutto in modo che ci sia una prima parte di
introduzione alle metodologie, per ciascuna indicando alcuni strumenti
Open-Source disponibili, e poi mostrando un esempio pratico di sviluppo. il
corso (di ingegneria del software, modulo B) usa come riferimento Java, quindi è
questo il linguaggio che ho usato per il progetto, ma nella presentazione metto
sempre a confronto Java e .NET, e poi in ogni caso gli argomenti sono
applicabili in un qualasiasi ambiente.&lt;/P&gt;
&lt;P&gt;ecco una breve descrizione dei contenuti:&lt;/P&gt;
&lt;UL&gt;
  &lt;LI&gt;riepilogo &lt;STRONG&gt;tipologie di testing&lt;/STRONG&gt;   : in piccolo (unità),
  in grande (integrazione, accettazione), nuovo significato di testing
  &lt;LI&gt;&lt;STRONG&gt;Test-Driven Development&lt;/STRONG&gt; : progettazione e test di
  unità, red-green-refactor, xUnit (jUnit e NUnit), isolamento (fake, stub,
  mock), testing basato sullo stato e basato sulle interazioni, mock objects
  dinamici (EasyMock e Rhino.Mocks)
  &lt;LI&gt;&lt;STRONG&gt;Customer Test-Driven Development&lt;/STRONG&gt;  : requisiti, test di
  accettazione e&amp;nbsp;layer dell'applicazione, FIT e FitLibrary, principali
  tipologie di fixture
  &lt;LI&gt;&lt;STRONG&gt;demo&lt;/STRONG&gt;: "simple login", servizio di autenticazione
  utenti, CTDD delle regole del dominio e dello strato di presentazione,
  scrittura fixture di FIT, TDD delle singole classi, stub e mock per le
  dipendenze
  &lt;LI&gt;&lt;STRONG&gt;strumenti usati&lt;/STRONG&gt; : Fit, FitLibrary, FitNesse, jUnit, EasyMock e
Eclipse&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;il materiale si trova qui:&lt;/P&gt;
&lt;UL&gt;
  &lt;LI&gt;slide, &lt;A
  href="http://jacopo.franzoi.googlepages.com/slideTDDunibs.pdf"
 &gt;http://jacopo.franzoi.googlepages.com/slideTDDunibs.pdf&lt;/A&gt;
  &lt;LI&gt;progetto, &lt;A
  href="http://jacopo.franzoi.googlepages.com/simplelogin.zip"
 &gt;http://jacopo.franzoi.googlepages.com/simplelogin.zip&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;il progetto contiene test di accettazione per FitNesse,
test di unità e sistema. dopo aver copiato le pagine di FitNesse bisogna
modificare l'homepage del progetto (raggiungibile come [root]/SimpleLogin) con
il path al percorso contentente il progetto compilato.&lt;/P&gt;
&lt;P&gt;a presto.&lt;br&gt;
-papo-&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/span&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/73233.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2007/03/18/73233.aspx</guid>
            <pubDate>Sun, 18 Mar 2007 21:38:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2007/03/18/73233.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/73233.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/73233.aspx</trackback:ping>
        </item>
        <item>
            <title>Jeek project: primo rilascio</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2007/02/26/71749.aspx</link>
            <description>finalmente ho pubblicato il progetto Jeek, un generatore di classi stub/mock per il testing di unità in .NET. si tratta della versione iniziale (che ho indicato come 0.1 alpha) che corrisponde alle prime due iterazioni di sviluppo. al momento quindi copre solo la generazione di classi concrete (fake) e stub ed è avviabile da riga di comando.

si tratta del progetto che ho realizzato come caso di studio per la mia tesi di laurea specialistica (di cui parlavo in alcuni post precedenti), ma che s&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/71749.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2007/02/26/71749.aspx</guid>
            <pubDate>Mon, 26 Feb 2007 15:07:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2007/02/26/71749.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/71749.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/71749.aspx</trackback:ping>
        </item>
        <item>
            <title>Esempio (semplice) di UI Test-Driven con MVP</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2007/01/29/69051.aspx</link>
            <description>ho pubblicato un articolo sulla mia esperienza nel realizzare test-driven una UI WinForm, usando il pattern Model-View-Presenter.&lt;br&gt;
si tratta solo di un inizio, e mi sono focalizzato più sulla specifica dei comportamenti tramite test (di accettazione e di unità), meno sull'implementazione (magari in un prossimo post).&lt;br&gt;
ecco il link:&lt;br&gt;
&lt;a href="http://blogs.ugidotnet.org/papo/articles/69048.aspx"&gt;http://blogs.ugidotnet.org/papo/articles/69048.aspx&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/69051.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2007/01/29/69051.aspx</guid>
            <pubDate>Mon, 29 Jan 2007 16:12:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2007/01/29/69051.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/69051.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/69051.aspx</trackback:ping>
        </item>
        <item>
            <title>[Request for Comments] tesi sullo sviluppo guidato dal testing</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2006/12/13/59329.aspx</link>
            <description>&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/59329.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2006/12/13/59329.aspx</guid>
            <pubDate>Wed, 13 Dec 2006 22:33:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2006/12/13/59329.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/59329.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/59329.aspx</trackback:ping>
        </item>
        <item>
            <title>Mock parziali: una alternativa ai delegates</title>
            <link>http://blogs.ugidotnet.org/papo/archive/2006/11/29/57903.aspx</link>
            <description>&lt;img src="http://blogs.ugidotnet.org/papo/aggbug/57903.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>papo</dc:creator>
            <guid>http://blogs.ugidotnet.org/papo/archive/2006/11/29/57903.aspx</guid>
            <pubDate>Wed, 29 Nov 2006 16:12:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/papo/archive/2006/11/29/57903.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/papo/comments/commentRss/57903.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/papo/services/trackbacks/57903.aspx</trackback:ping>
        </item>
    </channel>
</rss>