


<?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/"
	>

<channel>
	<title>keep.testing</title>
	<atom:link href="http://leonardobg.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://leonardobg.com.br</link>
	<description>Um pouco de tudo, para você continuar testando bem</description>
	<lastBuildDate>Thu, 26 Apr 2012 17:48:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Subindo um nivel no crowdsourcing.</title>
		<link>http://leonardobg.com.br/2012/04/20/subindo-um-nivel-do-crowdsourcing/</link>
		<comments>http://leonardobg.com.br/2012/04/20/subindo-um-nivel-do-crowdsourcing/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 20:29:03 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Teste em Geral]]></category>
		<category><![CDATA[beta testing]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[diablo 3]]></category>
		<category><![CDATA[teste de desempenho]]></category>
		<category><![CDATA[teste de performance]]></category>
		<category><![CDATA[teste de stress]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=435</guid>
		<description><![CDATA[Se você não sabe o que é crowdsourcing test vamos é um pequeno overview: Crow test é uma fase de teste (ou modalidade) onde você abre sua aplicação para que o &#8220;mundo inteiro&#8221; possa testar e cada bug que acharem, você paga um determinado valor. Para uma explicação melhor e mais detalhada &#8211;&#62; http://pt.wikipedia.org/wiki/Crowdsourcing Por [...]]]></description>
			<content:encoded><![CDATA[<p>Se você não sabe o que é <em>crowdsourcing test</em> vamos é um pequeno overview:</p>
<blockquote><p>Crow test é uma fase de teste (ou modalidade) onde você abre sua aplicação para que o &#8220;mundo inteiro&#8221; possa testar e cada bug que acharem, você paga um determinado valor.</p></blockquote>
<p>Para uma explicação melhor e mais detalhada &#8211;&gt; <a href="http://pt.wikipedia.org/wiki/Crowdsourcing">http://pt.wikipedia.org/wiki/Crowdsourcing</a></p>
<h2>Por que subindo um nível?</h2>
<p>Acredito que quase nenhum de vocês que está lendo este post agora conhece o jogo chamada &#8220;Diablo&#8221;. Este jogo será lançado dia 15 de março e a um tempinho vem rolando o chamado &#8220;Beta Testing&#8221; onde eles chamam algumas pessoas que são fãs da marca &#8220;Diablo&#8221; e que estão afim de doar seu tempo para testar a jogabilidade e dar palpites para a produtora.</p>
<p>Isso acontece com todos aplicativos de mercado. Podemos citar o sistema operacional Windows como uma aplicação que sempre tem &#8220;beta&#8221; e &#8220;alpha&#8221; test antes dos Release candidate e do lançamento definitivo.</p>
<p>Acontece que a blizzard me surpreendeu hoje.<br />
Hoje ela está abrindo o beta teste para <strong>TODOS</strong> que queiram experimentar seu jogo antes do lançamento, porém ai está a grande jogada.<br />
Diablo 3 é um jogo que requer conexão com a internet pois ele faz comunicação com servidores da blizzard para vc poder jogar, ou seja,  os servidores tem que aguentar muitos.. mas MUITOS jogadores simultaneamente.</p>
<p>Qual o grande risco da aplicação? DISPONIBILIDADE.<br />
Todos sabemos que quando grande risco da sua aplicação é <em>uptime</em> e a disponibilidade, é essencial que testes de desempenho e stress sejam realizados.<br />
Como fazer isso de uma forma simples e &#8220;barata&#8221;? Liberando a aplicação beta para todos testarem, &#8220;sem saber&#8221; que estão testando. <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Porque eles não sabem que estão &#8220;testando&#8221;? Para o jogadores é so uma desculpa para ver o jogo antes, comentar, apontar &#8220;bugs&#8221; mas a real intensão  da Blizzard é verificar como os servidores do diablo3 e a aplicação em si aguentam tanto tráfego.</p>
<h2>Isso pode ser um tiro no pé.</h2>
<p><img class="alignright" title="WP_000338" src="http://leonardobg.com.br/wp-content/uploads/2012/04/WP_000338-225x300.jpg" alt="" width="225" height="300" /></p>
<p>Quando eu falei que é uma forma &#8220;barata&#8221; de testar estava me referindo a sua mão de obra, servidores e tempo necessario para poder simular milhoes de jogadores ao mesmo tempo.<br />
Só como eu disse antes, para o jogador ele está apenas testando o conteudo o jogo em si.. e não a conexão com o servidores e isso pode ser algo frustrante.</p>
<p>Se eu como jogador, testo o jogo na fase beta, o jogo funciona mas a conexão cai a todo segundo, posso pensar que quando lançar o jogo final a conexão será a mesma e a experiência pode ser comprometida.(É so ver os comentarios dos jogadores neste link aqui <a href="http://us.battle.net/d3/pt/blog/4945605/Beta_Aberto_de_Diablo%C2%AE_III_no_Fim_de_Semana-19_04_2012#blog">Beta Aberto de Diablo III no Fim de Semana</a> )</p>
<p>No fim das contas eu admiro a Blizzard por fazer esse tipo de teste. Não sei se ela fez isso também para world of warcraft mas é isso que é dar um levelup no crowdsourcing teste.</p>
<p>Parece que a blizzard vai dar disponibilizar  alguns updates (quanto ao estagio dos testes de stress).<br />
Assim que tiver mais dados sobre esse case eu vou atualizando.</p>
<p>&nbsp;</p>
<h2>Update1 &#8211; Primeira parte do Stress Test completo.</h2>
<p><img class="alignright" title="WP_000339" src="http://leonardobg.com.br/wp-content/uploads/2012/04/WP_000339-225x300.jpg" alt="" width="225" height="300" /></p>
<p>Parece que diminuiram drasticamente o numero de jogares permitidos no beta e farão algumas atualizações nos servidores e no cliente no que se diz respeito ao trafego de informação (client -server)</p>
<p>Isso já mostra que é melhor ter uns 300 jogadores decepcionados do que ter 1 milhão pedindo dinheiro de volta na data do lançamento <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>Update 2 &#8211; Its Over 300.000!</p>
<p>Segundo pessoal no twitter responsavel pelo jogo @JoshKo,  o pico de jogadores simultaneos do beta foi de 300 mil pessoas&#8230; no total eles não tem um numero definido.</p>
<p>Imagina agora quando o jogo for lançado. Pelo menos o teste valeu a pena e dia 15 os jogadores não terão surpresas <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.kotaku.com.br/com-quantas-pessoas-se-derruba-o-servidor-de-diablo-iii/">http://www.kotaku.com.br/com-quantas-pessoas-se-derruba-o-servidor-de-diablo-iii/</a></p>
<p><a href="https://twitter.com/#!/Bashiok/status/193861650254790657">&#8220;<s>@</s><strong>Blatantmistakes</strong> I think we peaked at around 300k concurrent. Total users? I don&#8217;t know&#8230; a lot.&#8221;</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/04/20/subindo-um-nivel-do-crowdsourcing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Off] Tirinhas 01 &#8211; Treinamento de teste</title>
		<link>http://leonardobg.com.br/2012/04/20/off-tirinhas-01-treinamento-de-teste/</link>
		<comments>http://leonardobg.com.br/2012/04/20/off-tirinhas-01-treinamento-de-teste/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 17:56:23 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Off]]></category>
		<category><![CDATA[Tirinhas]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=421</guid>
		<description><![CDATA[&#160; não entendeu? participa do #dfteste que você vai entender &#160;]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-430" title="jokingTeste_final" src="http://leonardobg.com.br/wp-content/uploads/2012/04/jokingTeste_final.png" alt="" width="631" height="344" /></p>
<p>&nbsp;</p>
<p>não entendeu? participa do <a href="http://br.dir.groups.yahoo.com/group/DFTestes/" target="_blank">#dfteste</a> que você vai entender <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/04/20/off-tirinhas-01-treinamento-de-teste/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 mandamentos da automação</title>
		<link>http://leonardobg.com.br/2012/04/17/10-mandamentos-da-automacao/</link>
		<comments>http://leonardobg.com.br/2012/04/17/10-mandamentos-da-automacao/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 20:34:56 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Teste em Geral]]></category>
		<category><![CDATA[automação]]></category>
		<category><![CDATA[mandamentos]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=406</guid>
		<description><![CDATA[1 &#8211; Automação de teste não faz milagres! 2 &#8211; Automação de teste é mais programação do que teste. 3 &#8211; Defina seu escopo antes de começar a automatizar. 4 &#8211; Sempre pense na manutenção ao escrever seu código! Use OO / Page Objects. 5 &#8211; Não é uma boa idéia automatizar todos os casos [...]]]></description>
			<content:encoded><![CDATA[<h3>1 &#8211; Automação de teste não faz milagres!</h3>
<h3>2 &#8211; Automação de teste é mais programação do que teste.</h3>
<h3>3 &#8211; Defina seu escopo antes de começar a automatizar.</h3>
<h3>4 &#8211; Sempre pense na manutenção ao escrever seu código! Use OO / Page Objects.</h3>
<h3>5 &#8211; Não é uma boa idéia automatizar todos os casos de teste! Priorize.</h3>
<h3>6 &#8211; Utilize uma linguagem que você tenha familiaridade. Caso esteja começando, utilize uma linguaguem que você terá bastante suporte a curto prazo (fóruns, colegas de trabalho, equipe de desenvolvimento).</h3>
<h3>7 &#8211; Não reivente a roda! Utilize frameworks de teste unitário para ajudar na execução.</h3>
<h3>8 &#8211; Nunca use hardcode! Utilize massa de dados para teste OU arquivos de configuração.</h3>
<h3>9 &#8211; Melhor do que sair comentando todo o codigo é fazer uma logica que seja compreensivel ( nomes de classes e metodos).</h3>
<h3>10 &#8211; Devolva para comunidade o que você &#8220;tirou dela&#8221;. Compartilhe experiencias e soluções que você encontrou na sua jornada.</h3>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/04/17/10-mandamentos-da-automacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 anos de blog!</title>
		<link>http://leonardobg.com.br/2012/04/14/2-anos-de-blog/</link>
		<comments>http://leonardobg.com.br/2012/04/14/2-anos-de-blog/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 05:58:09 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Off]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=401</guid>
		<description><![CDATA[Já fazem 2 anos que venho postando aqui neste humilde blog e chegou a hora de dar mais uma repaginada e deixar o blog mais facil de ler, com layout mais simples e elegante. Também chegou a hora de mudar o nome do blog. Hoje não faço posts somente sobre automação com selenium e nome [...]]]></description>
			<content:encoded><![CDATA[<p>Já fazem 2 anos que venho postando aqui neste humilde blog e chegou a hora de dar mais uma repaginada e deixar o blog mais facil de ler, com layout mais simples e elegante.</p>
<p>Também chegou a hora de mudar o nome do blog. Hoje não faço posts somente sobre automação com selenium e nome não estava refletindo.</p>
<p>Com os anos de casa vem a experiência e essa deve ser a nova cara do blog.</p>
<p>Mesmo com as dificuldades, mesmo com  os problemas , continue trabalhando.. continue testando <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/04/14/2-anos-de-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fábricas de Teste podem e deveriam usar ágil</title>
		<link>http://leonardobg.com.br/2012/04/13/fabricas-de-teste-podem-e-deveriam-usar-agil/</link>
		<comments>http://leonardobg.com.br/2012/04/13/fabricas-de-teste-podem-e-deveriam-usar-agil/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 22:57:35 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Teste em Geral]]></category>
		<category><![CDATA[Fabrica de teste]]></category>
		<category><![CDATA[metodologias ageis]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sprints]]></category>
		<category><![CDATA[teste agil]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=392</guid>
		<description><![CDATA[Conversando com um  amigo e colega de empresa @Roger Almeida e com famoso @camilo ribeiro resolvi compilar alguns pensamentos a respeito de como aplicar a filosofia e rotinas das metodologias ágeis em uma fábrica de teste. Antes de tudo gostaria de dizer que não sou xiita.. Acredito que purismo &#8220;non ecziste&#8221; no dia-a-dia de quem [...]]]></description>
			<content:encoded><![CDATA[<p>Conversando com um  amigo e colega de empresa <a href="http://roger-almeida.tumblr.com/">@Roger Almeida</a> e com famoso <a href="http://camiloribeiro.com/blog/">@camilo ribeiro</a> resolvi compilar alguns pensamentos a respeito de como aplicar a filosofia e rotinas das metodologias ágeis em uma fábrica de teste.</p>
<p>Antes de tudo gostaria de dizer que não sou xiita.. Acredito que purismo &#8220;non ecziste&#8221; no dia-a-dia de quem trabalha com teste ou desenvolvimento de software, mas acredito que é possivel melhorar o processos e deixar para trás métricas e processos que só fazem as empresas perder tempo e dinheiro.</p>
<blockquote><p><strong>Ser ágil não quer dizer ser relaxado.</strong></p></blockquote>
<p>Eu vou pular a parte de explicar como funciona as metodologias ageis e deixar que especialistas sobre assunto expliquem melhor (links nas referências). O que eu quero fazer aqui é discutir como utilizar a &#8220;filosofia&#8221; e as rotinas ágeis no dia a dia de uma fábrica de teste, que por definição, tem o processo engessado pelo seu modelo de negócio.</p>
<p>Vamos analisar primeiro como funciona uma Fábrica de teste:</p>
<p><strong>1 &#8211; A Fábrica recebe uma requisição de teste para um projeto X</strong>;<br />
<strong>2 &#8211; O cliente entrega os requisitos e escopo do projeto;</strong><br />
<strong>3 &#8211; A Fábrica separa a equipe para testar o projeto entre 1 gerente de projeto / 1 líder de teste / 1 líder de execução/  analistas / testers</strong>;<br />
<strong>4 &#8211; Os analistas fazem os casos de teste baseados 100% na documentação entregue pelo cliente;</strong><br />
<strong>5 &#8211; O cliente recebe , analisa e aprova os casos de teste</strong>;<br />
<strong>6 &#8211; Os analistas saem de cena e vão para outro projeto enquanto os testers irão executar os casos de teste</strong>;<br />
<strong>7 &#8211; Líder de teste separa os casos de teste para cada tester e acompanha de perto se os Testers estão realizando sua produtividade diária (X casos de teste por Dia)</strong>;<br />
<strong>8 &#8211; Ciclo de execução termina, report de erros são enviados</strong>;<br />
<strong>9 &#8211; Cliente entrega pacote com correção e o ciclo recomeça até chegar na data de entrega final;</strong></p>
<p>Eu não acho que esse processo é ruim.. o problema começa quando o prazo aperta um pouquinho e o caos impera. Nessa bagança acontece de tudo e o que mais  acontece é testers ser rebaixados a um nível sub-humano, pior que telemarketing vendendo cartão de credito tentando realizar a cota do dia com o fantasma de demissão assombrando.</p>
<p>Sendo assim, vou tentar fazer um apanhado geral, mostrando alguns problemas do processo tradicional de fábrica e como ele poderia ser melhorado usando alguns princípios da metodologia ágil.</p>
<h3>1 &#8211; Requisitos.</h3>
<p>É dificil encontrar projetos com documentação atualizada.  Já fiz um post falando que não é dificil ver equipes de desenvolvimento escrevendo código ao mesmo tempo que analistas de requisitos escrevem especificações OU um  gerente de projeto mudando o escopo do projeto sem alterar os requisitos no meio do desenvolvimento.</p>
<p>Como melhorar isso?  O líder de teste ou gerente de projeto faz o mapeamento das histórias (requisitos transformados em histórioas &#8211; backlog) e os analistas de teste conversam com os desenvolvedores e clientes para saber  sobre o escopo do teste e como testar.</p>
<blockquote><p>A filosofia ágil incentiva a comunição verbal.</p></blockquote>
<h3>2 &#8211; Casos de Testes.</h3>
<p>É o tipico &#8220;<em>finge que escreve que eu finjo que leio</em>&#8220;.  Não é só a fábrica escrevendo os casos de teste e o cliente aprovando sem ler. É analista dando ctrlc + ctrlv em requisito ou caso de uso e  testador não dando a minima para o caso de teste e executando &#8220;de cabeça&#8221;.</p>
<p>Aqui tempos 2 &#8220;problemas&#8221;: O modelo de negócio e o insumo dos casos de teste (requisitos / casos de uso)</p>
<p>Para o insumo dos casos de teste, você pode trabalhar com as historias e tarefas que os analistas mapearam com a conversa com os desenvolvedores e pode até usar requistos como artefato adicional para os casos de teste.</p>
<p>Já sobre o modelo de negócio é complicado. Vamos começar olhando para o mercado:<br />
Muitos clientes entendem que quantidade é qualidade e a Fabrica que infla a quantidade de casos de teste pelo mesmo preço de outras fabricas com menos casos de teste é que vai ganhar o projeto <strong>OU</strong> o cliente tem um projeto pré aprovado com uma fabrica x&#8230; ela vende cada caso de teste por 10 reais&#8230; ela vai vender 30 ou 200?  200 é claro&#8230;  Você acha que 30 casos de teste a 10 reais vai pagar um projeto? Não!</p>
<p>Infelizmente as metodologias ágeis nao podem responder essa pergunta.. isso é algo para outro post.. outra discussão.</p>
<h3>3 &#8211; Execução.</h3>
<blockquote><p>&#8220;Uma <em>corrente</em> não é mais <em>forte</em> que seu <em>elo</em> mais fraco&#8221;</p></blockquote>
<p>A fase de execução é a fase mais crítica e é onde os projetos geralmente falham. Nessa hora que você vai precisar que os testadores trabalhem a todo vapor, executando 20,30,40 casos de teste por dia fazendo 2~4 horas extras para poder realizar o prazo apertado definido pelo cliente / gerente de teste.</p>
<p>Uma coisa é você ter uma estimativa de casos de teste que podem ser executados para poder dizer o seu prazo, outra coisa é você impor metas diarias que só seriam realizadas em dias perfeitos, com tudo funcionando.</p>
<p><strong>Eu</strong> sou contra a metas de execução. Testadores não deveriam ser tratados como macacos robos.<br />
Testadores deveriam ser tratados como parte da equipe e que o sucesso de toda equipe só seria alcançado caso os testadores fizessem seu papel.</p>
<p>Motivação vai de contra-mão a metas de execução.</p>
<p>E como motivar seus testadores? Incluindo eles na rotina da equipe.<br />
Criação de caso de teste pareado é um incentivo para os testadores ficarem integrados com o projeto e com a equipe.<br />
Se o projeto é uma manutenção e se os testadores já realizaram testes do sistema, eles conhecem mais do dia-a-dia da aplicação do que os próprios analistas de teste.</p>
<p>Na fase de execução é possivel utilizar reunião de sprint,  mostrando as tarefas (testes que precisam ser executados) e incentivar a equipe pegar as tarefas. Caso isso não ocorra, o scrum master ou gestor deve conversar com a equipe sobre o trabalho em equipe e não chegar junto com a classica impossição &#8220;faz e cala boca&#8221;.</p>
<h3>- Ciclos de Teste.</h3>
<p>Ciclos enormes de teste não funcionam. Primeiro por que os desenvolvedores não vão ficar setandos esperando e segundo que os prazos são curtos, mas é preciso ter ciclos.<br />
Quando um projeto de teste tradicional pega fogo, é correria.. o ciclo morre, defeitos sao corrigidos ao mesmo tempo que outros testes são executados.. e seus testes acabam virando lixo.</p>
<p>Ao utilizar os ciclos no formato de sprints,  você diminui o período dos ciclos de teste e foca a equipe em um aspecto do teste a ser executado. (&#8220;ex: vamos testar a funcionalidade x, y e z.. o resto veremos nos proximos sprints&#8221;)</p>
<p>&#8212;</p>
<h2>Minha visão de Fábrica Ágil.</h2>
<p>Percebam que o que falei não é utopia e é plenamente passivel de sucesso.<br />
Tendo em vista como funciona uma fábrica de teste,  esta é minha visão de como ela , a fábrica, poderia funcionar usando algumas filosofias e rotinas ágeis:</p>
<p><strong>1 &#8211; A fábrica recebe uma requisição de teste para um projeto X;</strong><br />
<strong>2<strong> &#8211; </strong>A fábrica recebe requisitos / casos de uso do cliente, entende a aplicação e marca conversa com o cliente e desenvolvedores;</strong></p>
<p>Veja que eu não disse reunião e sim <span style="text-decoration: underline;">conversa</span>. São duas coisas diferentes.<br />
Reunião é formal, envolve ata de reunião, confirmações por email do que foi dito.  Em uma conversa informal você incentiva ao cliente se sentir mais a vontade e o desenvolvedor a &#8220;baixar&#8221; a guarda e consegue informações que irão fazer  o teste ser mais funcional e pratico.</p>
<p><strong>3 &#8211; A fábrica separa a equipe para testar o projeto entre gerente de projeto /  analistas / testers;</strong></p>
<p>Se você tem uma equipe auto gerenciavel, você pode ter niveis de senioridade dentro da equipe mas não precisa de alguem batendo o tambor, concorda?</p>
<p><strong>4 &#8211; Os analistas fazem os casos de teste baseados nas conversas com cliente, desenvolvedores e requisitos , pareados com testadores para disseminar conhecimento do negócio;</strong><br />
<strong>5 &#8211; O cliente recebe, analisa e aprova os casos de teste;</strong><br />
<strong>6 &#8211; Os analistas não saem totalmente de cena e guiam os testadores na elaboração dos sprints de execução;</strong><br />
<strong>7 &#8211; A propria equipe de teste separa os casos necessários para execução e quebra em sprints (ciclos) melhorando o escopo de teste a cada sprint</strong>;</p>
<p>O scrum master  (um analista sênior ou gerente de projeto) informa a equipe o status do projeto,  guia a equipe mostrando quais os cenários mais criticos para serem feitos primeiro e os testers pegam as tarefas (blocos de casos de teste a serem executados) por iniciativa própria.</p>
<p><strong>8 &#8211; O sprint termina, report de erros são enviados e uma reunião de final de sprint é realizada, com lições aprendidas;</strong><br />
<strong>9 &#8211; Cliente entrega pacote com correção e um novo sprint começa, fazendo este ciclo até terminar o projeto;</strong></p>
<p>&nbsp;</p>
<p>Tudo isso é baseado em confiança nas pessoas.<br />
Você precisa confirmar na sua equipe para ela andar sozinha.. e confiança se conquista.<br />
Se sua equipe tem pro atividade, por que não começar deixar ela andar com as proprias pernas?<br />
E é logico que  é necessario contratar pessoas que tenham esse perfil pró ativo. Não adianta nada contratar um cara que não faz nada se o &#8220;patrão&#8221; não pedir.</p>
<p>Obrigado pela leitura e postem suas opiniões <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/04/13/fabricas-de-teste-podem-e-deveriam-usar-agil/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>&#8220;Eu voaria em um avião feito utilizando métodologia ágil &#8220;</title>
		<link>http://leonardobg.com.br/2012/02/24/eu-voaria-em-um-aviao-feito-utilizando-metodologia-agil/</link>
		<comments>http://leonardobg.com.br/2012/02/24/eu-voaria-em-um-aviao-feito-utilizando-metodologia-agil/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:11:06 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Off]]></category>
		<category><![CDATA[Teste em Geral]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=386</guid>
		<description><![CDATA[Excelente post sobre métodologias ágeis feita pelo nosso amigo @CamiloRibeiro no blog dele Must Read! http://www.bugbang.com.br/?p=2496 &#160;]]></description>
			<content:encoded><![CDATA[<p>Excelente post sobre <em>métodologias ágeis</em> feita pelo nosso amigo @CamiloRibeiro no blog dele</p>
<p>Must Read!</p>
<p><a href="http://www.bugbang.com.br/?p=2496">http://www.bugbang.com.br/?p=2496</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/02/24/eu-voaria-em-um-aviao-feito-utilizando-metodologia-agil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com Xpaths</title>
		<link>http://leonardobg.com.br/2012/02/09/trabalhando-com-xpaths/</link>
		<comments>http://leonardobg.com.br/2012/02/09/trabalhando-com-xpaths/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 17:04:24 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[selenium 2]]></category>
		<category><![CDATA[Selenium Tips and Tricks]]></category>
		<category><![CDATA[Teste em Geral]]></category>
		<category><![CDATA[selenium xpath]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[xpath asbtrato]]></category>
		<category><![CDATA[xpath relativo]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=361</guid>
		<description><![CDATA[Quero deixar bem claro, Prefira sempre usar o ID e NAME dos objetos que você interage nos seus testes e caso eles não existam, use CSS Locators (irei fazer um post sobre isso) e só em último caso, use o xpath. Xpath deve ser sua última opção na hora de automatizar um teste web com [...]]]></description>
			<content:encoded><![CDATA[<p>Quero deixar bem claro, Prefira sempre usar o ID e NAME dos objetos que você interage nos seus testes e caso eles não existam, use CSS Locators (irei fazer um post sobre isso) e só em <strong>último caso</strong>, use o xpath.</p>
<p>Xpath deve ser sua última opção na hora de automatizar um teste web com selenium porém ela não te deixará na mão <strong>se você souber como usar</strong>.</p>
<p>Quando digo para utilizar ela como último recurso é devido a sua velocidade de execução.<br />
Localização de objetos via xpath demora&#8230; é 1~20 segundos mais devagar do que se você usa-se outro método de localização. Agora multiplique isso pela quantidade de interações que você tem que para testar um determinado fluxo. Estamos falando de um delay de 1-n minutos na sua execução. <del>(time is money!)</del></p>
<p>(eu perdi o link com o comparativo de localização de um elemento com id e via xpath.. mas acredite.. em alguns casos a diferença é gritante)</p>
<p>Para você que esta se perguntando&#8230; &#8220;que raios é esse tal de xpath.. eu uso o que o selenium mostra mas nunca entendi como funciona&#8221;, eu vou explicar:</p>
<p>Xpath, também conhecido como &#8220;XML Path Language&#8221; é o padrão utilizado para definir caminhos para se pegar determinada string dentro de um XML (resumo grosseiro mas deu para entender né).</p>
<p>Exemplo:</p>
<pre class="wp-code-highlight prettyprint">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;catalog&gt;
 &lt;book id=&quot;bk101&quot;&gt;
  &lt;author&gt;Gambardella, Matthew&lt;/author&gt;
  &lt;title&gt;XML Developer's Guide&lt;/title&gt;
  &lt;genre&gt;Computer&lt;/genre&gt;
  &lt;price&gt;44.95&lt;/price&gt;
  &lt;publish_date&gt;2000-10-01&lt;/publish_date&gt;
  &lt;description&gt;An in-depth look at creating applications with XML.&lt;/description&gt;
 &lt;/book&gt;
 &lt;book id=&quot;bk102&quot;&gt;
  &lt;author&gt;Ralls, Kim&lt;/author&gt;
  &lt;title&gt;Midnight Rain&lt;/title&gt;
  &lt;genre&gt;Fantasy&lt;/genre&gt;
  &lt;price&gt;5.95&lt;/price&gt;
  &lt;publish_date&gt;2000-12-16&lt;/publish_date&gt;
  &lt;description&gt;A former architect battles corporate zombi an evil sorceress, and her own childhood to become queen of the world.&lt;/description&gt;
 &lt;/book&gt;
 &lt;book id=&quot;bk103&quot;&gt;
  &lt;author&gt;Corets, Eva&lt;/author&gt;
  &lt;title&gt;Maeve Ascendant&lt;/title&gt;
  &lt;genre&gt;Fantasy&lt;/genre&gt;
  &lt;price&gt;5.95&lt;/price&gt;
  &lt;publish_date&gt;2000-11-17&lt;/publish_date&gt;
  &lt;description&gt;After the collapse of a nanotechnology society in England, the young survivors lay the
foundation for a new society.&lt;/description&gt;
 &lt;/book&gt;
&lt;/catalog&gt;</pre>
<p>Para buscar um determinado livro neste xml sem eu saber o Book ID (atributo).. você poderia usar xpath e procurar direto pelo nome do autor ou nome do livro (elemento)</p>
<p>Usar Xpath para procurar objetos na pagina não foge muito dessa idéia.</p>
<h1>Xpath Web</h1>
<p>Vamos imaginar o seguinte codigo fonte web:</p>
<pre class="wp-code-highlight prettyprint">&lt;html&gt;
&lt;header&gt;
&lt;some header info&gt;
&lt;/header&gt;
&lt;body&gt;
&lt;div&gt;
	&lt;div id=&quot;menu&quot;&gt;
		&lt;span&gt; Menus &lt;/span&gt;
		&lt;span&gt; &lt;a hreaf=&quot;xxxx&quot;&gt; menu1 &lt;/a&gt; &lt;/span&gt;
		&lt;span&gt; &lt;a hreaf=&quot;xxxx&quot;&gt; menu2 &lt;/a&gt; &lt;/span&gt;
		&lt;span&gt; &lt;a hreaf=&quot;xxxx&quot;&gt; menu3 &lt;/a&gt; &lt;/span&gt;
		&lt;img src=&quot;xxxx&quot; alt=&quot;unica imagem da pagina&quot;&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Lembram que eu fiz um tutorial explicando que você tem que conhecer pelo menos a estrutura HTML de uma pagina para poder se localizar e saber como melhorar seu script?<br />
Bom você vai usar seu conhecimento HTML aqui <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Quando for gravar um teste, repare nos steps que o selenium cria assim que você realizar uma ação e veja o &#8220;alvo&#8221; que ele deixa disponível para você. Dependendo da página, ele dá diversas opções de como encontrar o objeto (xpath:link, xpath:idRelative, xpath:position, xpath:etc..)<br />
Para tentar explicar de uma forma mais lúdica, vou separar em 2 tipos de xpaths: posicional e relativo por atributos. <em>(lembrando que o nem selenium nem a documentação w3c separada desta forma &#8211; é uma separação para explicar melhor as formas de escrever o xpath)</em>.<br />
No posicional você faz o caminho completo até o elemento (não é uma boa pratica!) e o relativo por atributo quando você usa um atributo do objeto html para localização (boa pratica!)</p>
<p><strong>Exemplo1:</strong> Preciso clicar na imagem no final do menu.</p>
<p>Caminho Posicional: &#8220;<strong>//div/div/img</strong>&#8221; ou  &#8220;<strong>//img</strong>&#8221;<br />
Você pode utilizar o caminho completo até chegar ao elemento ou, caso so exista um elemento do tipo procurado, você pode acessar ele diretamente.</p>
<p>Caminho Relativo por atributo: &#8220;<strong>//div[id='menu']/img</strong>&#8221; ou  &#8220;<strong>//img[@alt='unica imagem da pagina']</strong>&#8221;<br />
No exemplo acima só existe uma imagem, logo desta forma eu oriento ao selenium buscar diretamente de acordo com seu atributo &#8216;<em>alt</em>&#8216;, ou busco por um elemento anterior (div) com um atributo (id) e a partir dai eu defino o caminho até chegar a imagem.</p>
<p><strong>Exemplo2: </strong> Preciso clicar no menu2</p>
<p>Caminho Posicional:  &#8220;<strong>//div/div/span[3]/a</strong>&#8221; ou &#8220;<strong>//span[3]/a</strong>&#8221;<br />
Quando tempos mais de um elemento dentro do mesmo espaço, você acessa o elemento pela a posição dele&#8230; se ele é o terceiro &#8220;<span> que aparece, você utiliza a posição dentro entre Colchetes &#8220;[x]&#8220;.</span></p>
<p>Caminho Relativo: &#8220;<strong>//a[contains(text(),'menu3')]</strong>&#8221;<br />
Da mesma forma que você consegue localizar objetos pelo atributo ID, você também pode localizar objetos pelo texto contido dentro dele e qualquer outro parâmetro que você queira utilizar.</p>
<p><em>Lembrando que as &#8220;aspas dlupas&#8221; do xpath não compoem a sintaxe! não utilize aspas duplas no xpath!</em></p>
<p><strong>ps</strong>: As vezes o selenium &#8216;come bola&#8217; e te da um xpath tipo esse: <strong>//div[@id='center']/div[4]/div/div[2]/div/div/div[5]/a/div[2]/p[2]</strong> mas se você usar um firebug da vida (HTML!!!) você pode analisar o codigo e chegar em um cara assim &#8211;> /<strong>/div[@class='box_widget' and contains(.,'Atendimento')]/a/div[2]/p[@class='adicionar']</strong> que fica MUITO mais facil de ler e entender <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Bom, agora que você conhece +- como funciona o xpath, você pode bricar um pouco ele e fazer umas mini bruxarias, tipo:</p>
<p><strong><em>//img[@alt='unica imagem da pagina']/../span[2]</em></strong></p>
<p><strong><em></em></strong><br />
Com esse xpath você consegue pegar o menu1 da pagina.. <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
(pra quem ja trabalhou com prompt de comando.. sistema de diretórios e afins, vai ser moleza!)</p>
<p>Lembrando que existe diferença no nome dos atributos que você utiliza. Alguns Browsers jogam tudo para lowercase, outros browsers são caseSenSiTiVe, sendo assim, sempre utilize case Sensitive para evitar problemas!</p>
<p>ps: Quando for referênciar um atributo dentro de um objeto HTML, utilize sempre o &#8216;@&#8217; antes do nome do atributo (@class, @id, @sytle@, @name, etc..) porém quando você for procurar pelo texto dentro de um objeto, utilize text() e não @text.</p>
<h1>Usando &#8220;contains&#8221; e &#8220;starts-with&#8221;</h1>
<p>Acredito que são as funções do xpath mais utilizadas atualmente (ou suportadas pelo selenium, eu ainda não utilizei as outras, quando o fizer, atualizarei o post)</p>
<h3>&#8220;Contains&#8221; </h3>
<p>Como visto no caminho relativo do exemplo dois, eu utilizei o atributo &#8220;contains&#8221; do xpath para poder achar um texto.<br />
Eu poderia ter usado &#8221; <strong>text()= </strong>&#8221; também para pesquisar, mas em minhas últimas experiências eu não fui muito feliz.</p>
<p>O <strong>contains</strong>, é isso que você esta pensando mesmo. Você procura um elemento que <strong>contenha</strong> o que você colocar de parametro, ou seja, se a string 1 contem o que tem na string 2 </p>
<p>Você pode usar a string um como <strong>text()</strong> para procurar um texto especifico ou <strong>.</strong> (isso mesmo, um ponto) que funciona como um * ..rs (tome cuidado, pode achar um objeto diferente do esperado)<br />
ex: <strong>//div[@class='box_widget' and contains(.,'Atendimento')]/a/</strong></p>
<h3>&#8220;starts-with&#8221; </h3>
<p>É uma função que uso bem pouco atualmente mas vale a pena comentar pois é funcional quando você está trabalhando com aplicações que utilizem &#8220;id&#8221; dinamicos,  geralmente o começo da identificação é o mesmo &#8220;id=button-xx723y61731&#8243;  você pode fazer algo como <strong>//input[starts-with(@id, 'button-')]</strong> (exemplo retirado do site do <a href="http://seleniumhq.org/docs/appendix_locating_techniques.html">seleniumhq</a>)</p>
<p>Espero que este post tenha sido produtivo!<br />
Continuarei adicionando conteúdo a medida do possivel.<br />
Dúvidas ou críticas (caso tenha alguma coisa errada aqui e eu comi bola) .. comentem!</p>
<p>Referências:<br />
<a href="http://www.w3.org/TR/xpath/">http://www.w3.org/TR/xpath/</a><br />
<a href="http://jarvana.com/jarvana/view/org/seleniumhq/selenium/selenium-rc-documentation/1.0/selenium-rc-documentation-1.0-doc.zip!/java/com/thoughtworks/selenium/Selenium.html">Selenium JavaDocs</a><br />
<a href="http://www.w3schools.com/xpath/xpath_functions.asp">funções xpath</a></p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/02/09/trabalhando-com-xpaths/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Learn to Code &#8211; Codecademy</title>
		<link>http://leonardobg.com.br/2012/01/13/learn-to-code-codecademy/</link>
		<comments>http://leonardobg.com.br/2012/01/13/learn-to-code-codecademy/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 18:39:28 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Off]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=347</guid>
		<description><![CDATA[Excelente startup que esta oferecendo curso de programação &#8211; JavaScript &#8211; de graça! Se você é um preguiçoso de plantão, essa é uma excelente oportunidade para começar a apreender pouco de lógica de programação e melhorar seus scripts de selenium http://www.codecademy.com/ dica do @camiloribeiro]]></description>
			<content:encoded><![CDATA[<p>Excelente startup que esta oferecendo curso de programação &#8211; JavaScript &#8211; de graça!</p>
<p>Se você é um preguiçoso de plantão, essa é uma excelente oportunidade para começar a apreender pouco de lógica de programação e melhorar seus scripts de selenium <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://www.codecademy.com/" target="_blank">http://www.codecademy.com/</a></p>
<p>dica do <a href="http://www.bugbang.com.br/" target="_blank">@camiloribeiro</a></p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/01/13/learn-to-code-codecademy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips and Tricks &#8211; Browser Maximizado</title>
		<link>http://leonardobg.com.br/2012/01/10/tips-and-tricks-browser-maximizado/</link>
		<comments>http://leonardobg.com.br/2012/01/10/tips-and-tricks-browser-maximizado/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 02:20:00 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[selenium 2]]></category>
		<category><![CDATA[Selenium Tips and Tricks]]></category>
		<category><![CDATA[internet explorer driver]]></category>
		<category><![CDATA[JavaScript Executor]]></category>
		<category><![CDATA[Selenium 2]]></category>
		<category><![CDATA[webdriver]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=345</guid>
		<description><![CDATA[Não deveria, mas o selenium (webdriver) as vezes não consegue clicar em um determinado objeto ( ou ele pensa que clica mas nao clica..rs) por causa da resolução de tela (ou por que ele não consegue fazer o &#8220;scroll&#8221; da tela até seu elemento). O pessoal que manja de selenium até pode dizer que não [...]]]></description>
			<content:encoded><![CDATA[<p>Não deveria, mas o selenium (webdriver) as vezes não consegue clicar em um determinado objeto ( ou ele pensa que clica mas nao clica..rs) por causa da resolução de tela (ou por que ele não consegue fazer o &#8220;scroll&#8221; da tela até seu elemento).</p>
<p>O pessoal que manja de selenium até pode dizer que não tem nada a ver, mas recentemente em um projeto ( e de um pessoal no grupo de discussão do webdriver)  o webdriver não clicava nunca em um determinado xpath&#8230;dai começei a rodar os testes com o internet explorer maximizado e não tive mais problemas, sendo assim ai vai <img src='http://leonardobg.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Enquanto uma resposta na comunidade não sai, segue abaixo a solução paleativa que estou usando:</p>
<pre class="wp-code-highlight prettyprint">((JavascriptExecutor)  driver).executeScript(&quot;if (window.screen) {window.moveTo(0, 0);window.resizeTo(window.screen.availWidth,window.screen.availHeight);};&quot;);</pre>
<p>créditos para comunidade webdriver no google groups.</p>
<p>UPDATE:  tem uma issue aberta para isso&#8230; talvez na versão 2.18 será corrigido.<br />
se você está tendo muitos problemas em relação a isso, mantenha a versão 2.14 e espere a versão 2.18</p>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/01/10/tips-and-tricks-browser-maximizado/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tips and Tricks &#8211; Xpath de &#8220;radio buttons&#8221;</title>
		<link>http://leonardobg.com.br/2012/01/06/tips-and-tricks-xpath-de-mutiplos-radio-buttos-ou-chekbox-com-mesmo-id/</link>
		<comments>http://leonardobg.com.br/2012/01/06/tips-and-tricks-xpath-de-mutiplos-radio-buttos-ou-chekbox-com-mesmo-id/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 12:30:34 +0000</pubDate>
		<dc:creator>Leonardo Galani</dc:creator>
				<category><![CDATA[selenium 2]]></category>
		<category><![CDATA[Selenium Tips and Tricks]]></category>
		<category><![CDATA[Selenium2]]></category>
		<category><![CDATA[webdriver]]></category>
		<category><![CDATA[xpath]]></category>

		<guid isPermaLink="false">http://leonardobg.com.br/?p=332</guid>
		<description><![CDATA[Ao realizar um &#8216;record n play&#8217; com selenium IDE, você clica em um radio box ou checkbox ( que pela logica tem o mesmo ID ou Name ) e selenium IDE tem um tratamento diferente caso você clique no primeiro dos inputs com a mesma identificação. Para você não se perder (e melhorar a leitura [...]]]></description>
			<content:encoded><![CDATA[<p>Ao realizar um &#8216;record n play&#8217; com selenium IDE, você clica em um radio box ou checkbox ( que pela logica tem o mesmo ID ou Name ) e selenium IDE tem um tratamento diferente caso você clique no primeiro dos inputs com a mesma identificação.</p>
<p>Para você não se perder (e melhorar a leitura do seu script), use o evento findelement click BY XPATH (no selenium IDE use o alvo &#8220;xpath:attributes&#8221; ) mapeando o ID e o VALUE  do input&#8230; como no exemplo abaixo:</p>
<pre class="wp-code-highlight prettyprint"> //input[@name='gender' and @value='M']</pre>
]]></content:encoded>
			<wfw:commentRss>http://leonardobg.com.br/2012/01/06/tips-and-tricks-xpath-de-mutiplos-radio-buttos-ou-chekbox-com-mesmo-id/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
