﻿<?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>Comentários sobre: Práticas XP ajudando na efetividade do teste de software</title>
	<atom:link href="http://www.bugbang.com.br/?feed=rss2&#038;p=373" rel="self" type="application/rss+xml" />
	<link>http://www.bugbang.com.br/?p=373</link>
	<description>Qualidade e Engenharia de Software</description>
	<lastBuildDate>Fri, 13 Aug 2010 15:00:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: O melhor do Ensinar – 23/01 a 31/01 &#171; Blog do Ensinar</title>
		<link>http://www.bugbang.com.br/?p=373&#038;cpage=1#comment-20</link>
		<dc:creator>O melhor do Ensinar – 23/01 a 31/01 &#171; Blog do Ensinar</dc:creator>
		<pubDate>Mon, 01 Feb 2010 13:26:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.camiloribeiro.com/blog/?p=373#comment-20</guid>
		<description>[...] Práticas XP ajudando na efetividade do teste de software &#8211; Camilo Ribeiro (The Bug Bang Theory); [...]</description>
		<content:encoded><![CDATA[<p>[...] Práticas XP ajudando na efetividade do teste de software &#8211; Camilo Ribeiro (The Bug Bang Theory); [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: O melhor da semana 24/01 a 30/01 &#171; QualidadeBR</title>
		<link>http://www.bugbang.com.br/?p=373&#038;cpage=1#comment-19</link>
		<dc:creator>O melhor da semana 24/01 a 30/01 &#171; QualidadeBR</dc:creator>
		<pubDate>Mon, 01 Feb 2010 00:40:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.camiloribeiro.com/blog/?p=373#comment-19</guid>
		<description>[...] Práticas XP ajudando na efetividade do teste de software &#8211; Camilo Ribeiro (The Bug Bang Theory); [...]</description>
		<content:encoded><![CDATA[<p>[...] Práticas XP ajudando na efetividade do teste de software &#8211; Camilo Ribeiro (The Bug Bang Theory); [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Eduardo Gomes</title>
		<link>http://www.bugbang.com.br/?p=373&#038;cpage=1#comment-18</link>
		<dc:creator>Eduardo Gomes</dc:creator>
		<pubDate>Sat, 30 Jan 2010 22:54:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.camiloribeiro.com/blog/?p=373#comment-18</guid>
		<description>Camilo,

Muito interessante seu post e também as discussões com o Fabrício sobre o tema. 
Não sou um profundo conhecedor das metodologias ágeis, mas sempre tive muita simpatia pela idéias. 
Condordo que seja possível aplicar as práticas recomendadas pelos processos ágeis para melhorarmos os nossos testes, mas vejo uma grande dificuldade nisso quando falamos de organizações maiores, onde as metodologias tradicionais estão muito enraizadas na cultura.
De qualquer forma, penso que boas práticas podem ser aplicadas com sucesso em vários contextos, inclusive conciliando metodologias tradicionais e ágeis, dependendo apenas do bom senso de quem as aplica.  

Abraço.</description>
		<content:encoded><![CDATA[<p>Camilo,</p>
<p>Muito interessante seu post e também as discussões com o Fabrício sobre o tema.<br />
Não sou um profundo conhecedor das metodologias ágeis, mas sempre tive muita simpatia pela idéias.<br />
Condordo que seja possível aplicar as práticas recomendadas pelos processos ágeis para melhorarmos os nossos testes, mas vejo uma grande dificuldade nisso quando falamos de organizações maiores, onde as metodologias tradicionais estão muito enraizadas na cultura.<br />
De qualquer forma, penso que boas práticas podem ser aplicadas com sucesso em vários contextos, inclusive conciliando metodologias tradicionais e ágeis, dependendo apenas do bom senso de quem as aplica.  </p>
<p>Abraço.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Camilo Ribeiro</title>
		<link>http://www.bugbang.com.br/?p=373&#038;cpage=1#comment-17</link>
		<dc:creator>Camilo Ribeiro</dc:creator>
		<pubDate>Fri, 29 Jan 2010 19:05:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.camiloribeiro.com/blog/?p=373#comment-17</guid>
		<description>Em primeiro lugar, obrigado pelo comentário &quot;tão extenso&quot; Fabrício :)
É bom saber que pessoas como você, estudam ainda a noite quando chegam cansados do trabalho, ainda mais quando gastam um pouco do tempo com nossos pensamentos ou pesquisas. São atitudes assim que fazem valer a pena escrever para o mundo. &quot;Valew&quot;

Bom, também não sou xiita de nenhum dos lados, sou fã do &quot;use o que for melhor&quot;, mas reconheço que o movimento xiita de &lt;em&gt;agile&lt;/em&gt; é um dos que mais está crescendo ultimamente, da mesma forma que os tradicionalistas ortodoxos de sempre não &quot;morreram&quot; ainda. 

Acho que a nossa geração Y está aprendendo a adaptar os conceitos e trabalhar com o melhor de cada metodologia.

Os meus comentários iniciais nos &lt;em&gt;posts&lt;/em&gt; foram bem superficiais, vou tentar esclarecer qualquer mal entendido, usando a mesma didática que apresentou no comentário:

•Não entendi a parte que você fala que ele substitui o teste de confirmação. 
&gt; Quando criamos esse novo caso de testes, com os procedimentos necessários para reproduzir o erro, já com os resultados esperados entradas e saídas, evitamos realizar o teste de confirmação num próximo ciclo de teste. Por exemplo, o teste que seria realizado para avaliar se o erro foi corrigido passa a ser um teste mais abrangente, visualizando a situação em que o defeito foi identificado, e não se o defeito identificado ainda existe. Reconheço que se fosse dar um nome para esse caso de teste, poderia ser chamado de &quot;caso de teste baseado em defeito&quot; ou &quot;caso de teste de confirmação&quot;, mas o importante nesse caso, é tentar abstrair do erro identificado, para a situação em que o erro aconteceu.

•&lt;em&gt;All code must have unit tests&lt;/em&gt;
&gt; Pode ser e pode não ser fácil. Quando falei sobre o meu &quot;maravilhoso mundo da engenharia de software&quot; falo sobre uma equipe interessada na qualidade, motivada e capacitada, o que realmente não é muito fácil. Agora te pergunto se desenvolver um sistema não é complexo? Se criar casos de teste não é uma atividade complexa? O que faz uma atividade deixar de ser complicada para ser complexa é o investimento nessa atividade. Os &lt;em&gt;unit tests&lt;/em&gt; não são um &quot;bicho de sete cabeças&quot; como muita gente pensa, principalmente desenvolvedores, mas uma prática como qualquer outra. Andar para a frente é complexo, mas depois de alguns anos se torna algo que nem percebemos o esforço que fazemos. 

•a história costuma ser usada no lugar dos requisitos e do caso de uso
&gt; Sim, as histórias e os requisitos tem o mesmo objetivo, mas acho que as histórias entram um pouco mais dentro do que o sistema deve fazer e os requisitos do que o sistema deve prover. Mais ou menos como se o requisitos fossem o &quot;o que&quot; o sistema deve fazer do ponto de vista de negócios e as histórias um detalhamento, entrando um pouco mais no &quot;como&quot; o sistema deve fazer do ponto de vista do negócio. Particularmente nunca trabalhei com histórias de usuários e mas &quot;doido&quot; para conhecer e trabalhar.

•não entendi muito bem, esses testes já não são feitos
&gt; Sim e não. Os testes realizados no &quot;&lt;em&gt;Acceptance tests are run often and the score&lt;/em&gt;&quot; são testes baseados nos requisitos, os realizados aqui são sequencias ordenadas de casos de teste, que tem um sentido semântico baseado nos requisitos, mas o nível de detalhamento requer experiência de testador. É como fizer que no teste &quot;&lt;em&gt;Integrate testing often&quot; você testa os mesmos&lt;/em&gt; &quot;cenários de negócio&quot; que testa no &quot;&lt;em&gt;Acceptance tests are run often and the score&lt;/em&gt;&quot;, mas com um nível de detalhamento muito diferente. O objetivo de um é testar o negócio, o objetivo do outro é testar em detalhes num cenário.

•a mudança pra gente não é tão fácil 
&gt; Inicialmente não considerei a possibilidade de automação, mas automação seria feita somente no momento em que boa parte dos requisitos estivessem &quot;congelados&quot;. O que acho importante frisar, é que os testes devem representar o &quot;estado da arte&quot; do sistema em desenvolvimento. 

•“Testar da forma mais eficiente possível”.
&gt; Concordo, mas quando tivermos uma dúvida sobre &quot;testamos o suficiente?&quot; é melhor tomar como &quot;não, ainda podemos testar mais&quot; do que &quot;Acho que sim&quot;. :)

•“una cosa es una cosa y otra cosa es otra cosa”
&gt; Concordo com você, mas o que eu digo é dar preferência para executar o contexto completo do que uma particularidade. O que eu não quero que a pessoa limite-se a testar o defeito encontrado acreditando que o contexto do problema foi resolvido. O teste de confirmação é necessário, mas na minha opinião, se eu tiver que escolher entre os dois, minha escolha é o teste de regressão. ;)

•hoje em dia há várias ferramentas que nos auxiliam nisso
&gt; Open Source e free inclusive, e ainda assim muita gente não usa . . . fico um pouco triste por isso, mas acho que está mudando.

Sobre o final do seu comentário. O problema é que hoje em dia tudo é importante e tudo é prioridade, como nossa consultora Juliana Herbert diz: &quot;Quando tudo é importante, nada é importante&quot;. Se as aplicações citadas forem importantes para a organização, elas podem exigir, como tudo na vida, um tempo de adaptação sim, mas quando mudamos nossos conceitos e decidimos que vamos usar atividade X ou documentação Y, tudo se torna mais fácil.

Por outro lado . . . Sei como eu as vezes sou simplista demais, e penso que de alguma forma podemos mudar as coisas de uma rapidamente se empenharmos em resolver o problema. Acho que ficou um pouco mais claro nesse post, mas vou tentar controlar isso para as próximas. :) 
Acho que você está certo, e muitas vezes as praticas acima podem ser difíceis de aplicar. Mas como são praticas, são mais fáceis de aplicar do que conjuntos de processos e ferramentas, e peço que considere o cenário acima comparado com um conjunto de processos e ferramentas novas, onde paradigmas sofrem grandes modificações e longos treinamentos são necessários. :)

Para quem começou na área de teste sem um mentor, na famosa metodologia de teste chamada &quot;Testa aí&quot;, sabe como a idéia de caso de teste pode causar repulsa no começo, mas pergunte para uma pessoa que depois de 3~4 anos na vida de teste de software, se ela acha que consegue testar como se deve sem usar casos de teste. A resposta provavelmente será não. Usar caso de teste também foi a um tempo atrás como os testes de unidade são hoje. Uma coisa estranha, que podia gerar pouco valor, que as pessoas tinham medo de investir e etc., mas hoje é um padrão universal. Toda empresa com um departamento de teste ou com bons profissionais de teste tem um modo de gerenciar os testes e usar casos de teste para controlar a qualidade dos projetos.

Fabrício, mais uma vez obrigado pelos elogios e muito obrigado pelas críticas também. Confesso que estudei bastante para pensar nesse &lt;em&gt;post&lt;/em&gt;, e sei que muita coisa ainda deve estar errada ou fora do normal, mas meu objetivo com ele é estudar mais sobre &lt;em&gt;agile &lt;/em&gt;para que em algum tempo possa aplicar mais no meu dia a dia e nos processos aqui na empresa, e que sem dúvida, comentários como o seu me ajudam a entender melhor esse &quot;&lt;em&gt;brave new world&lt;/em&gt;&quot; que são as metodologias ágeis de desenvolvimento de software ;)</description>
		<content:encoded><![CDATA[<p>Em primeiro lugar, obrigado pelo comentário &#8220;tão extenso&#8221; Fabrício <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
É bom saber que pessoas como você, estudam ainda a noite quando chegam cansados do trabalho, ainda mais quando gastam um pouco do tempo com nossos pensamentos ou pesquisas. São atitudes assim que fazem valer a pena escrever para o mundo. &#8220;Valew&#8221;</p>
<p>Bom, também não sou xiita de nenhum dos lados, sou fã do &#8220;use o que for melhor&#8221;, mas reconheço que o movimento xiita de <em>agile</em> é um dos que mais está crescendo ultimamente, da mesma forma que os tradicionalistas ortodoxos de sempre não &#8220;morreram&#8221; ainda. </p>
<p>Acho que a nossa geração Y está aprendendo a adaptar os conceitos e trabalhar com o melhor de cada metodologia.</p>
<p>Os meus comentários iniciais nos <em>posts</em> foram bem superficiais, vou tentar esclarecer qualquer mal entendido, usando a mesma didática que apresentou no comentário:</p>
<p>•Não entendi a parte que você fala que ele substitui o teste de confirmação.<br />
&gt; Quando criamos esse novo caso de testes, com os procedimentos necessários para reproduzir o erro, já com os resultados esperados entradas e saídas, evitamos realizar o teste de confirmação num próximo ciclo de teste. Por exemplo, o teste que seria realizado para avaliar se o erro foi corrigido passa a ser um teste mais abrangente, visualizando a situação em que o defeito foi identificado, e não se o defeito identificado ainda existe. Reconheço que se fosse dar um nome para esse caso de teste, poderia ser chamado de &#8220;caso de teste baseado em defeito&#8221; ou &#8220;caso de teste de confirmação&#8221;, mas o importante nesse caso, é tentar abstrair do erro identificado, para a situação em que o erro aconteceu.</p>
<p>•<em>All code must have unit tests</em><br />
&gt; Pode ser e pode não ser fácil. Quando falei sobre o meu &#8220;maravilhoso mundo da engenharia de software&#8221; falo sobre uma equipe interessada na qualidade, motivada e capacitada, o que realmente não é muito fácil. Agora te pergunto se desenvolver um sistema não é complexo? Se criar casos de teste não é uma atividade complexa? O que faz uma atividade deixar de ser complicada para ser complexa é o investimento nessa atividade. Os <em>unit tests</em> não são um &#8220;bicho de sete cabeças&#8221; como muita gente pensa, principalmente desenvolvedores, mas uma prática como qualquer outra. Andar para a frente é complexo, mas depois de alguns anos se torna algo que nem percebemos o esforço que fazemos. </p>
<p>•a história costuma ser usada no lugar dos requisitos e do caso de uso<br />
&gt; Sim, as histórias e os requisitos tem o mesmo objetivo, mas acho que as histórias entram um pouco mais dentro do que o sistema deve fazer e os requisitos do que o sistema deve prover. Mais ou menos como se o requisitos fossem o &#8220;o que&#8221; o sistema deve fazer do ponto de vista de negócios e as histórias um detalhamento, entrando um pouco mais no &#8220;como&#8221; o sistema deve fazer do ponto de vista do negócio. Particularmente nunca trabalhei com histórias de usuários e mas &#8220;doido&#8221; para conhecer e trabalhar.</p>
<p>•não entendi muito bem, esses testes já não são feitos<br />
&gt; Sim e não. Os testes realizados no &#8220;<em>Acceptance tests are run often and the score</em>&#8221; são testes baseados nos requisitos, os realizados aqui são sequencias ordenadas de casos de teste, que tem um sentido semântico baseado nos requisitos, mas o nível de detalhamento requer experiência de testador. É como fizer que no teste &#8220;<em>Integrate testing often&#8221; você testa os mesmos</em> &#8220;cenários de negócio&#8221; que testa no &#8220;<em>Acceptance tests are run often and the score</em>&#8220;, mas com um nível de detalhamento muito diferente. O objetivo de um é testar o negócio, o objetivo do outro é testar em detalhes num cenário.</p>
<p>•a mudança pra gente não é tão fácil<br />
&gt; Inicialmente não considerei a possibilidade de automação, mas automação seria feita somente no momento em que boa parte dos requisitos estivessem &#8220;congelados&#8221;. O que acho importante frisar, é que os testes devem representar o &#8220;estado da arte&#8221; do sistema em desenvolvimento. </p>
<p>•“Testar da forma mais eficiente possível”.<br />
&gt; Concordo, mas quando tivermos uma dúvida sobre &#8220;testamos o suficiente?&#8221; é melhor tomar como &#8220;não, ainda podemos testar mais&#8221; do que &#8220;Acho que sim&#8221;. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>•“una cosa es una cosa y otra cosa es otra cosa”<br />
&gt; Concordo com você, mas o que eu digo é dar preferência para executar o contexto completo do que uma particularidade. O que eu não quero que a pessoa limite-se a testar o defeito encontrado acreditando que o contexto do problema foi resolvido. O teste de confirmação é necessário, mas na minha opinião, se eu tiver que escolher entre os dois, minha escolha é o teste de regressão. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>•hoje em dia há várias ferramentas que nos auxiliam nisso<br />
&gt; Open Source e free inclusive, e ainda assim muita gente não usa . . . fico um pouco triste por isso, mas acho que está mudando.</p>
<p>Sobre o final do seu comentário. O problema é que hoje em dia tudo é importante e tudo é prioridade, como nossa consultora Juliana Herbert diz: &#8220;Quando tudo é importante, nada é importante&#8221;. Se as aplicações citadas forem importantes para a organização, elas podem exigir, como tudo na vida, um tempo de adaptação sim, mas quando mudamos nossos conceitos e decidimos que vamos usar atividade X ou documentação Y, tudo se torna mais fácil.</p>
<p>Por outro lado . . . Sei como eu as vezes sou simplista demais, e penso que de alguma forma podemos mudar as coisas de uma rapidamente se empenharmos em resolver o problema. Acho que ficou um pouco mais claro nesse post, mas vou tentar controlar isso para as próximas. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Acho que você está certo, e muitas vezes as praticas acima podem ser difíceis de aplicar. Mas como são praticas, são mais fáceis de aplicar do que conjuntos de processos e ferramentas, e peço que considere o cenário acima comparado com um conjunto de processos e ferramentas novas, onde paradigmas sofrem grandes modificações e longos treinamentos são necessários. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Para quem começou na área de teste sem um mentor, na famosa metodologia de teste chamada &#8220;Testa aí&#8221;, sabe como a idéia de caso de teste pode causar repulsa no começo, mas pergunte para uma pessoa que depois de 3~4 anos na vida de teste de software, se ela acha que consegue testar como se deve sem usar casos de teste. A resposta provavelmente será não. Usar caso de teste também foi a um tempo atrás como os testes de unidade são hoje. Uma coisa estranha, que podia gerar pouco valor, que as pessoas tinham medo de investir e etc., mas hoje é um padrão universal. Toda empresa com um departamento de teste ou com bons profissionais de teste tem um modo de gerenciar os testes e usar casos de teste para controlar a qualidade dos projetos.</p>
<p>Fabrício, mais uma vez obrigado pelos elogios e muito obrigado pelas críticas também. Confesso que estudei bastante para pensar nesse <em>post</em>, e sei que muita coisa ainda deve estar errada ou fora do normal, mas meu objetivo com ele é estudar mais sobre <em>agile </em>para que em algum tempo possa aplicar mais no meu dia a dia e nos processos aqui na empresa, e que sem dúvida, comentários como o seu me ajudam a entender melhor esse &#8220;<em>brave new world</em>&#8221; que são as metodologias ágeis de desenvolvimento de software <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Fabrício Ferrari de Campos</title>
		<link>http://www.bugbang.com.br/?p=373&#038;cpage=1#comment-16</link>
		<dc:creator>Fabrício Ferrari de Campos</dc:creator>
		<pubDate>Fri, 29 Jan 2010 01:55:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.camiloribeiro.com/blog/?p=373#comment-16</guid>
		<description>Primeiramente, muito legal o post e parabéns pela coragem! Afinal, falar sobre metodologias é sempre algo que costuma gerar muita confusão, e gostei do foco no Teste de Software. :)

Eu não sou tradicionalista de carteirinha, e nem um agilista agilista xiita, mas confesso que tenho uma queda pelas práticas ágeis. :D

Bem, meus comentários abaixo, são baseados na minha opinião, portanto, estão sujeitos à críticas. :)

- Concordo com toda a introdução feita por você!

- &quot;When a bug is found, tests are created to guard against it coming back&quot; - pra mim isso é óbvio (rs), e tal prática cabe em qualquer metodologia. Não entendi a parte que você fala que ele substitui o teste de confirmação. (ele é o teste de confirmação!?)

- All code must have unit tests - sem dúvidas, a famosa história da janela quebrada, mas essa prática está longe de ser fácil;

- Acceptance tests are run often and the score - pra mim histórias de usuário e requisitos funcionais tem o mesmo objetivo, só que a história costuma ser usada no lugar dos requisitos e do caso de uso. Quando é adotado BDD, os testes de aceitação são os mesmos que foram utilizando para guiar o desenvolvimento, assim como os unitários viram testes de regressão depois;

- Testing Cicle Velocity (Project Velocity) - concordo.

- All code must pass all unit tests before be released - é bom que passem mesmo (rs), já ouvir casos que isso é levado bem a sério mesmo na prática, ou seja, essa prática não é ficção-científica!

- Integrate testing often (Integrate Often) - não entendi muito bem, esses testes já não são feitos utilizando a prática &quot;Acceptance tests are run often and the score&quot;?

- Refactor whenever and wherever possible - concordo, mas confesso que a mudança pra gente não é tão fácil não, pois estávamos acostumados a automatizar testes apenas quando a funcionalidade a ser testada estava estável;

- Dedicated Integration Computer - fundamental!

- The business analyst is always available - concordo que é difícil o cliente está presente, mas tal prática só deve ser usada quando realmente o cliente não pode participar, e mesmo assim o analista de negócio precisa está 100% alinhado ao cliente, vai 99% pelo menos (rs).

- Testar mais que o necessário - bonito falar isso, mas deve-se tomar cuidado, eu mudaria para &quot;Testar da forma mais eficiente possível&quot;. Pois devemos evitar desperdícios (lembre-se do Lean)

- Cadastrar um defeito inválido - concordo.

- Testes de regressão - discordo, &quot;una cosa es una cosa y otra cosa es otra cosa&quot;. O teste de confirmação existe para saber se o defeito foi corrigido, já o de regressão serve para verificar se a correção, não inseriu novos defeitos.

- Ciclo de teste completo - com automatização isso deixa de ser um sonho. :)

- Perseguir o zero erro - olha a cenoura aí gente! (rs). Mas concordo, só não me venha falar que o seu sistema tem zero defeitos, pois &quot;isso non ecziste!&quot;

- Automatizar o controle da execução dos testes e da cobertura dos requisitos pelos testes - hoje em dia há várias ferramentas que nos auxiliam nisso; :)

- Manter rastreabilidade dos defeitos para os casos de teste - importante!

- Priorizar os fluxos com maior número de defeitos para testes de regressão - concordo.

- Modificar constantemente os casos de teste que não apresentem defeitos - sem dúvidas (famoso paradoxo do pesticida).

Agora em relação as tais práticas poderem ser aplicadas &quot;em qualquer projeto, em qualquer fase do projeto, com qualquer equipe, individualmente ou acompanhadas de outras práticas, em qualquer metodologia de desenvolvimento de software&quot;, não acredito muito não, pois nem todas são tão simples assim, principalmente, porque muitas delas implicam em uma mudança de atitude e cultura.

É justamente aí que o Agile &quot;perde&quot; a sua mágica, não é tão fácil de implantar assim não, logicamente, que as práticas são mais simples, comparado aos princípios, mas os princípios são fundamentais. Ou seja, o ideal é que você entenda os princípios para saber o porque é necessário aplicar tais práticas, e serão tais princípios, que te ajudaram a tomar decisões em momentos difíceis. :)

Abraços! E mais uma vez parabéns pelo excelente post!

P.S.: Me desculpem pelo comentário tão extenso, espero que agregue alguma coisa.</description>
		<content:encoded><![CDATA[<p>Primeiramente, muito legal o post e parabéns pela coragem! Afinal, falar sobre metodologias é sempre algo que costuma gerar muita confusão, e gostei do foco no Teste de Software. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Eu não sou tradicionalista de carteirinha, e nem um agilista agilista xiita, mas confesso que tenho uma queda pelas práticas ágeis. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Bem, meus comentários abaixo, são baseados na minha opinião, portanto, estão sujeitos à críticas. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>- Concordo com toda a introdução feita por você!</p>
<p>- &#8220;When a bug is found, tests are created to guard against it coming back&#8221; &#8211; pra mim isso é óbvio (rs), e tal prática cabe em qualquer metodologia. Não entendi a parte que você fala que ele substitui o teste de confirmação. (ele é o teste de confirmação!?)</p>
<p>- All code must have unit tests &#8211; sem dúvidas, a famosa história da janela quebrada, mas essa prática está longe de ser fácil;</p>
<p>- Acceptance tests are run often and the score &#8211; pra mim histórias de usuário e requisitos funcionais tem o mesmo objetivo, só que a história costuma ser usada no lugar dos requisitos e do caso de uso. Quando é adotado BDD, os testes de aceitação são os mesmos que foram utilizando para guiar o desenvolvimento, assim como os unitários viram testes de regressão depois;</p>
<p>- Testing Cicle Velocity (Project Velocity) &#8211; concordo.</p>
<p>- All code must pass all unit tests before be released &#8211; é bom que passem mesmo (rs), já ouvir casos que isso é levado bem a sério mesmo na prática, ou seja, essa prática não é ficção-científica!</p>
<p>- Integrate testing often (Integrate Often) &#8211; não entendi muito bem, esses testes já não são feitos utilizando a prática &#8220;Acceptance tests are run often and the score&#8221;?</p>
<p>- Refactor whenever and wherever possible &#8211; concordo, mas confesso que a mudança pra gente não é tão fácil não, pois estávamos acostumados a automatizar testes apenas quando a funcionalidade a ser testada estava estável;</p>
<p>- Dedicated Integration Computer &#8211; fundamental!</p>
<p>- The business analyst is always available &#8211; concordo que é difícil o cliente está presente, mas tal prática só deve ser usada quando realmente o cliente não pode participar, e mesmo assim o analista de negócio precisa está 100% alinhado ao cliente, vai 99% pelo menos (rs).</p>
<p>- Testar mais que o necessário &#8211; bonito falar isso, mas deve-se tomar cuidado, eu mudaria para &#8220;Testar da forma mais eficiente possível&#8221;. Pois devemos evitar desperdícios (lembre-se do Lean)</p>
<p>- Cadastrar um defeito inválido &#8211; concordo.</p>
<p>- Testes de regressão &#8211; discordo, &#8220;una cosa es una cosa y otra cosa es otra cosa&#8221;. O teste de confirmação existe para saber se o defeito foi corrigido, já o de regressão serve para verificar se a correção, não inseriu novos defeitos.</p>
<p>- Ciclo de teste completo &#8211; com automatização isso deixa de ser um sonho. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>- Perseguir o zero erro &#8211; olha a cenoura aí gente! (rs). Mas concordo, só não me venha falar que o seu sistema tem zero defeitos, pois &#8220;isso non ecziste!&#8221;</p>
<p>- Automatizar o controle da execução dos testes e da cobertura dos requisitos pelos testes &#8211; hoje em dia há várias ferramentas que nos auxiliam nisso; <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>- Manter rastreabilidade dos defeitos para os casos de teste &#8211; importante!</p>
<p>- Priorizar os fluxos com maior número de defeitos para testes de regressão &#8211; concordo.</p>
<p>- Modificar constantemente os casos de teste que não apresentem defeitos &#8211; sem dúvidas (famoso paradoxo do pesticida).</p>
<p>Agora em relação as tais práticas poderem ser aplicadas &#8220;em qualquer projeto, em qualquer fase do projeto, com qualquer equipe, individualmente ou acompanhadas de outras práticas, em qualquer metodologia de desenvolvimento de software&#8221;, não acredito muito não, pois nem todas são tão simples assim, principalmente, porque muitas delas implicam em uma mudança de atitude e cultura.</p>
<p>É justamente aí que o Agile &#8220;perde&#8221; a sua mágica, não é tão fácil de implantar assim não, logicamente, que as práticas são mais simples, comparado aos princípios, mas os princípios são fundamentais. Ou seja, o ideal é que você entenda os princípios para saber o porque é necessário aplicar tais práticas, e serão tais princípios, que te ajudaram a tomar decisões em momentos difíceis. <img src='http://www.bugbang.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Abraços! E mais uma vez parabéns pelo excelente post!</p>
<p>P.S.: Me desculpem pelo comentário tão extenso, espero que agregue alguma coisa.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
