Esse artigo faz parte da revista Engenharia de Software 24 edição especial. Clique aqui para ler todos os artigos desta edição



Validação, Verificação e Teste

Testes funcionais automatizados com Hudson e Selenium RC

De que se trata o artigo:

Definir uma abordagem para criação e execução de testes funcionais automatizados.

Para que serve:

O modelo proposto automatiza a execução de testes funcionais criados através da ferramenta Selenium IDE, o que proporciona menor dependência de recursos humanos nessa tarefa e auxilia a gerenciamento da execução dos testes.

Em que situação o tema é útil:

Em ambientes onde é preciso testar constantemente os artefatos gerados, e em projetos onde os testes são complexos e demandam muitos recursos humanos.

Já é bastante aceita pela comunidade de desenvolvedores o uso de testes para auxiliar na qualidade dos softwares desenvolvidos. Dentre os tipos de testes utilizados existe o teste funcional, que verifica se o sistema está cumprindo com seus requisitos utilizando a perspectiva do usuário. Na prática, rodar testes funcionais significa executar o sistema e verificar seu comportamento através dos retornos fornecidos por este sistema.

Para que não haja a necessidade de executar esses testes manualmente existem ferramentas que, depois de programadas, executam o sistema automaticamente e verificam seus retornos. Uma dessas ferramentas é a Selenium IDE, utilizada neste artigo.

Uma técnica que pode ser utilizada em conjunto com os testes funcionais é a técnica de integração contínua. Com esta técnica é possível uma maior confiabilidade no sistema que está no repositório, pois possibilita que os testes definidos sejam executados periodicamente.

Este artigo propõe a construção de um ambiente de integração contínua onde testes funcionais são executados periodicamente sobre um sistema, disponível em um repositório Subversion (SVN) neste caso. O artigo mostra o funcionamento de uma pequena aplicação que calcula se um aluno foi ou não aprovado, que é utilizada como exemplo. Depois disso, explica como gerar testes funcionais com a ferramenta Selenium IDE e como importar esses testes para o framework de testes JUnit. Depois disso, é demonstrado como os testes que foram exportados podem ser executados através da ferramenta Selenium RC e, posteriormente, como executar esses testes em um servidor de integração contínua chamado Hudson. Para criar o projeto que será testado foi utilizado o Maven, uma ferramenta de gerenciamento e automação de projetos em Java que permite uma maior integração entre o projeto a ser testado e o Hudson.

Aplicação a ser testada

Para a execução dos testes a serem demonstrados neste artigo foi criada uma aplicação que calcula a aprovação de um aluno. É importante conhecer o funcionamento da aplicação para que se possa entender os testes elaborados.

Esta aplicação funciona através de um browser e recebe o nome, frequência, nota 1, nota 2 e nota final do aluno como parâmetros de entrada. Além desses parâmetros, o sistema possui ainda um botão Calcular Aprovação, como pode ser visto na Figura 1.

 


Figura 1. Tela do sistema

 

Após inserir os dados e clicar no botão Calcular Aprovação, o sistema emite uma mensagem para o usuário informando se o aluno foi ou não aprovado seguindo as seguintes regras: caso a frequência do aluno for menor que 75, ele é reprovado. Caso contrário, a média entre a nota 1 e a nota 2 é calculada. Se esta média for menor que 30, o aluno é reprovado, caso seja maior ou igual a 70, o aluno é aprovado. Se a média entre as duas notas for maior ou igual a 30 e menor que 70, então é calculado a média entre a média anterior e a nota final. Se esta nova média for maior ou igual a 50, o aluno é aprovado. Caso contrário, ele é reprovado.

A Figura 2 mostra a mensagem que o sistema exibe ao usuário após clicar no botão Calcular Aprovação, em um caso que o aluno é aprovado. É bastante importante observar que este tipo de resposta do sistema é que possibilita a execução dos testes funcionais, pois através dessas mensagens é que os testes vão verificar se o sistema agiu como esperado ou não.

 


Figura 2. Mensagem de resposta

Instalando o selenium IDE

Podemos então iniciar a construção dos testes funcionais utilizando o Selenium IDE, um plug-in para o navegador Firefox que permite gravar, editar, depurar e reproduzir testes funcionais para páginas web.

Para instalar o Selenium IDE, acesse o endereço https://addons.mozilla.org/pt-BR/firefox/ usando o navegador Firefox, e informe no campo de busca o termo selenium ide. Após isto, clique no link Selenium IDE que aparece na lista e, em seguida, no botão Add to Firefox, como mostra a Figura 3.

 


Figura 3. Instalação do Selenium IDE

 

Após a instalação, o plug-in estará disponível através do menu Ferramentas do navegador.

Criando os casos de teste com Selenium IDE

Para criar os casos de testes funcionais, primeiro é preciso acessar a aplicação de exemplo, criada anteriormente, com o navegador Firefox. Depois, no menu Ferramentas, selecione a opção Selenium IDE.

Uma nova janela, como mostra a Figura 4, se abrirá permitindo iniciar a gravação dos testes. Observe no canto superior direito dessa janela se o botão que indica o status da gravação está pressionado. Caso este botão esteja pressionado, cada ação do usuário no browser será gravada pelo Selenium IDE. Por ação pode-se entender, por exemplo, o preenchimento de um campo ou um clique em um botão.

 

Figura 4. Janela do Selenium IDE ...

Quer ler esse conteúdo completo? Tenha acesso completo