<?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>Comments on: [Agile 2008 Conference] From High-performing to Hyper-performing Agile teams</title>
	<atom:link href="http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/feed/" rel="self" type="application/rss+xml" />
	<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/</link>
	<description>Blog sobre desenvolvimento de software e tecnologia</description>
	<lastBuildDate>Tue, 31 Aug 2010 16:41:22 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Diego Leao</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-13493</link>
		<dc:creator>Diego Leao</dc:creator>
		<pubDate>Wed, 07 Oct 2009 01:26:53 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-13493</guid>
		<description>Reescrevi o final de meu post a partir do &quot;Espero que outros(...)&quot; pois estava meio confuso:
----------------------------------------------------

Em qualquer projeto de médio porte se torna inviável manter funcionando 100% da interface sem que haja um mecanismo (automático ou não) para tanto. 

Posso pelo menos garantir que seus desenvolvedores não usarão o tempo das novas features para testar manualmente as permutações de uso de sua interface antiga. A GUI VAI quebrar e você vai pagar o pato.

Espero que outros desenvolvedores ágeis percebam que os testes de aceitação automatizados são parte inseparável de suas suites de testes, ou teremos clientes muito insatisfeitos no mundo ágil... De que adianta estar tudo &quot;perfeitamente testado&quot; se o botão “Submit” não faz nada?? Ou talvez faça, mas a tela de confirmação não aparece? E ao clicar em voltar ele recebe um erro?

Nós desenvolvedores infelizmente temos a tendência de focar nas coisas mais complexas, e acabamos deixando de lado o trivial botão, caixa de texto, etc. Justo aquilo que o usuário mais precisa para usar seu software...

Para o cliente, fica a frustração por ver coisas que antes funcionavam não funcionando mais, e para o desenvolvedor, retrabalho e mais retrabalho para as próximas iterações...</description>
		<content:encoded><![CDATA[<p>Reescrevi o final de meu post a partir do &#8220;Espero que outros(&#8230;)&#8221; pois estava meio confuso:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Em qualquer projeto de médio porte se torna inviável manter funcionando 100% da interface sem que haja um mecanismo (automático ou não) para tanto. </p>
<p>Posso pelo menos garantir que seus desenvolvedores não usarão o tempo das novas features para testar manualmente as permutações de uso de sua interface antiga. A GUI VAI quebrar e você vai pagar o pato.</p>
<p>Espero que outros desenvolvedores ágeis percebam que os testes de aceitação automatizados são parte inseparável de suas suites de testes, ou teremos clientes muito insatisfeitos no mundo ágil&#8230; De que adianta estar tudo &#8220;perfeitamente testado&#8221; se o botão “Submit” não faz nada?? Ou talvez faça, mas a tela de confirmação não aparece? E ao clicar em voltar ele recebe um erro?</p>
<p>Nós desenvolvedores infelizmente temos a tendência de focar nas coisas mais complexas, e acabamos deixando de lado o trivial botão, caixa de texto, etc. Justo aquilo que o usuário mais precisa para usar seu software&#8230;</p>
<p>Para o cliente, fica a frustração por ver coisas que antes funcionavam não funcionando mais, e para o desenvolvedor, retrabalho e mais retrabalho para as próximas iterações&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Diego Leao</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-13492</link>
		<dc:creator>Diego Leao</dc:creator>
		<pubDate>Wed, 07 Oct 2009 00:57:05 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-13492</guid>
		<description>Guilherme Chapiewski, enquanto eu concordo com o que falou, acho que foi muito rude ao expor sua opinião. Chegar num post útil como este e já chapar &quot;Opa, pera lá. Você está equivocado&quot;, e sair apontando dedos do início ao fim é bem desconfortável até ao leitor casual, como eu. Que tal dizer &quot;Opa, acho que há um equivoco no uso dos termos&quot;, amigavelmente? 

Enfim, sobre o que postou, realmente não dá pra &quot;aceitar&quot; sem ir até o último ponto do sistema envolvido na operação. No entanto, reconheço que usando outros mecanismos pode-se obter o efeito desejado, afinal, não há apenas uma maneira de atingir um objetivo. Talvez no caso deles seja teste de aceitação manual, seguindo um roteiro. Talvez esta técnica funcione até melhor para eles, afinal um ser humano avalia uma interface muito melhor do que uma máquina.

Para nós que não temos dinheiro para sequer considerar a possibilidade de manter o tal roteiro de testes manuais atualizado, ou pagar os testadores, temos que implementar testes automatizados.

Eu estou exatamente tratando milhares de problemas que aconteceram comigo devido a este fato: falta de testes automatizados que realmente são de _aceitação_.

Minha equipe está criando um editor de jogos eletrônicos, e algumas das features deveriam funcionar com mouse. Estas features ficaram sem uso por alguns meses, pois estávamos focando em outras áreas do editor. Todos os testes da citada API passam, no entanto o mouse simplesmente não funciona no editor como esperado, exibindo comportamentos estranhos ao clicar, arrastar, etc. Ou seja: não consigo fazer quase nada nesta área específica do mesmo. 

Investiguei um pouco e descobri que houve uma mudança na maneira como o editor implementa o input, mas só atualizaram os comandos que se lembravam. Isto tem acontecido por mais de um mês, chegando ao ponto de hoje eu preferir nem usar o editor para aquela tarefa específica. O time não fez por mal, ninguém se lembrava daquelas feature nem muito menos tinham tempo para voltar a ela (ou tantas outras passadas) durante o desenvolvimento das novas features. O que faremos agora é, aos poucos, re-adicionar as histórias antigas nas iterações atuais, implementando também desta vez os testes de aceitação automatizados.

Espero que outros evitem erros como este, deixando testes de aceitação automatizado de lado. Geralmente ninguém tem tempo para manter testada cada uma das features de GUI do seu projeto, que provalmente contém código de meses de trabalho. De que adianta para o usuário final estar tudo perfeitamente testado se o botão &quot;Submit&quot; não faz nada?? Ou talvez faça, mas a tela de confirmação não aparece? E ao clicar em voltar ele recebe um erro?

Para o cliente, fica a sensação de que esperou tanto pela release só para ganhar bugs novos, e para o desenvolvedor, retrabalho e mais retrabalho para as próximas iterações...</description>
		<content:encoded><![CDATA[<p>Guilherme Chapiewski, enquanto eu concordo com o que falou, acho que foi muito rude ao expor sua opinião. Chegar num post útil como este e já chapar &#8220;Opa, pera lá. Você está equivocado&#8221;, e sair apontando dedos do início ao fim é bem desconfortável até ao leitor casual, como eu. Que tal dizer &#8220;Opa, acho que há um equivoco no uso dos termos&#8221;, amigavelmente? </p>
<p>Enfim, sobre o que postou, realmente não dá pra &#8220;aceitar&#8221; sem ir até o último ponto do sistema envolvido na operação. No entanto, reconheço que usando outros mecanismos pode-se obter o efeito desejado, afinal, não há apenas uma maneira de atingir um objetivo. Talvez no caso deles seja teste de aceitação manual, seguindo um roteiro. Talvez esta técnica funcione até melhor para eles, afinal um ser humano avalia uma interface muito melhor do que uma máquina.</p>
<p>Para nós que não temos dinheiro para sequer considerar a possibilidade de manter o tal roteiro de testes manuais atualizado, ou pagar os testadores, temos que implementar testes automatizados.</p>
<p>Eu estou exatamente tratando milhares de problemas que aconteceram comigo devido a este fato: falta de testes automatizados que realmente são de _aceitação_.</p>
<p>Minha equipe está criando um editor de jogos eletrônicos, e algumas das features deveriam funcionar com mouse. Estas features ficaram sem uso por alguns meses, pois estávamos focando em outras áreas do editor. Todos os testes da citada API passam, no entanto o mouse simplesmente não funciona no editor como esperado, exibindo comportamentos estranhos ao clicar, arrastar, etc. Ou seja: não consigo fazer quase nada nesta área específica do mesmo. </p>
<p>Investiguei um pouco e descobri que houve uma mudança na maneira como o editor implementa o input, mas só atualizaram os comandos que se lembravam. Isto tem acontecido por mais de um mês, chegando ao ponto de hoje eu preferir nem usar o editor para aquela tarefa específica. O time não fez por mal, ninguém se lembrava daquelas feature nem muito menos tinham tempo para voltar a ela (ou tantas outras passadas) durante o desenvolvimento das novas features. O que faremos agora é, aos poucos, re-adicionar as histórias antigas nas iterações atuais, implementando também desta vez os testes de aceitação automatizados.</p>
<p>Espero que outros evitem erros como este, deixando testes de aceitação automatizado de lado. Geralmente ninguém tem tempo para manter testada cada uma das features de GUI do seu projeto, que provalmente contém código de meses de trabalho. De que adianta para o usuário final estar tudo perfeitamente testado se o botão &#8220;Submit&#8221; não faz nada?? Ou talvez faça, mas a tela de confirmação não aparece? E ao clicar em voltar ele recebe um erro?</p>
<p>Para o cliente, fica a sensação de que esperou tanto pela release só para ganhar bugs novos, e para o desenvolvedor, retrabalho e mais retrabalho para as próximas iterações&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: blog.adsystems.com.br</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-3795</link>
		<dc:creator>blog.adsystems.com.br</dc:creator>
		<pubDate>Sat, 20 Dec 2008 22:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-3795</guid>
		<description>[...] citar um exemplo, o próprio criador do Scrum - Jeff Sutherland - achou melhor adaptar o processo na sua empresa para fazer o design das telas antes do desenvolvimento. Nessa empresa os sistemas são feitos para serem usados por médicos e eles vêem o sistema como [...]</description>
		<content:encoded><![CDATA[<p>[...] citar um exemplo, o próprio criador do Scrum &#8211; Jeff Sutherland &#8211; achou melhor adaptar o processo na sua empresa para fazer o design das telas antes do desenvolvimento. Nessa empresa os sistemas são feitos para serem usados por médicos e eles vêem o sistema como [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Como trabalhar com os designers &#187; Guilherme Chapiewski - Blog sobre desenvolvimento de software e tecnologia</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-3774</link>
		<dc:creator>Como trabalhar com os designers &#187; Guilherme Chapiewski - Blog sobre desenvolvimento de software e tecnologia</dc:creator>
		<pubDate>Fri, 19 Dec 2008 19:07:52 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-3774</guid>
		<description>[...] citar um exemplo, o próprio criador do Scrum - Jeff Sutherland - achou melhor adaptar o processo na sua empresa para fazer o design das telas antes do desenvolvimento. Nessa empresa os sistemas são feitos para serem usados por médicos e eles vêem o sistema como [...]</description>
		<content:encoded><![CDATA[<p>[...] citar um exemplo, o próprio criador do Scrum &#8211; Jeff Sutherland &#8211; achou melhor adaptar o processo na sua empresa para fazer o design das telas antes do desenvolvimento. Nessa empresa os sistemas são feitos para serem usados por médicos e eles vêem o sistema como [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rodrigo Yoshima</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1152</link>
		<dc:creator>Rodrigo Yoshima</dc:creator>
		<pubDate>Sat, 30 Aug 2008 23:25:01 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1152</guid>
		<description>Guilherme Chapiewski: O homem que chamou o Jeff Sutherland de cascateiro!! Vai ficar para a história.... eh ehe he...

Tirando a piadinha, já trabalhei bastante com software para médicos e de fato a usabilidade é o maior risco. Médico é um usuário muito ruim. Se a usabilidade não ajudar o sistema será um fracasso. É lícito afastar este risco no início. Até porque é natural em processos ágeis focar em valor, mesmo que isso não se traduza em software que vai diretamente para produção.</description>
		<content:encoded><![CDATA[<p>Guilherme Chapiewski: O homem que chamou o Jeff Sutherland de cascateiro!! Vai ficar para a história&#8230;. eh ehe he&#8230;</p>
<p>Tirando a piadinha, já trabalhei bastante com software para médicos e de fato a usabilidade é o maior risco. Médico é um usuário muito ruim. Se a usabilidade não ajudar o sistema será um fracasso. É lícito afastar este risco no início. Até porque é natural em processos ágeis focar em valor, mesmo que isso não se traduza em software que vai diretamente para produção.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anselmo Alves</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1092</link>
		<dc:creator>Anselmo Alves</dc:creator>
		<pubDate>Mon, 25 Aug 2008 12:25:35 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1092</guid>
		<description>Vlw a espera. @André Faria Gomes i++;</description>
		<content:encoded><![CDATA[<p>Vlw a espera. @André Faria Gomes i++;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guilherme Chapiewski</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1091</link>
		<dc:creator>Guilherme Chapiewski</dc:creator>
		<pubDate>Mon, 25 Aug 2008 12:17:19 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1091</guid>
		<description>Carlos,

Vou encerrar essa discussão por aqui porque já virou teimosia e saiu do tópico do post há muito tempo. Se vc quer discutir sobre testes, sugiro que vc leia mais sobre o assunto para podermos discutir melhor.

Testes unitários até podem ser testes de caixa preta, mas normalmente o que se faz não é isso. Principalmente quando você usa TDD, que usam-se mocks e testa-se intencionalmente se o caminho que vc quer dentro de um método ou parte do sistema é percorrido, o teste é de caixa branca porque você está conhecendo e exercitando intencionalmente várias partes do código interno. Até porque a intenção maior é o melhor design, alta coesão e baixo acoplamento.

E sobre testes de aceitação, quando você desenvolve uma história você está entregando para o cliente alguma coisa que foi feita do início ao fim, ou seja, algo completamente &quot;usável&quot; por ele. Um exemplo de história seria &quot;Para poder transferir dinheiro para outras pessoas, eu como usuário quero poder dizer um número de conta, uma quantia X e clicar num botão para que a transferência seja feita&quot;. Se o seu teste de aceitação testa a API que faz estas operações de transferência mas NÃO inclui a interface, o teste não pode ser considerado de aceitação. A API pode funcionar perfeitamente mas a interface não, e a funcionalidade não está entregue para o usuário. Neste caso, o teste de aceitação deveria ser um teste de caixa preta que, usando a interface, faz as tais operações no sistema. O teste da API não dá cobertura suficiente para garantir que os critérios de aceitação da história foram atendidos.

[ ]s, gc</description>
		<content:encoded><![CDATA[<p>Carlos,</p>
<p>Vou encerrar essa discussão por aqui porque já virou teimosia e saiu do tópico do post há muito tempo. Se vc quer discutir sobre testes, sugiro que vc leia mais sobre o assunto para podermos discutir melhor.</p>
<p>Testes unitários até podem ser testes de caixa preta, mas normalmente o que se faz não é isso. Principalmente quando você usa TDD, que usam-se mocks e testa-se intencionalmente se o caminho que vc quer dentro de um método ou parte do sistema é percorrido, o teste é de caixa branca porque você está conhecendo e exercitando intencionalmente várias partes do código interno. Até porque a intenção maior é o melhor design, alta coesão e baixo acoplamento.</p>
<p>E sobre testes de aceitação, quando você desenvolve uma história você está entregando para o cliente alguma coisa que foi feita do início ao fim, ou seja, algo completamente &#8220;usável&#8221; por ele. Um exemplo de história seria &#8220;Para poder transferir dinheiro para outras pessoas, eu como usuário quero poder dizer um número de conta, uma quantia X e clicar num botão para que a transferência seja feita&#8221;. Se o seu teste de aceitação testa a API que faz estas operações de transferência mas NÃO inclui a interface, o teste não pode ser considerado de aceitação. A API pode funcionar perfeitamente mas a interface não, e a funcionalidade não está entregue para o usuário. Neste caso, o teste de aceitação deveria ser um teste de caixa preta que, usando a interface, faz as tais operações no sistema. O teste da API não dá cobertura suficiente para garantir que os critérios de aceitação da história foram atendidos.</p>
<p>[ ]s, gc</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carlos Alexandre Moscoso</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1088</link>
		<dc:creator>Carlos Alexandre Moscoso</dc:creator>
		<pubDate>Mon, 25 Aug 2008 05:27:39 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1088</guid>
		<description>Testes unitarios sao black-box testing assim como testes de aceitacao (principalmente numa estrategia TDD que contempla refactoring). Nao entendi o que tem haver testes caixa branca com a discussao.

&quot;Se nao testa a UI ou API nao pode ser de aceitacao&quot;

Se vc aplicar abstracao black-box no teste de uma API nao tem porque falar em termos de web services, facades ou bibliotecas de classe. Pro XP e pro agile em geral a palavra aceitacao em &quot;teste de aceitacao&quot; é mais importante que a palavra teste.</description>
		<content:encoded><![CDATA[<p>Testes unitarios sao black-box testing assim como testes de aceitacao (principalmente numa estrategia TDD que contempla refactoring). Nao entendi o que tem haver testes caixa branca com a discussao.</p>
<p>&#8220;Se nao testa a UI ou API nao pode ser de aceitacao&#8221;</p>
<p>Se vc aplicar abstracao black-box no teste de uma API nao tem porque falar em termos de web services, facades ou bibliotecas de classe. Pro XP e pro agile em geral a palavra aceitacao em &#8220;teste de aceitacao&#8221; é mais importante que a palavra teste.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guilherme Chapiewski</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1073</link>
		<dc:creator>Guilherme Chapiewski</dc:creator>
		<pubDate>Sun, 24 Aug 2008 00:38:05 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1073</guid>
		<description>Opa, pera lá. Você está equivocado. E não é uma questão de você concordar comigo ou o Jeff Sutherland, é uma questão de você entender corretamente os tipos de teste e os conceitos.

Se você não está incluindo a interface no teste de aceitação, ele não pode ser considerado um teste de aceitação (a não ser que seu sistema seja uma API, que não é o caso).

A definição de teste de aceitação (&lt;a href=&quot;http://en.wikipedia.org/wiki/Acceptance_testing&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Acceptance_testing&lt;/a&gt;) não deixa dúvidas:

&quot;[...] acceptance testing is black-box testing performed on a system [...]&quot;

Por ser um teste de caixa preta (&lt;a href=&quot;http://en.wikipedia.org/wiki/Black-box_testing&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Black-box_testing&lt;/a&gt;), o teste envolve avaliar se dada uma determinada entrada no sistema ele terá uma determinada saída, sem haver nenhum conhecimento sobre o que há internamente no sistema em termos de infraestrutura, código, métodos ou qualquer coisa de programação.

Se você precisa conhecer, digamos, um Façade para testar uma regra de negócio, como é o que você parece estar propondo, você não está mais fazendo um teste de caixa preta no sistema, você está testando direto a infra do sistema - um teste de caixa branca (&lt;a href=&quot;http://en.wikipedia.org/wiki/White_box_testing&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/White_box_testing&lt;/a&gt;):

&quot;White box testing uses an internal perspective of the system to design test cases based on internal structure. [...]&quot;

Neste caso que você citou, o que você está propondo poderia ser considerado um teste de integração (&lt;a href=&quot;http://en.wikipedia.org/wiki/Integration_testing&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Integration_testing&lt;/a&gt;).

Eu não falei em momento algum que eles não fazem esse tipo de teste, aliás, nem o Jeff falou isso. Porém, é muito provável que façam, já que é um tipo de teste relativamente fácil e, como não testam todas as interfaces, pode ser bem útil.

[ ]s, gc</description>
		<content:encoded><![CDATA[<p>Opa, pera lá. Você está equivocado. E não é uma questão de você concordar comigo ou o Jeff Sutherland, é uma questão de você entender corretamente os tipos de teste e os conceitos.</p>
<p>Se você não está incluindo a interface no teste de aceitação, ele não pode ser considerado um teste de aceitação (a não ser que seu sistema seja uma API, que não é o caso).</p>
<p>A definição de teste de aceitação (<a href="http://en.wikipedia.org/wiki/Acceptance_testing" rel="nofollow" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Acceptance_testing?referer=');">http://en.wikipedia.org/wiki/Acceptance_testing</a>) não deixa dúvidas:</p>
<p>&#8220;[...] acceptance testing is black-box testing performed on a system [...]&#8221;</p>
<p>Por ser um teste de caixa preta (<a href="http://en.wikipedia.org/wiki/Black-box_testing" rel="nofollow" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Black-box_testing?referer=');">http://en.wikipedia.org/wiki/Black-box_testing</a>), o teste envolve avaliar se dada uma determinada entrada no sistema ele terá uma determinada saída, sem haver nenhum conhecimento sobre o que há internamente no sistema em termos de infraestrutura, código, métodos ou qualquer coisa de programação.</p>
<p>Se você precisa conhecer, digamos, um Façade para testar uma regra de negócio, como é o que você parece estar propondo, você não está mais fazendo um teste de caixa preta no sistema, você está testando direto a infra do sistema &#8211; um teste de caixa branca (<a href="http://en.wikipedia.org/wiki/White_box_testing" rel="nofollow" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/White_box_testing?referer=');">http://en.wikipedia.org/wiki/White_box_testing</a>):</p>
<p>&#8220;White box testing uses an internal perspective of the system to design test cases based on internal structure. [...]&#8221;</p>
<p>Neste caso que você citou, o que você está propondo poderia ser considerado um teste de integração (<a href="http://en.wikipedia.org/wiki/Integration_testing" rel="nofollow" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Integration_testing?referer=');">http://en.wikipedia.org/wiki/Integration_testing</a>).</p>
<p>Eu não falei em momento algum que eles não fazem esse tipo de teste, aliás, nem o Jeff falou isso. Porém, é muito provável que façam, já que é um tipo de teste relativamente fácil e, como não testam todas as interfaces, pode ser bem útil.</p>
<p>[ ]s, gc</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: carlos alexandre moscoso</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1070</link>
		<dc:creator>carlos alexandre moscoso</dc:creator>
		<pubDate>Sat, 23 Aug 2008 19:36:49 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1070</guid>
		<description>&quot;Testes de aceitação neste caso são testes de interface, achei que tinha ficado suficientemente claro. Eles não conseguem automatizar testes de interface, portanto não conseguem automatizar os testes de aceitação porque esses testes usam a interface!&quot;

Sim isso ficou claro, alias esse é justamente o meu ponto de discordancia. :)

&quot;Os testes de aceitação são diferentes dos testes de interface, porém os testes de aceitação muitas vezes USAM a interface. Se vc não tem como criar algo automatico que usa a interface pode ficar complicado fazer um teste de aceitação automatizado também, e esse é exatamente o ponto em que eles estão.&quot;

Muitas vezes usam mas nao é recomendado que assim seja neste caso por exemplo. O que significa que testes de aceitacao nao podem ser automatizados ou que devemos procurar outras ferramentas para o trabalho?

Se partimos de um ponto onde concordamos que os dois testes tem naturezas distintas entao nao é dificil compreender o meu ponto de vista; funcionalidades que sao objeto dos testes de aceitacao podem ser testadas em um nivel abaixo da UI. Isso é particularmente importante quando se tem mais de uma maneira de se chegar ate essa funcionalidade.

[]s</description>
		<content:encoded><![CDATA[<p>&#8220;Testes de aceitação neste caso são testes de interface, achei que tinha ficado suficientemente claro. Eles não conseguem automatizar testes de interface, portanto não conseguem automatizar os testes de aceitação porque esses testes usam a interface!&#8221;</p>
<p>Sim isso ficou claro, alias esse é justamente o meu ponto de discordancia. <img src='http://gc.blog.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8220;Os testes de aceitação são diferentes dos testes de interface, porém os testes de aceitação muitas vezes USAM a interface. Se vc não tem como criar algo automatico que usa a interface pode ficar complicado fazer um teste de aceitação automatizado também, e esse é exatamente o ponto em que eles estão.&#8221;</p>
<p>Muitas vezes usam mas nao é recomendado que assim seja neste caso por exemplo. O que significa que testes de aceitacao nao podem ser automatizados ou que devemos procurar outras ferramentas para o trabalho?</p>
<p>Se partimos de um ponto onde concordamos que os dois testes tem naturezas distintas entao nao é dificil compreender o meu ponto de vista; funcionalidades que sao objeto dos testes de aceitacao podem ser testadas em um nivel abaixo da UI. Isso é particularmente importante quando se tem mais de uma maneira de se chegar ate essa funcionalidade.</p>
<p>[]s</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: André Faria Gomes</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1069</link>
		<dc:creator>André Faria Gomes</dc:creator>
		<pubDate>Sat, 23 Aug 2008 18:44:08 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1069</guid>
		<description>&quot;Não dá para ficar preso a uma metodologia!&quot; porque &quot;Indivíduos e interações são mais importantes que processos ou ferramentas&quot;. Matou a Pau Guilherme!!! Nunca devemos tirar isso de mente, a final de contas é a essência de todo o resto. Abraço.</description>
		<content:encoded><![CDATA[<p>&#8220;Não dá para ficar preso a uma metodologia!&#8221; porque &#8220;Indivíduos e interações são mais importantes que processos ou ferramentas&#8221;. Matou a Pau Guilherme!!! Nunca devemos tirar isso de mente, a final de contas é a essência de todo o resto. Abraço.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guilherme Chapiewski</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1066</link>
		<dc:creator>Guilherme Chapiewski</dc:creator>
		<pubDate>Sat, 23 Aug 2008 13:56:02 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1066</guid>
		<description>Testes de aceitação neste caso são testes de interface, achei que tinha ficado suficientemente claro. Eles não conseguem automatizar testes de interface, portanto não conseguem automatizar os testes de aceitação porque esses testes usam a interface!

Os testes de aceitação são diferentes dos testes de interface, porém os testes de aceitação muitas vezes USAM a interface. Se vc não tem como criar algo automatico que usa a interface pode ficar complicado fazer um teste de aceitação automatizado também, e esse é exatamente o ponto em que eles estão.

Por isso que eles têm esse percentual alto de testes manuais - que aliás é exatamente o que o Jeff relata e ele qe dá essa ênfase, não eu :)</description>
		<content:encoded><![CDATA[<p>Testes de aceitação neste caso são testes de interface, achei que tinha ficado suficientemente claro. Eles não conseguem automatizar testes de interface, portanto não conseguem automatizar os testes de aceitação porque esses testes usam a interface!</p>
<p>Os testes de aceitação são diferentes dos testes de interface, porém os testes de aceitação muitas vezes USAM a interface. Se vc não tem como criar algo automatico que usa a interface pode ficar complicado fazer um teste de aceitação automatizado também, e esse é exatamente o ponto em que eles estão.</p>
<p>Por isso que eles têm esse percentual alto de testes manuais &#8211; que aliás é exatamente o que o Jeff relata e ele qe dá essa ênfase, não eu <img src='http://gc.blog.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: carlos alexandre moscoso</title>
		<link>http://gc.blog.br/2008/08/23/agile-2008-conference-from-high-performing-to-hyper-performing-agile-teams/comment-page-1/#comment-1062</link>
		<dc:creator>carlos alexandre moscoso</dc:creator>
		<pubDate>Sat, 23 Aug 2008 09:03:51 +0000</pubDate>
		<guid isPermaLink="false">http://gc.blog.br/?p=376#comment-1062</guid>
		<description>&quot;Mas no caso deles não é possível automatizar os testes [de aceitacao], então, bola para frente oras!&quot;

A justificativa apresentada por eles e que vc expos no texto é legitima para nao haver testes de interface automatizados, mas qual seria o oimpedimento em relacao a automatizar os testes de aceitacao?

Quaqluer sistema de software minimamente funcional pode se beneficiar de testes de aceitacao automatizados. E mais complexidade se traduz em maior necessidade de que tais testes existam e sejam automatizados, nao menor como deu a entender no seu post.

Talvez hajam outras razoes que justifiquem o &quot;80% dos testes desses sistemas não são automatizados&quot;, nao estou duvidando dos numeros apresentados (apesar de achar que vc os super-enfatizou). O meu ponto é que testes de interface sao diferente de testes de aceitacao. Por mais que o cliente seja incapaz de dizer qual a diferenca, pra uma estrategia de desenvolvimento agil isso importa.

Por essas que vejo selenium com restricoes...

Considerando que a validacao de fato de UIs se da pela interacao homem-maquina o mais sensato mesmo nao seria eliminar o usuario do processo.</description>
		<content:encoded><![CDATA[<p>&#8220;Mas no caso deles não é possível automatizar os testes [de aceitacao], então, bola para frente oras!&#8221;</p>
<p>A justificativa apresentada por eles e que vc expos no texto é legitima para nao haver testes de interface automatizados, mas qual seria o oimpedimento em relacao a automatizar os testes de aceitacao?</p>
<p>Quaqluer sistema de software minimamente funcional pode se beneficiar de testes de aceitacao automatizados. E mais complexidade se traduz em maior necessidade de que tais testes existam e sejam automatizados, nao menor como deu a entender no seu post.</p>
<p>Talvez hajam outras razoes que justifiquem o &#8220;80% dos testes desses sistemas não são automatizados&#8221;, nao estou duvidando dos numeros apresentados (apesar de achar que vc os super-enfatizou). O meu ponto é que testes de interface sao diferente de testes de aceitacao. Por mais que o cliente seja incapaz de dizer qual a diferenca, pra uma estrategia de desenvolvimento agil isso importa.</p>
<p>Por essas que vejo selenium com restricoes&#8230;</p>
<p>Considerando que a validacao de fato de UIs se da pela interacao homem-maquina o mais sensato mesmo nao seria eliminar o usuario do processo.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
