Artigo Engenharia de Software 24 - Testes funcionais automatizados com Hudson e Selenium RC

Esse artigo traz uma abordagem para criação e execução de testes funcionais automatizados.

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." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados