Testes de Regressão Automáticos com Selenium
Autor: Anne Rocha | Publicado: 2010-05-05T11:38:00-03:00

Como os testes de regressão geralmente são executados após a correção de algum defeito ou após a adição de uma nova funcionalidade. Então, é comum que não sobre muito tempo para realizar os testes de regressão. Neste caso, utilizar alguma ferramenta para re-executar os testes seria ideal para minimizar o tempo para identificar se os defeitos foram corrigidos e também se novos defeitos não foram inseridos durante a correção.Assim, existe algumas ferramentas que viabilizam a automação de testes funcionais para aplicações Web, por exemplo, Selenium, Watir, BadBoy etc. Estas ferramentas se comportam como um robô que à medida que o testador executa os testes pela primeira vez, a ferramenta vai guardando todos os eventos acionados na ferramenta, por exemplo, clicar em um botão, inserir informações em um campo, etc.No entanto, apenas ir guardando os eventos não é suficiente, pois como um caso de teste possui o campo "Resultado Esperado", então é necessário indicar para a ferramenta o que é esperado após a execução de um conjunto de eventos ou ações. As ferramentas que automatizam os testes, a exemplo de Selenium, permitem adicionar assertivas que garantem que o sistema está se comportando conforme é esperado em cada execução.Exemplo de verificações presentes na ferramenta Selenium são:verifyTextPresent | login (quando você quer identificar a presença de algum texto da página.)verifyElementPresent | \\div[@id="main"] (quando você quer identificar a presença de um elemento "html" dentro daquela página.)O verify do tipo "1" nem sempre é recomendada, pois em uma futura atualização da página pode acontecer daquele nome "login" ser alterado para "usuário". Neste caso, o teste iria falhar indevidamente.O verify do tipo "2" é mais indicado, pois com ele é possível identificar um elemento "html" independente da alteração da ordem ou nome dos campos, pois o teste será sempre baseado no "id" daquele elemento. A notação utilizada para identificar os elementos pode ser através da linguagem XPath (http://www.w3schools.com/xpath/default.asp) ou Expressões Regulares (http://www.regular-expressions.info - bastante utilizada para verificar a máscara de um campo).Como sugestão de uma ferramenta para automatizar os testes de regressão eu aconselho a ferramenta Selenium IDE, pois ela possui um plugin para o firefox, que auxilia na criação dos casos de teste.Na tabela abaixo há um exemplo de um caso de teste criado usando a ferramenta Selenium, que contém a validação de um campo e-mail.EmailInvalido    open  /page      select  pessoa_datanascimento_3i  label=1    select  pessoa_datanascimento_2i  label=Junho    select  pessoa_datanascimento_1i  label=1998    clickAndWait  pessoa_submit      verifyElementPresent  //div[@class="span-11 colborder"]/h1[contains(text(), "Inscrições  já Realizadas")]      clickAndWait  link=Alterar Dados Pessoais      clickAndWait  link=Editar meus dados pessoais      type  pessoa_nome  Roberto Soares    type  pessoa_identidade  1224564    click  pessoa_sexo_m      clickAndWait  pessoa_submit      clickAndWait  link=Editar meu endereço      type  endereco_logradouro  Rua Campos Bis    type  endereco_cep  12345-678    type  endereco_cidade  Paulina    type  endereco_bairro  Almeida Lima    type  endereco_email  oi    clickAndWait  endereco_submit      verifyTextPresent  Email não é válido      verifyNotValue  //*[@id="endereco_email"]  regexp:^([a-zA-Z0-9_\-\+\.]+)@(([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))|(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d))$    type  endereco_email  email@    clickAndWait  endereco_submit      verifyTextPresent  Email não é válido.