periodo de tempo se falarmos em agilidade (lembra das 2 a 4 semanas magicas que muitos adotam), entao comecar a automatizar o mais rapido possivel e a solucao!Sim, pode ser, mas pare de criar scripts e comece a pensar!A grande maioria das pessoas que me procuram pedindo ajuda em automacao, principalmente automacao funcional/UAT e que os scripts param de funcionar e estes nao conseguem mais "fazer com que o script passe".E sabe porque isso acontece? Porque estas pessoas simplesmente "baixaram a cabeca" e comecaram a automatizar.Tambem ha outro problema que e a falta de conhecimento na ferramenta em que se esta utilizando.Explicando no lado tecnico da coisaComecando do basico, e um dos exercicios que eu faco muito com meus alunos no meu Treinamento de Selenium/WebDriver, e primeiro olhar como a pagina funciona num olhar de usuario, nao de testador (embora o testador tenha um olhar de usuario, no momento em que ele vai automatizar algo ele olha como olhar de tester).Vamos pegar um exemplo, e voce nao vai perder mais 5 min neste post :)O teste e simples:Acesse a pagina http://eliasnogueira.com/arquivos_blog/geral/collapse/Clique sobre a 'div preta' "Minhas Paginas"Clique sobre o link "Treinamento Agile Testing"Simples nao? Porque entao nao automatizar logo???Bom, antes de continuar lendo o post tente automatizar na sua ferramenta de automacao web preferida.Resultado da automacao sem pensar no comportamentoSe voce automatizar exatamente os passos o teu script falhara! Sim, ele vai falhar!Provavelmente ele vai falhar quando voce executa o terceiro passo, que e clicar no link "Treinamento Agile Testing"Abaixo vou colocar o trecho de codigo automatizando com WebDriver + Java, ignorando os devidos imports.WebDriver driver = new FirefoxDriver();driver.get("http://eliasnogueira.com/arquivos_blog/geral/collapse/");driver.findElement(By.id("section1")).click();driver.findElement(By.linkText("Treinamento Agile Testing")).click(); Vamos pensar no comportamento da paginaAo inves de automatizar com um olhar de desenvolvedor ou testador, vamos olhar como um usuario e mais: vamos descrever o comportamento da pagina.O comportamento que eu vejo e o seguinte: Eu acesso a pagina em questao e ele carrega Me mostra algumas informacoes Eu clico em "Minhas Paginas" Um efeito e aplicado apresentando tres links Eu espero o efeito terminar Eu clico no link "Treinamento Agile Testing"Agora comparem a descricao do comportamento com os passos que eu descrevi anteriormente. Qual a diferenca?Descrevendo o comportamento da pagina eu coloquei uma coisa muito importante: que eu espero o efeito de clicar em "Minhas Paginas" acabar para que eu possa clicar no link "Treinamento Agile Testing"O que faltou entao: a espera!Simples nao, mas tem elementos simples que nao nos damos conta que fazem nosso script falhar "sem razao".Adicionando uma espera o script, funcional, fica assim:WebDriver driver = new FirefoxDriver();driver.get("http://eliasnogueira.com/arquivos_blog/geral/collapse/");driver.findElement(By.id("section1")).click(); By byAgileLink = By.linkText("Treinamento Agile Testing");WebDriverWait wait = new WebDriverWait(driver, 10);wait.until(ExpectedConditions.elementToBeClickable(byAgileLink)); driver.findElement(byAgileLink).click(); Porque isso ocorre?O primeiro problema e a afobacao, sim!!!!Logo quando vemos algo facil (ou mesmo dificil), por pressao de tempo, por baixa complexidade ou por diversos outros fatores comecamos logo a escrever scripts de teste automatizado "sem pensar". O problema do lado da arquiteturaPoucos testers que eu conheco, sim poucos mesmo, pensam em arquitetura para a automacao de teste!O que eu quero dizer com arquitetura e voce fazer as seguintes perguntas: como eu executarei todos os scripts?