<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentarii la: *DD FAIL? Wurbe#5</title>
	<atom:link href="http://myadobe.ro/2008/01/23/dd-fail-wurbe5/feed/" rel="self" type="application/rss+xml" />
	<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/</link>
	<description>(noi facem software, nu phone support, și ne place)</description>
	<lastBuildDate>Tue, 07 Feb 2012 07:44:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>De către: Ionut Bizau</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1309</link>
		<dc:creator>Ionut Bizau</dc:creator>
		<pubDate>Mon, 28 Jan 2008 22:59:24 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1309</guid>
		<description>La noi se scriu teste &gt; 50% din timp. Avem o suita de unit teste care ruleaza sub un minut si o droaie de teste functionale care dureaza intre 30 si 50 de minute (acum lucrez la paralelizarea lor pe calculatoarele &quot;libere&quot;).
Poate pare un efort prea mare, dar avantajele sunt pe masura:
1) refactoring. Suntem intr-o faza a proiectului unde am facut niste schimbari de-ti sta mintea in loc: splitari de tabele, modificare tabele la &quot;insert only&quot; (in loc de update se insereaza o noua inregistrare)... Astea intr-un sistem la care se lucreaza de 5 ani (se si simte cand codul e vechi si parca l-au trecut toate intemperiile de cand a fost plantat) si o echipa de ~20 de oameni. Imi amintesc la alte joburi cand aveam de modificat chiar si numele unei coloane intr-un tabel - fugi imediat si testeaza de mana... Aici nici nu mi-as permite asta, ca nu pot sti ce implicatii ar avea o schimbare.
2) controlarea bugurilor. Daca repari un bug scrii un test care se asigura ca s-a rezolvat. Asta te va ajuna mai incolo daca &quot;gandacul&quot; ar mai incerca sa revina.
3) impartirea muncii. Cand comit ceva e raspunderea mea sa rulez testele cu succes. Nu mai se ajunge in situatii de genul &quot;bine mai, acuma ai facut si tu aia cand voiam sa fac eu ai&#039;lalta? cine face acuma merge? uite ca stricasi tot.&quot;
4) ajutor pentru nou-veniti. Scriind niste teste vezi exact ce si cum se intampla in aplicatie. Mai avem si code reviews unde poti sa inveti de la altii - dar testele iti dau voie sa faci ceva practic fara a strica nimic.</description>
		<content:encoded><![CDATA[<p>La noi se scriu teste &gt; 50% din timp. Avem o suita de unit teste care ruleaza sub un minut si o droaie de teste functionale care dureaza intre 30 si 50 de minute (acum lucrez la paralelizarea lor pe calculatoarele &#8220;libere&#8221;).<br />
Poate pare un efort prea mare, dar avantajele sunt pe masura:<br />
1) refactoring. Suntem intr-o faza a proiectului unde am facut niste schimbari de-ti sta mintea in loc: splitari de tabele, modificare tabele la &#8220;insert only&#8221; (in loc de update se insereaza o noua inregistrare)&#8230; Astea intr-un sistem la care se lucreaza de 5 ani (se si simte cand codul e vechi si parca l-au trecut toate intemperiile de cand a fost plantat) si o echipa de ~20 de oameni. Imi amintesc la alte joburi cand aveam de modificat chiar si numele unei coloane intr-un tabel &#8211; fugi imediat si testeaza de mana&#8230; Aici nici nu mi-as permite asta, ca nu pot sti ce implicatii ar avea o schimbare.<br />
2) controlarea bugurilor. Daca repari un bug scrii un test care se asigura ca s-a rezolvat. Asta te va ajuna mai incolo daca &#8220;gandacul&#8221; ar mai incerca sa revina.<br />
3) impartirea muncii. Cand comit ceva e raspunderea mea sa rulez testele cu succes. Nu mai se ajunge in situatii de genul &#8220;bine mai, acuma ai facut si tu aia cand voiam sa fac eu ai&#8217;lalta? cine face acuma merge? uite ca stricasi tot.&#8221;<br />
4) ajutor pentru nou-veniti. Scriind niste teste vezi exact ce si cum se intampla in aplicatie. Mai avem si code reviews unde poti sa inveti de la altii &#8211; dar testele iti dau voie sa faci ceva practic fara a strica nimic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: cosmin</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1305</link>
		<dc:creator>cosmin</dc:creator>
		<pubDate>Mon, 28 Jan 2008 14:52:19 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1305</guid>
		<description>@Andrei Maxim: foarte frumos comentariu. Ai dreptate. Este vorba de test driven design folosind un test-first approach (TDD). Tot de aici as sublinia diferenta dintre unit testing simplu si TDD care reiese din avantajele insirate de tine. Ca parte comuna ar fi testele in regresie oferita de unit testing.</description>
		<content:encoded><![CDATA[<p>@Andrei Maxim: foarte frumos comentariu. Ai dreptate. Este vorba de test driven design folosind un test-first approach (TDD). Tot de aici as sublinia diferenta dintre unit testing simplu si TDD care reiese din avantajele insirate de tine. Ca parte comuna ar fi testele in regresie oferita de unit testing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: Andrei Maxim</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1303</link>
		<dc:creator>Andrei Maxim</dc:creator>
		<pubDate>Mon, 28 Jan 2008 13:56:53 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1303</guid>
		<description>Sunt abordari cumva diferite cand vine vorba de unit-testing vs. TDD. Din pacate n-am asistat la conversatii, dar vazand discutia de pe blog parca as interveni putin.

Personal, eu inteleg prin unit-testing codul scris ca sa testeze bucati din codul ce va ajunge in productie. Da, ocupa mult timp (Ron Jeffries spunea pe grupul de TDD ca el scrie cam 50% din timp cod si 50% teste), necesita ceva experienta pentru a se ajunge la niste &quot;best practices&quot; astfel incat sa ajungi sa scrii/vezi doar testele relevante. Recomand Pragmatic Unit Testing de la Pragmatic Programmers pentru acest aspect.

Al doilea subiect, cel de Test-Driven Development, e un pic mai delicat. Acesta nu inseamna &quot;testele inainte, codul dupa&quot; ci mai degraba un fel de contract. Spune care anume sunt caracteristicile unui anumit obiect si abia apoi scriem codul.

De fapt, procesul nu-i prea diferit de felul in care programam in fiecare zi: &quot;adresa are un cod postal care e format doar din 5 cifre... boon, validam asta, daca nu bagam un mesaj de eroare/aruncam o exceptie/returnam nil&quot; si asa mai departe. Tocmai de aceea e foarte dificil sa iti creezi reflexul de TDD (si, din proprie experienta, mult mai usor e sa-l pierzi). E nevoie de un efort unitar din partea tuturor care ating codul respectiv.

Avantajele remarcate de mine sunt cumva mai subtile. De exemplu, codul devine mult mai simplu, mult mai evident. Refactoring-ul e mult mai usor. Bug-urile sunt mult mai putine, dar nu pentru ca testez ci pentru ca gandesc mai in detaliu ce face acea mica bucata de cod.

Imi pare tare rau ca am ratat Wurbe #5, sunt convins ca mi-ar fi placut mult.</description>
		<content:encoded><![CDATA[<p>Sunt abordari cumva diferite cand vine vorba de unit-testing vs. TDD. Din pacate n-am asistat la conversatii, dar vazand discutia de pe blog parca as interveni putin.</p>
<p>Personal, eu inteleg prin unit-testing codul scris ca sa testeze bucati din codul ce va ajunge in productie. Da, ocupa mult timp (Ron Jeffries spunea pe grupul de TDD ca el scrie cam 50% din timp cod si 50% teste), necesita ceva experienta pentru a se ajunge la niste &#8220;best practices&#8221; astfel incat sa ajungi sa scrii/vezi doar testele relevante. Recomand Pragmatic Unit Testing de la Pragmatic Programmers pentru acest aspect.</p>
<p>Al doilea subiect, cel de Test-Driven Development, e un pic mai delicat. Acesta nu inseamna &#8220;testele inainte, codul dupa&#8221; ci mai degraba un fel de contract. Spune care anume sunt caracteristicile unui anumit obiect si abia apoi scriem codul.</p>
<p>De fapt, procesul nu-i prea diferit de felul in care programam in fiecare zi: &#8220;adresa are un cod postal care e format doar din 5 cifre&#8230; boon, validam asta, daca nu bagam un mesaj de eroare/aruncam o exceptie/returnam nil&#8221; si asa mai departe. Tocmai de aceea e foarte dificil sa iti creezi reflexul de TDD (si, din proprie experienta, mult mai usor e sa-l pierzi). E nevoie de un efort unitar din partea tuturor care ating codul respectiv.</p>
<p>Avantajele remarcate de mine sunt cumva mai subtile. De exemplu, codul devine mult mai simplu, mult mai evident. Refactoring-ul e mult mai usor. Bug-urile sunt mult mai putine, dar nu pentru ca testez ci pentru ca gandesc mai in detaliu ce face acea mica bucata de cod.</p>
<p>Imi pare tare rau ca am ratat Wurbe #5, sunt convins ca mi-ar fi placut mult.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: Ionut Bizau</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1273</link>
		<dc:creator>Ionut Bizau</dc:creator>
		<pubDate>Thu, 24 Jan 2008 22:49:21 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1273</guid>
		<description>Agile development &amp; testarea automata intra la categoria &quot;AHA!&quot;. Te descurci rezonabil fara ele si nevoia lor nu e evidenta, dar odata ce le-ai folosit o data spui &quot;AHA! Deci asta-mi lipsea!&quot;.</description>
		<content:encoded><![CDATA[<p>Agile development &amp; testarea automata intra la categoria &#8220;AHA!&#8221;. Te descurci rezonabil fara ele si nevoia lor nu e evidenta, dar odata ce le-ai folosit o data spui &#8220;AHA! Deci asta-mi lipsea!&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: Claudiu</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1265</link>
		<dc:creator>Claudiu</dc:creator>
		<pubDate>Thu, 24 Jan 2008 15:01:20 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1265</guid>
		<description>Super</description>
		<content:encoded><![CDATA[<p>Super</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: Diana</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1261</link>
		<dc:creator>Diana</dc:creator>
		<pubDate>Thu, 24 Jan 2008 12:36:16 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1261</guid>
		<description>@Adrian Spinei &amp; @Bogdan Roman 
Si mie mi-a placut prezentarea lui Bogdan chiar daca initial Selenium nu era o optiune pentru ceea ce aveam nevoie. Acum cred ca poate destul de multe :)
Combinatia Selenium + awt.Robot suna promitator si chiar as vrea sa aflu tips&amp;tricks de la cei care o vor folosi.</description>
		<content:encoded><![CDATA[<p>@Adrian Spinei &amp; @Bogdan Roman<br />
Si mie mi-a placut prezentarea lui Bogdan chiar daca initial Selenium nu era o optiune pentru ceea ce aveam nevoie. Acum cred ca poate destul de multe <img src='http://myadobe.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Combinatia Selenium + awt.Robot suna promitator si chiar as vrea sa aflu tips&amp;tricks de la cei care o vor folosi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: Alex</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1258</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Thu, 24 Jan 2008 10:31:36 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1258</guid>
		<description>Pentru PHP eu am folosit: http://simpletest.sourceforge.net/</description>
		<content:encoded><![CDATA[<p>Pentru PHP eu am folosit: <a href="http://simpletest.sourceforge.net/" rel="nofollow">http://simpletest.sourceforge.net/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: Adrian Spinei</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1256</link>
		<dc:creator>Adrian Spinei</dc:creator>
		<pubDate>Wed, 23 Jan 2008 21:31:23 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1256</guid>
		<description>@Cosmin: Nu e ciudat, chiar e o alegere mai buna :) cel putin pe hartie: multibrowser, multiplatforma, bindinguri pe o herghelie de limbaje. Ramane de vazut daca si pe unde &quot;scartaie&quot; integrarea cu awt.Robot, trebuie totusi spus ca WatiR-ul are un tovaras de nadejde in AutoIT, iar WatiN-ul foloseste automationul din .net care orice am zice noi e facut cu cap si te lasa sa pilotezi o sumedenie de lucruri.

De-asta l-am intrebat la Q&amp;A cat de mult a brutalizat jucaria...

@Alex: exista phpunit si destul de demult (http://www.phpunit.de/) [ma rog, eu vorbesc, care nu stiam de Selenium RC]. Btw, testarea unitara server-side si blackox sunt complementare, nu spune nimeni ca daca o faci pe una nu mai ai &quot;voie&quot; sau &quot;timp&quot; sa o faci pe cealalta. So.</description>
		<content:encoded><![CDATA[<p>@Cosmin: Nu e ciudat, chiar e o alegere mai buna <img src='http://myadobe.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  cel putin pe hartie: multibrowser, multiplatforma, bindinguri pe o herghelie de limbaje. Ramane de vazut daca si pe unde &#8220;scartaie&#8221; integrarea cu awt.Robot, trebuie totusi spus ca WatiR-ul are un tovaras de nadejde in AutoIT, iar WatiN-ul foloseste automationul din .net care orice am zice noi e facut cu cap si te lasa sa pilotezi o sumedenie de lucruri.</p>
<p>De-asta l-am intrebat la Q&amp;A cat de mult a brutalizat jucaria&#8230;</p>
<p>@Alex: exista phpunit si destul de demult (<a href="http://www.phpunit.de/" rel="nofollow">http://www.phpunit.de/</a>) [ma rog, eu vorbesc, care nu stiam de Selenium RC]. Btw, testarea unitara server-side si blackox sunt complementare, nu spune nimeni ca daca o faci pe una nu mai ai &#8220;voie&#8221; sau &#8220;timp&#8221; sa o faci pe cealalta. So.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: cosmin</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1255</link>
		<dc:creator>cosmin</dc:creator>
		<pubDate>Wed, 23 Jan 2008 21:10:48 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1255</guid>
		<description>@Adrian Spinei:

Ciudat. Azi dimineata i-am spus lui Bogdan ca m-a convins ca Selenium e o alegere mai buna decat Watir.</description>
		<content:encoded><![CDATA[<p>@Adrian Spinei:</p>
<p>Ciudat. Azi dimineata i-am spus lui Bogdan ca m-a convins ca Selenium e o alegere mai buna decat Watir.</p>
]]></content:encoded>
	</item>
	<item>
		<title>De către: cosmin</title>
		<link>http://myadobe.ro/2008/01/23/dd-fail-wurbe5/comment-page-1/#comment-1254</link>
		<dc:creator>cosmin</dc:creator>
		<pubDate>Wed, 23 Jan 2008 20:42:52 +0000</pubDate>
		<guid isPermaLink="false">http://myadobe.ro/2008/01/23/dd-fail-wurbe5/#comment-1254</guid>
		<description>&quot;Eu am incercat sa gasesc ceva pentru unit testing in php dar nu am gasit mai nimic. Asa ca dezvoltatori de php nu prea au solutii pentru unit testing efectiv&quot;
@Alex:
&quot;EUnit is a unit testing framework for Erlang. It is very powerful and flexible, is easy to use, and has small syntactical overhead.&quot;
Se gasesc framework-uri pentru Ada, Lisp, Prolog, Fortran, SQL, si cam orice poate fi interpretat sau compilat. Nu trebuie sa cauti prea mult: au formatul XUnit (de exemplu PhpUnit) sau daca nu, poti sa cauti &quot;X Unit&quot; unde X e orice nume de limbaj sau &quot;X Test&quot;. Dar e mai usor sa spui ca nu se gaseste.
</description>
		<content:encoded><![CDATA[<p>&#8220;Eu am incercat sa gasesc ceva pentru unit testing in php dar nu am gasit mai nimic. Asa ca dezvoltatori de php nu prea au solutii pentru unit testing efectiv&#8221;<br />
@Alex:<br />
&#8220;EUnit is a unit testing framework for Erlang. It is very powerful and flexible, is easy to use, and has small syntactical overhead.&#8221;<br />
Se gasesc framework-uri pentru Ada, Lisp, Prolog, Fortran, SQL, si cam orice poate fi interpretat sau compilat. Nu trebuie sa cauti prea mult: au formatul XUnit (de exemplu PhpUnit) sau daca nu, poti sa cauti &#8220;X Unit&#8221; unde X e orice nume de limbaj sau &#8220;X Test&#8221;. Dar e mai usor sa spui ca nu se gaseste.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

