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






































4 comentários:
Olá!
Primeiro parabéns pelo blog!!! :)
Os comandos verify* não são assertivas propriamente ditas, elas apenas 'verificam' algo dentro da página. O ideal para assertivas é utilizar os comandos assert*.
Existe uma pequena diferença entre eles: os comandos assert* farão com que os testes sejam abortados quando não satisfeitos. Já os comandos verify* não irão abortar a execução, apenas a falha de verificação de algum dado ou elemento.
http://seleniumhq.org/docs/04_selenese_commands.html#assertion-or-verification
Sobre a "assertiva do tipo 2", se ocorrer uma mudança no nome do campo o script provavelmente falhará se a utilização do xPath estiver com a localização por @id, @name ou @value, pois a referência para eles são justamento o id do elemento, ou nome do elemento ou valor do elemento
Abração!
Oi Anne, em primeiro lugar, parabéns pelo blog, show de bola. Estou entrando agora na área de teste de software, meus conhecimentos ainda são prematuros nessa área, achei seu blog e já li quase todas as postagens, já ajudou bastante, mas gostaria de saber se pode me passar mais algum material que possa ser útil nesse inicio, regras e tal. Estou em uma Software House de medio porte, onde temos como principal sistema um ERP, a empresa não possui um departamento específico pra teste, mas estão pensando na possibilidade de criar um. Como estou entrando agora, quero tomar frente e aprensentar propostas que realmente demonstrem resultado, pois considero a qualidade de um Software fundamental para a sua aceitação no mercado. Talvez esteja sendo um pouco ousado em te pedir isso a principio, mas ficarei grato com sua colaboração.
lourencofilho87@gmail.com
Desde já, obrigado pela atenção.
Ótima semana!
boa tarde, adorei o blog, é muito dificil achar informações sobre testes, gostaria de entrar em contato com você via email, segue meu email. alissonfer@gmail.com
Good brief and this mail helped me alot in my college assignement. Gratefulness you as your information.
Postar um comentário