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. |
Redes Sociais