<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Coding Dojo Floripa &#187; Agile</title>
	<atom:link href="http://dojofloripa.wordpress.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://dojofloripa.wordpress.com</link>
	<description>Desenvolvimento Ágil</description>
	<lastBuildDate>Mon, 16 Feb 2009 22:23:44 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='dojofloripa.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/eb4fc3b19eeef38389628621e11e7fca?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Coding Dojo Floripa &#187; Agile</title>
		<link>http://dojofloripa.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dojofloripa.wordpress.com/osd.xml" title="Coding Dojo Floripa" />
		<item>
		<title>Palestra sobre metodologias ágeis em Gravataí</title>
		<link>http://dojofloripa.wordpress.com/2009/01/06/palestra-sobre-metodologias-ageis-em-gravatai/</link>
		<comments>http://dojofloripa.wordpress.com/2009/01/06/palestra-sobre-metodologias-ageis-em-gravatai/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 20:44:04 +0000</pubDate>
		<dc:creator>Ivan Sanchez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[eXtreme Programming]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/?p=155</guid>
		<description><![CDATA[Segue a divulgação de um evento bacana em Gravataí-RS. Se trata de um evento beneficiente, então quem estiver na área j[a tem mais um bom motivo para comparecer&#8230;
Olá Pessoal,
Em janeiro, o Curso de Sistemas de Informação da FACENSA (Gravataí), juntamente com o Grupo de Usuários de Metodologias Ágeis (GUMA-RS) estará promovendo uma palestra beneficente sobre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=155&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Segue a divulgação de um evento bacana em Gravataí-RS. Se trata de um evento beneficiente, então quem estiver na área j[a tem mais um bom motivo para comparecer&#8230;</p>
<blockquote><p>Olá Pessoal,</p>
<p>Em janeiro, o <strong>Curso de Sistemas de Informação da FACENSA</strong> (Gravataí), juntamente com o <strong>Grupo de Usuários de Metodologias Ágeis (GUMA-RS)</strong> estará promovendo uma palestra beneficente sobre Metodologias Ágeis de Software. O assunto trata de um conjunto de metodologias de desenvolvimento de software que trabalham baseadas em um conjunto de princípios e valores, e baseadas em foco no cliente, na equipe e geração de resultados com métricas e atitudes que promovem a melhoria contínua.</p>
<p>Esta palestra vai trazer aos participantes uma introdução ao assunto, permitindo o debate e discussão dos tópicos tratados.</p>
<p><strong>Data:</strong> 06 de janeiro de 2009, às 19h30min. A palestra tem duração de 3 horas.</p>
<p>Para esta ação, o Curso de Sistemas de Informação/FACENSA está arrecadando alimentos não perecíveis. A inscrição para a palestra é feita a partir da doação de 2Kg de alimentos. Os alimentos arrecadados serão doados para o Asilo Santa Bárbara (Gravataí).</p></blockquote>
<p>Mais informações no <a href="http://xp-rs.blogspot.com/2008/12/evento-beneficente-em-gravata-6-de.html">blog do grupo XP &#8211; Rio Grande do SUL</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=155&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2009/01/06/palestra-sobre-metodologias-ageis-em-gravatai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2af6eef5bb903cd0d7530196d942a8c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Sanchez</media:title>
		</media:content>
	</item>
		<item>
		<title>A queda do desenvolvimento ágil (parte 2)</title>
		<link>http://dojofloripa.wordpress.com/2008/11/19/a-queda-do-desenvolvimento-agil-parte-2/</link>
		<comments>http://dojofloripa.wordpress.com/2008/11/19/a-queda-do-desenvolvimento-agil-parte-2/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 09:31:52 +0000</pubDate>
		<dc:creator>Ivan Sanchez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/?p=145</guid>
		<description><![CDATA[Há 6 meses atrás eu escrevi sobre a queda do movimento ágil, mas o James Shore foi bem mais esperto: ele decidiu cutucar na ferida do Scrum. E agora que a polêmica está no ar, muita gente na comunidade ágil brasileira resolveu se manifestar, dentre eles:
Phillip Calçado:
[...] What James describes in his text is what [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=145&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">Há 6 meses atrás eu escrevi sobre<a href="http://dojofloripa.wordpress.com/2008/05/27/a-queda-do-desenvolvimento-agil/"> a queda do movimento ágil</a>, mas o James Shore foi bem mais esperto: ele decidiu <a href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html">cutucar na ferida do Scrum</a>. E agora que a polêmica está no ar, muita gente na comunidade ágil brasileira resolveu se manifestar, dentre eles:</p>
<p style="text-align:left;"><a href="http://fragmental.tw/2008/11/16/james-shore-skipping-their-vegetables/">Phillip Calçado</a>:</p>
<blockquote><p>[...] What James describes in his text is what we, consultants, see every single day.</p></blockquote>
<p style="text-align:left;"><a href="http://queroseragil.wordpress.com/2008/11/15/the-decline-and-fall-of-agile/">Rafael Mueller:</a></p>
<blockquote><p>[...] Tá cheio de consultor por aí pronto para quebrar os valores ágeis somente para ganhar um dinheiro da sua empresa.</p></blockquote>
<p style="text-align:left;"><a href="http://malditacomedia.blogspot.com/2008/11/blogrool-in-roll.html">Victor Hugo Germano</a>:</p>
<blockquote><p>[...] São os princípios, e não os métodos, que decidirão sobre a sobrevivência dos projetos</p></blockquote>
<p style="text-align:left;"><a href="http://josepaulopapo.blogspot.com/2008/11/declinio-queda-agil.html">José Papo</a></p>
<blockquote><p>[...] Scrum é apenas a porta de entrada para a agilidade. Uma equipe que não evoluir além disso, com certeza irá fracassar.</p></blockquote>
<p style="text-align:left;"><a href="http://visaoagil.wordpress.com/2008/11/18/crise-de-identidade-em-agile-ou-sera-novamente-o-luddismo-x-industrialismo/">Manoel Pimentel</a></p>
<blockquote><p><span style="font-family:Verdana,sans-serif;"><span style="font-size:small;">[...] </span></span><strong><span style="font-family:Verdana,sans-serif;"><span style="font-size:small;"><strong></strong></span></span></strong><span style="font-family:Verdana,sans-serif;"><span style="font-size:small;"><span>Não existe uma só forma de agilidade [...] </span></span></span><span style="font-family:Verdana,sans-serif;"><span style="font-size:small;">Será que não há 	espaço para todas essas vertentes da agilidade?</span></span></p></blockquote>
<p style="text-align:left;"><a href="http://fmeyer.org/archives/2008/11/20/o-scrume/"><span style="font-family:Verdana,sans-serif;"><span style="font-size:small;">Fernando Meyer</span></span></a></p>
<blockquote><p>[...] não é trazendo um evangelista e adotanto Scrum para sua empresa que fará seus projetos darem certo, mas se e somente se as pessoas envolvidas acreditarem no que estão fazendo.</p></blockquote>
<p><a href="http://visaoagil.wordpress.com/2008/11/22/mais-uma-opiniao/">Frank Trindade</a>:</p>
<blockquote><p>[...] O problema acontece quando tudo isso se torna muito na moda e popular, o que leva um monte de gente a adotar metodologias ágeis sem ter muita noção do que está fazendo.</p></blockquote>
<p><a href="http://gc.blog.br/2008/11/22/agile-indo-para-o-buraco/">Guilherme Chapiewski</a>:</p>
<blockquote><p>[...] muitas pessoas na comunidade &#8211; assim como eu &#8211; têm receio que realmente estejamos entrando numa era de declínio das metodologias ágeis causada pelo seu mal uso e péssimo entendimento.</p></blockquote>
<p style="text-align:left;">Minha opinião continua a <a href="http://dojofloripa.wordpress.com/2008/05/27/a-queda-do-desenvolvimento-agil/">mesma</a> então não vou entrar na discussão. Ao invés disso vou tentar manter este post atualizado com outros posts que eu encontrar por aí. Estou curioso para saber o quanto esta discussão vai mudar a cara da comunidade brasileira <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:left;"><span style="font-family:Verdana,sans-serif;"><span style="font-size:small;"><strong>Atualizado! </strong>Mais algumas opiniões: Fernando Meyer, Frank Trindade e Guilherme Chapiewski (se souberem de mais alguém me avisem!)<br />
</span></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=145&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2008/11/19/a-queda-do-desenvolvimento-agil-parte-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2af6eef5bb903cd0d7530196d942a8c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Sanchez</media:title>
		</media:content>
	</item>
		<item>
		<title>FitNesse Cookbook / Fixture Gallery</title>
		<link>http://dojofloripa.wordpress.com/2008/06/16/fitnesse-cookbook-fixture-gallery/</link>
		<comments>http://dojofloripa.wordpress.com/2008/06/16/fitnesse-cookbook-fixture-gallery/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 21:36:16 +0000</pubDate>
		<dc:creator>Ivan Sanchez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[FitNesse]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/?p=129</guid>
		<description><![CDATA[Se você já tentou usar FitNesse alguma vez, é bem provável que você já desanimou com a documentação oficial. A boa notícia é que agora você pode consultar a Fixture Gallery, que é na verdade um livro de receitas bem completo e acessível.
Ah! E se você nunca usou FitNesse, talvez esteja na hora de dar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=129&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Se você já tentou usar <a href="http://fitnesse.org/" target="_blank">FitNesse</a> alguma vez, é bem provável que você já desanimou com a documentação oficial. A boa notícia é que agora você pode consultar a <a href="http://gojko.net/fitnesse/fixturegallery/" target="_blank">Fixture Gallery</a>, que é na verdade um livro de receitas bem completo e acessível.</p>
<p>Ah! E se você nunca usou FitNesse, talvez esteja na hora de dar uma olhada. Na pior das hipóteses é uma excelente ferramenta para escrever testes de maneira expressiva. No melhor caso, é uma ótima ferramenta de comunicação entre desenvolvedores, clientes e testers.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/129/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/129/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=129&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2008/06/16/fitnesse-cookbook-fixture-gallery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2af6eef5bb903cd0d7530196d942a8c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Sanchez</media:title>
		</media:content>
	</item>
		<item>
		<title>Como usar TDD e Page Objects para construir interfaces web</title>
		<link>http://dojofloripa.wordpress.com/2008/04/20/como-usar-tdd-e-page-objects-para-construir-interfaces-web/</link>
		<comments>http://dojofloripa.wordpress.com/2008/04/20/como-usar-tdd-e-page-objects-para-construir-interfaces-web/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 19:52:46 +0000</pubDate>
		<dc:creator>Ivan Sanchez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/?p=128</guid>
		<description><![CDATA[Quando o assunto é interface web, a maioria dos desenvolvedores sabe o quão complicado é escrever testes automatizados, e muita gente simplesmente acaba deixando de lado esse assunto na prática, talvez por não saber o tamanho da irresponsabilidade que isto significa. Como o Vínicius da ImproveIt já bem disse:
Desenvolver software sem testes não é apenas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=128&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Quando o assunto é interface web, a maioria dos desenvolvedores sabe o quão complicado é escrever testes automatizados, e muita gente simplesmente acaba deixando de lado esse assunto na prática, talvez por não saber o tamanho da irresponsabilidade que isto significa. Como o Vínicius da ImproveIt <a href="http://blog.improveit.com.br/articles/2008/04/17/o-desenvolvimento-do-just-remind-us">já bem disse</a>:</p>
<blockquote><p>Desenvolver software sem testes não é apenas coisa de fanfarrão. É coisa de irresponsável. É impossível uma atividade tão complexa quanto desenvolver software ser conduzida sem testes automatizados, em uma quantidade absurda. Quer dizer, possível é, mas não é aceitável.</p></blockquote>
<p>No caso específico de interfaces web, muitos usuários do <a href="http://selenium.openqa.org/" target="_blank">Selenium</a> já passaram pelo extremo da<strong> empolgação</strong>, quando em 5 minutos se instala a <a href="http://selenium-ide.openqa.org/" target="_blank">Selenium IDE</a> no seu Firefox e sai gravando tudo que a sua aplicação pode fazer, e acabaram no <strong>desespero total</strong> quando a coleção de testes começa a aumentar e, mesmo depois de começar a usar o <a href="http://selenium-rc.openqa.org/" target="_blank">Selenium RC</a>, manter os testes fica cada vez mais difícil a cada nova mudança. E o <strong>desenvolvimento guiado por testes</strong> por onde andou durante toda esta jornada?  Provavelmente restrito a testes de unidade e integração, ou seja, sem tocar na interface com o usuário.</p>
<p>O engraçado é que a solução para tudo isso está bem mais perto do que a gente imagina: é a velha <strong>programação orientada a objetos</strong>, representada neste caso pelo padrão <a href="http://code.google.com/p/webdriver/wiki/PageObjects">Page Objects</a> (<strong>PO</strong>). A idéia é simples:</p>
<blockquote><p>Representar os elementos da interface com o usuário como uma série de objetos que se comunicam entre si.</p></blockquote>
<p>Se você prestou atenção, viu que este padrão está na documentação do <a href="http://code.google.com/p/webdriver">WebDriver</a>, uma outra ferramenta para automatizar interação com browsers, mas que para este post não tem muita importância, desde que você consiga conectar seus <strong>Page Objects</strong> com a aplicação real. Para provar isso, aqui vai um exemplo usando selenium-rc:</p>
<pre>public class GoogleTest {

	private Selenium selenium;

	@Before
	public void setUp() throws Exception {
		selenium = new DefaultSelenium("localhost", 4444, "*firefox",
				"http://www.google.com/webhp?hl=en");
		selenium.start();
	}

	@Test
	public void codingDojoShouldBeInFirstPageOfResults() {
		GoogleHomePage home = new GoogleHomePage(selenium);
		GoogleSearchResults searchResults = home.searchFor("coding dojo");
		String firstEntry = searchResults.getResult(0);
		assertEquals("Coding Dojo Wiki: FrontPage", firstEntry);
	}

	@After
	public void tearDown() throws Exception {
		selenium.stop();
	}

}
</pre>
<p>Este exemplo usa dois POs bastante simples (GoogleHomePage e GoogleSearchResults):</p>
<pre>public class GoogleHomePage {

	private final Selenium selenium;

	public GoogleHomePage(Selenium selenium) {
		this.selenium = selenium;
		this.selenium.open("http://www.google.com/webhp?hl=en");
		if (!"Google".equals(selenium.getTitle())) {
			throw new IllegalStateException("This is not the Google Home Page");
		}
	}

	public GoogleSearchResults searchFor(String string) {
		selenium.type("q", string);
		selenium.click("btnG");
		selenium.waitForPageToLoad("5000");
		return new GoogleSearchResults(string, selenium);
	}
}
</pre>
<pre>public class GoogleSearchResults {

	private final Selenium selenium;

	public GoogleSearchResults(String string, Selenium selenium) {
		this.selenium = selenium;
		if (!(string + " - Google Search").equals(selenium.getTitle())) {
			throw new IllegalStateException(
					"This is not the Google Results Page");
		}
	}

	public String getResult(int i) {
		String nameXPath = "xpath=id('res')/div[1]/div[" + (i + 1) + "]/h2/a";
		return selenium.getText(nameXPath);
	}
}
</pre>
<p>Quais as vantagens desta abordagem?</p>
<p><strong>É possível guiar seu desenvolvimento usando testes em cima de POs</strong>.</p>
<p>Imagine a interação do usuário com a aplicação e crie um modelo de objetos para representar essa interação.  Verifique este modelo na forma de um novo teste. Enquanto os elementos da interface não existirem o teste vai falhar, então os crie baseando-se no modelo para fazer o seu teste passar. Escreva novos testes e faça-os passarem aos poucos, e nunca inclua algo na tela que não foi descrito na forma de testes.</p>
<p><strong>É muito mais fácil manter classes do que scripts. </strong></p>
<p>Não demorará muito para você começar a reutilizar seus POs e poder aplicar todos os recursos de refatoração que você já conhece. Novos testes poderão ser incluídos mais facilmente e mudanças no layout afetarão apenas POs específicos.</p>
<p>Então, ainda existe alguma razão para não escrever testes para a interface com o usuário? Espero que não, mas se tiver, me avise!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/128/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/128/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=128&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2008/04/20/como-usar-tdd-e-page-objects-para-construir-interfaces-web/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2af6eef5bb903cd0d7530196d942a8c6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Sanchez</media:title>
		</media:content>
	</item>
		<item>
		<title>Does TDD Really Ensure Quality?</title>
		<link>http://dojofloripa.wordpress.com/2008/01/29/does-tdd-really-ensure-quality/</link>
		<comments>http://dojofloripa.wordpress.com/2008/01/29/does-tdd-really-ensure-quality/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 18:32:12 +0000</pubDate>
		<dc:creator>Victor Hugo Germano</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/?p=123</guid>
		<description><![CDATA[     	        	There&#8217;s been some interesting commentary on the National Research Council of Canada&#8217;s paper titled &#8220;The Effectiveness of Test-first Approach to Programming&#8221; . The study, carried out on a sample size of 24 IT graduates, adds to the growing body of research on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=123&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>     	        	There&#8217;s been some interesting commentary on the National Research Council of Canada&#8217;s paper titled <a href="http://iit-iti.nrc-cnrc.gc.ca/iit-publications-iti/docs/NRC-47445.pdf" title="paper" id="ycu-">&#8220;The Effectiveness of Test-first Approach to Programming&#8221;</a> . The study, carried out on a sample size of 24 IT graduates, adds to the growing body of research on the topic. Though TDD is accepted as an excellent learning tool for quickly understanding the domain in which developers work, the question of whether TDD directly correlates quality in software is still considered unproven by some. This study, while still not conclusive, does show some interesting results &#8211; though different results, depending on who&#8217;s analysing them.</p>
<p>Leia <a href="http://www.infoq.com/news/2008/01/does-tdd-mean-quality" target="_blank">post completo</a> (<a href="http://www.infoq.com">InfoQ</a>)</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/123/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/123/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=123&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2008/01/29/does-tdd-really-ensure-quality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0af60e844d901dd0bb943541b357b192?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Victor Hugo Germano</media:title>
		</media:content>
	</item>
		<item>
		<title>Dojo Metodologias!! 12/11</title>
		<link>http://dojofloripa.wordpress.com/2007/11/08/dojo-metodologias-1211/</link>
		<comments>http://dojofloripa.wordpress.com/2007/11/08/dojo-metodologias-1211/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 20:13:57 +0000</pubDate>
		<dc:creator>Victor Hugo Germano</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/2007/11/08/dojo-metodologias-1211/</guid>
		<description><![CDATA[Saudações a todos!
A idéia surgiu  no Chopp Dojo, partindo do pessoal da Fundação Certi (o Bosco).
Gostariamos de reunir as pessoas para conversarem e trocarem informações sobre metodologias de desenvolvimento/gerenciamento&#8230; nas palavras do próprio Bosco:
 DOJO Metodologias: Dojo cujo objetivo é trocar experiência sobre
metodologias de desenvolvimento de software. Seria como se cada
participante fizesse uma pequena [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=120&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Saudações a todos!<br />
A idéia surgiu  no <a href="http://dojofloripa.wordpress.com/2007/09/19/chopp-dojo-1910-as-19hs/">Chopp Dojo</a>, partindo do pessoal da Fundação Certi (o Bosco).</p>
<p>Gostariamos de reunir as pessoas para conversarem e trocarem informações sobre metodologias de desenvolvimento/gerenciamento&#8230; nas palavras do próprio Bosco:</p>
<blockquote><p> <em><strong>DOJO Metodologias: Dojo cujo objetivo é trocar experiência sobre<br />
metodologias de desenvolvimento de software. Seria como se cada<br />
participante fizesse uma pequena apresentação sobre a metodologia que<br />
ele utiliza, SCRUM/XP e etc. Estas apresentações poderiam ser<br />
informais e focadas na prática.</strong></em></p></blockquote>
<p>A reunião será realizada novamente na Fundação Certi às 19:00hs, e como todos os outros eventos por lá, é necessário confirmar presença:</p>
<p>Gustavo Maestri &lt;<a href="mailto:gaa@certi.org.br">gaa at certi.org.br</a>&gt;, enviando RG e nome completo.</p>
<p>Gostaria muito de ver pessoas relacionadas às áreas do MPS.BR ou RUP, OPEN UP, CMMI&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/120/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/120/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=120&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2007/11/08/dojo-metodologias-1211/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0af60e844d901dd0bb943541b357b192?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Victor Hugo Germano</media:title>
		</media:content>
	</item>
		<item>
		<title>Você realmente conhece JavaScript?</title>
		<link>http://dojofloripa.wordpress.com/2007/09/18/voce-realmente-conhece-javascript/</link>
		<comments>http://dojofloripa.wordpress.com/2007/09/18/voce-realmente-conhece-javascript/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 15:12:52 +0000</pubDate>
		<dc:creator>Victor Hugo Germano</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/2007/09/18/voce-realmente-conhece-javascript/</guid>
		<description><![CDATA[Saudações!
Seguindo uma série de posts iniciados pelo Rafael Mueller e apoiado pela Maldita Comédia, trago ao dojo a seguinte afirmação: Você acha que conhece javaScript, mas não tem a menor idéia.
JavaScript possui Orientação Objetos?  &#8211; Sim!
JavaScript possui Testes? Claro que sim!
Aos mais acostumados com o JMock, o código abaixo não será muito problema:
 var [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=110&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Saudações!<br />
Seguindo uma série de posts iniciados pelo <a href="http://queroseragil.wordpress.com">Rafael Mueller</a> e apoiado pela <a href="http://malditacomedia.blogspot.com">Maldita Comédia</a>, trago ao dojo a seguinte afirmação: <a href="http://queroseragil.wordpress.com/category/javascript/">Você acha que conhece javaScript, mas não tem a menor idéia</a>.</p>
<p><strong><em>JavaScript possui Orientação Objetos?</em></strong>  &#8211; <a href="http://malditacomedia.blogspot.com/2007/08/you-think-you-know-javascript-but-you.html">Sim</a>!<br />
<strong><em>JavaScript possui Testes?</em></strong> Claro que sim!<br />
Aos mais acostumados com o <a href="http://www.jmock.org/">JMock</a>, o código abaixo não será muito problema:</p>
<blockquote><p> var mockControl = new MockControl();<br />
workerMock = mockControl.createMock(Worker);</p>
<p>workerMock.expects().isFinished().andReturn(true);<br />
workerMock.expects().getValue().andReturn(&#8216;hello&#8217;);</p>
<p>var result = doWork(workerMock);</p>
<p>assertEquals(&#8216;hello&#8217;, result);<br />
mockControl.verify();</p></blockquote>
<p><strong>Explicação rápida:</strong> Exemplo de utilização de um mock para determinar o comportamento da classe Worker ao ser executado o método<em> doWork()</em>. Simples&#8230; e se eu disser que esse código é javaScript? Legal né?</p>
<p>Encontrei duas ferramentas interessantes para auxiliar na construção de código em JavaScript: <a href="http://www.jsunit.net/">jsUnit</a> e <a href="http://jsmock.sourceforge.net">jsMock</a>. Frameworks muito interessantes que não deixam a desejar em nenhum quesito relacionado a TDD. O exemplos existentes nos sites são bastante explicativos, não será um problema iniciar a criação de testes com as ferramentas. Sendo javascript uma linguagem pouco tipada, a técnica Stub é facilmente incorporada. Vale a pena tentar!</p>
<p>Falei grego? Ainda não sabe qual a diferença entre Mock &amp; Stubs? Descubra aqui: <a href="http://dojofloripa.wordpress.com/2007/09/10/tudo-sobre-tdd/">Tudo sobre TDD</a></p>
<p>Votem em nossa enquete: <a href="http://malditacomedia.blogspot.com/2007/09/enquete-o-que-o-dojofloripa-pode-fazer.html">O que o DojoFloripa pode fazer por você?</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/110/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/110/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=110&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2007/09/18/voce-realmente-conhece-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0af60e844d901dd0bb943541b357b192?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Victor Hugo Germano</media:title>
		</media:content>
	</item>
		<item>
		<title>Enquete: O que nós podemos fazer por você?</title>
		<link>http://dojofloripa.wordpress.com/2007/09/14/enquete-o-que-nos-podemos-fazer-por-voce/</link>
		<comments>http://dojofloripa.wordpress.com/2007/09/14/enquete-o-que-nos-podemos-fazer-por-voce/#comments</comments>
		<pubDate>Fri, 14 Sep 2007 21:22:49 +0000</pubDate>
		<dc:creator>Victor Hugo Germano</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[eXtreme Programming]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/2007/09/14/enquete-o-que-nos-podemos-fazer-por-voce/</guid>
		<description><![CDATA[Saudações!
Já que o WordPress não nos dá a possibilidade de colocar enquetes no site, colocamos no site A Maldita Comédia mesmo!!!
Eu e o Ivan queremos melhorar o conteúdo do site, e com o número grande de pessoas que acessam aceitamos o desafio de perguntar a todos: O que temos que melhorar?!
Votem! Conto com a sinceridade [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=109&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Saudações!<br />
Já que o WordPress não nos dá a possibilidade de colocar enquetes no site, colocamos no site <a href="http://malditacomedia.blogspot.com">A Maldita Comédia</a> mesmo!!!</p>
<p>Eu e o Ivan queremos melhorar o conteúdo do site, e com o número grande de pessoas que acessam aceitamos o desafio de perguntar a todos: <a href="http://malditacomedia.blogspot.com/2007/09/enquete-o-que-o-dojofloripa-pode-fazer.html"><strong><em>O que temos que melhorar?!</em></strong></a></p>
<p>Votem! Conto com a sinceridade e a compreensão de todos que queremos realmente gerar conteúdo de qualidade!</p>
<p>Obrigado!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/109/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/109/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=109&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2007/09/14/enquete-o-que-nos-podemos-fazer-por-voce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0af60e844d901dd0bb943541b357b192?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Victor Hugo Germano</media:title>
		</media:content>
	</item>
		<item>
		<title>CppUnit e o Borland C++ Builder 6</title>
		<link>http://dojofloripa.wordpress.com/2007/09/06/cppunit-e-o-borland-c-builder-6/</link>
		<comments>http://dojofloripa.wordpress.com/2007/09/06/cppunit-e-o-borland-c-builder-6/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 16:02:41 +0000</pubDate>
		<dc:creator>Victor Hugo Germano</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/2007/09/06/cppunit-e-o-borland-c-builder-6/</guid>
		<description><![CDATA[Post originalmente inserido em A Maldita Comédia, com o mesmo título. Segue a transcrição do post, que achei bastante pertinente inserir no CodingDojoFloripa.
Bem, como vocês já sabem, estou em uma nova empresa, a Audaces. Em princípio trabalharei com integração contínua, e estou no momento fazendo testes com o ambiente da Borland. É um mundo completamente [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=105&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Post originalmente inserido em <a href="http://malditacomedia.blogspot.com/">A Maldita Comédia</a>, com o mesmo <a href="http://malditacomedia.blogspot.com/2007/09/cppunit-e-borland-c-builder-6.html">título</a>. Segue a transcrição do post, que achei bastante pertinente inserir no <a href="http://dojofloripa.wordpress.com">CodingDojoFloripa</a>.</p>
<p>Bem, como vocês <a href="http://malditacomedia.blogspot.com/2007/08/ares-novos-para-um-corao-sufocado.html">já sabem</a>, estou em uma nova empresa, a <a href="http://www.audaces.com.br/">Audaces</a>. Em princípio trabalharei com integração contínua, e estou no momento fazendo testes com o ambiente da Borland. É um mundo completamente novo para mim, e estou bastante animado com os resultados! C++!! Segue abaixo um pequeno(e simples) tutorial sobre como iniciar seus testes utilizando Borland C++ Builder 6.</p>
<p><strong>Configuracao de ambiente para testes utilizando o CPPUnit e Borland C++ Builder 6 (BCB6)</strong></p>
<p><strong>Referências:</strong></p>
<ul>
<li><a href="http://http//cppunit.sourceforge.net/cppunit-wiki">CppUnit Wiki</a> (inglês)</li>
<li><a href="http://http//community.borland.com/article/0,1410,32704,00.html">Code Gear from Borland: CppUnit Tests with C++BuilderX </a>(inglês)
<ul>
<li>nao funcionou corretamente no BSC6</li>
</ul>
</li>
<li><a href="http://www.wikilearning.com/pruebas_unitarias_con_cppunit-wkc-3855.htm">Curso online: Pruebas unitarias con CppUnit</a> (espanhol)
<ul>
<li>funcionou corretamente no BSC6</li>
</ul>
</li>
</ul>
<p><strong>Requisitos:</strong></p>
<ul>
<li>Borland C++ Builder 6 =)</li>
<li><a href="http://users.servicios.retecal.es/sapivi/src/CPPUnitBCB6.zip">Versão do CppUnit para o BCB6</a></li>
</ul>
<p><strong>Instalação</strong></p>
<p>Será apresentada a utilização do cppUnit para o C Builder através da criação de uma aplicação simples. Seguem os passos para tal:</p>
<p>1. Descompactar CPPUnitBCB6 (Ex: C:\CPPUnitBCB6)</p>
<p>2. Iniciar um projeto novo no BCB (File&gt; New &gt;Application)</p>
<p>2.1 Vincular ao projeto os Headers relativos ao CppUnit.<br />
Faça isso adicionando os diretórios ao projeto em &#8220;Project&gt; Options&gt; Directories/Conditionals &gt;Include path&#8221;<br />
Selecione os diretórios:</p>
<ul>
<li><em>%cppunit_dir%\borland\TestRunner</em></li>
<li><em> %cppunit_dir%\test\textui</em></li>
<li><em> %cppunit_dir%\test\framework</em></li>
<li><em> %cppunit_dir%\test\framework\extensions</em></li>
</ul>
<p>2.2 Remover o formulário inicial (Form1) em &#8220;Project&gt; Remove from Project&#8230;&gt; Unit1.cpp&#8221;</p>
<p>3. Bibliotecas:</p>
<p>3.1 Adicione ao projeto as bibliotecas do CppUnit em &#8220;Project&gt;Add to Project&#8230;&#8221;</p>
<ul>
<li>%cppunit_dir%\bin\culib.lib</li>
<li> %cppunit_dir%\bin\TestRunnerDlg.lib</li>
</ul>
<p>3.2 Copie a dll existente em: %cppunit_dir%\bin\TestRunnerDlg.dll para dentro do diretório do projeto</p>
<p>4. Crie uma classe de testes Simples:</p>
<p>A primeira classe a ser criada será chamada de FirstTest. Iniciaremos por seu Header, que deve extender a classe TestCase. É necessário declarar os métodos setUp() e tearDown() para que o funcionamento ocorra normalmente.</p>
<blockquote><pre>#ifndef FIRST_TEST_H
#define FIRST_TEST_H

#include "TestCase.h"
#include "TestCaller.h"

class FirstTest: public TestCase
{
public:
    FirstTest(std::string name);
    void setUp();
    void tearDown();
    static Test *suite();
protected:
    void testAssertTrue();
    void testAssertFalse();
    void testFalhara();
    void testAssertMaisUmExemplo();
};

typedef TestCaller&lt;firsttest&gt;
               FirstTestCaller;
#endif</pre>
</blockquote>
<p>.Abaixo segue a implementação dessa classe. FirstTest.cpp</p>
<blockquote><pre>#include "FirstTest.h"
#include "TestSuite.h"

FirstTest::FirstTest(std::string name): TestCase(name) {
}

void FirstTest::setUp() {    }

void FirstTest::tearDown() { }
Test* FirstTest::suite() {
// All tests have to be explicity added to TestSuite to be executed
TestSuite *suite ;
suite = new TestSuite("nameFirstTest");
suite-&gt;addTest(
    new FirstTestCaller("assert True", &amp;FirstTest::testAssertTrue));
suite-&gt;addTest(
    new FirstTestCaller("assert False", &amp;FirstTest::testAssertFalse));
suite-&gt;addTest(
    new FirstTestCaller("teste que falha", &amp;FirstTest::testFalhara));
suite-&gt;addTest(
    new FirstTestCaller("teste equals", &amp;FirstTest::testAssertMaisUmExemplo));
return (suite);
}

void FirstTest::testAssertTrue()
{
assert( true );
}

void FirstTest::testAssertFalse()
{
assert( !false );
}

void FirstTest::testFalhara()
{
assert( false );
}

void FirstTest::testAssertMaisUmExemplo()
{
assertDoublesEqual(0, 0, 0);
}</pre>
</blockquote>
<p>6. Testando o funcionamento do CppUnit:</p>
<p>O método suite() serve para que se possa adicionar todos os métodos de testes que a classe possui e que devem ser executados. Caso um método nao seja adicionado ao TestSuite neste método, ele não serpa executado.<br />
Edite o código inicial do projeto (&#8220;Project&gt; View Source&#8221;), adicionando a chamativa ao CppUnit após a compilar a aplicação. Exemplo projExemplo.cpp:</p>
<blockquote><pre>#include &lt;vcl.h&gt;
#pragma hdrstop

#include "ITestRunner.h"
#include "FirstTest.h"
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
ITestRunner runner;

runner.addTest(FirstTest::suite());

runner.run();

}
catch (Exception &amp;exception)
{
Application-&gt;ShowException(&amp;exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &amp;exception)
{
Application-&gt;ShowException(&amp;exception);
}
}
return 0;
}</pre>
</blockquote>
<p>Pressione F9. Uma ferramenta gráfica aparecerá e você terá como visualizar todos os testes escritos na classe FirstTest. Clique em run e divirta-se.<br />
Obs: propositalmente neste tutorial eu inseri um teste que falhará, para que você possa ver o funcionamento da ferramenta&#8230;</p>
<p>=)</p>
<p>Edit Note: Pequena correção para ampliar o entendimento do documento</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/105/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/105/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=105&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2007/09/06/cppunit-e-o-borland-c-builder-6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0af60e844d901dd0bb943541b357b192?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Victor Hugo Germano</media:title>
		</media:content>
	</item>
		<item>
		<title>Anti-Padrões de TDD</title>
		<link>http://dojofloripa.wordpress.com/2007/08/23/anti-padroes-de-tdd/</link>
		<comments>http://dojofloripa.wordpress.com/2007/08/23/anti-padroes-de-tdd/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 12:22:26 +0000</pubDate>
		<dc:creator>Victor Hugo Germano</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dojofloripa.wordpress.com/2007/08/23/anti-padroes-de-tdd/</guid>
		<description><![CDATA[Saudações! Sou Victor Hugo, do blog  A Maldita Comédia , e vou ajudar o Ivan a atualizar este blog com informações relativas ao CodingDojo e a TDD. Então vamos lá!
Traduzi um texto do blog do James Carr que trata sobre Anti-padrões de TDD. Bastante interessante, mas ainda falta um pouco de discussão a respeito. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=100&subd=dojofloripa&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Saudações! Sou Victor Hugo, do blog  <a href="http://malditacomedia.blogspot.com" target="_blank">A Maldita Comédia</a> , e vou ajudar o Ivan a atualizar este blog com informações relativas ao CodingDojo e a TDD. Então vamos lá!</p>
<p>Traduzi um texto do blog do <a href="http://blog.james-carr.org" target="_blank">James Carr</a> que trata sobre Anti-padrões de TDD. Bastante interessante, mas ainda falta um pouco de discussão a respeito.  Seguem abaixo os principais (e mais comuns) anti-padrões:</p>
<p>Veja a <a href="http://malditacomedia.blogspot.com/2007/08/tdd-anti-patterns.html" title="TDD Anti-Patterns" target="_blank">Lista Completa</a></p>
<ul>
<li>The Liar <span style="font-weight:normal;"></span>
<ul>
<li>Todos os metodos de um teste unitário estão passando perfeitamente, aparentando serem validos, entretanto sob uma inspeção mais próxima é descoberto que o teste unitário não testa o real intuíto para que foi criado.</li>
</ul>
</li>
</ul>
<ul>
<li>Excessive Setup <span style="font-weight:normal;"></span>
<ul>
<li>Um teste que necessita muito trabalho para ser configurado antes mesmo de ser executado. Algumas vezes centenas de linhas de código tornam-se necessárias para adaptar o ambiente a um único método de testes, com dezenas de objetos envolvidos. Aqui a maior dificuldade é compreender &#8220;o quê&#8221; realmente está sendo testado dentro de toda a &#8220;sujeira&#8221; que um setup pode causar. (tradutor: <span style="font-style:italic;">Lembrem-se sempre do princípio <a href="http://en.wikipedia.org/wiki/KISS_principle">KISS</a></span>)</li>
</ul>
</li>
<li>The local Hero
<ul>
<li>Um teste que é dependente de algo específico do ambiente de desenvolvimento em que ele foi escrito. O resultado: o teste passa perfeitamente na células de desenvolvimento, mas falha quando alguém tenta executá-lo fora desse ambiente.</li>
</ul>
</li>
<li>The Stranger
<ul>
<li>Um método de teste que nem ao menos pertence ao Teste Unitário que ele está inserido. O método está realmente testando um objeto separado e independente, normalmente um objeto utilizado pelo objeto que sofre o teste.</li>
</ul>
</li>
</ul>
<p>É isso ai&#8230;  Veja a <a href="http://malditacomedia.blogspot.com/2007/08/tdd-anti-patterns.html" title="TDD Anti-Patterns" target="_blank">Lista Completa</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dojofloripa.wordpress.com/100/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dojofloripa.wordpress.com/100/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dojofloripa.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dojofloripa.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dojofloripa.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dojofloripa.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dojofloripa.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dojofloripa.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dojofloripa.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dojofloripa.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dojofloripa.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dojofloripa.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dojofloripa.wordpress.com&blog=466612&post=100&subd=dojofloripa&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dojofloripa.wordpress.com/2007/08/23/anti-padroes-de-tdd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0af60e844d901dd0bb943541b357b192?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Victor Hugo Germano</media:title>
		</media:content>
	</item>
	</channel>
</rss>