quarta-feira, 20 de fevereiro de 2008

Automação de testes funcionais e de aceitação

Testes funcionais são aqueles que encaram o sistema a ser testado como uma função que mapeia um conjunto de valores de entrada em um conjunto de valores de saída sem se preocupar com a forma como esse mapeamento foi implementado.

Um teste de aceitação (ou Story Test, ou Customer Test) descreve um cenário (de sucesso ou não) com uma expectativa do cliente em relação à história ou funcionalidade. Como o nome sugere, ele ajuda a equipe a entender quando uma história ou funcionalidade está completa ou aceita.

Diversas ferramentas e frameworks têm surgido para auxiliar sua vida. Entre as mais conhecidas temos o Selenium e o Watir podem facilitar sua vida no teste de aplicações web.

Percebemos que teremos um problema ao utilizar o Selenium quando o projeto funciona apenas no navegador internet explorer. Isto ocorre, pois o Selenion IDE que é uma ferramenta que facilita a gravação dos scripts é um addin para o mozilla firefox e quando o sistema não funciona no navegador mozilla não é possível o utilizar.

Situação ideal: Ter uma aplicação que funciona em ambos os browsers, gravar os scripts no Selenium e realizar os teste utilizando os navegadores.

Situação alternativa: Para aplicações que funcionam somente no navegador internet explorer, o que nos deixa como melhor opção a utilização do Watir que possui como facilidade o aplicativo IE Developer Toolbar.

O Watir é opensource e com seus comandos e funções particulares permite então que possamos controlar os objetos HTML e JavaScript presentes na aplicação Web, simulando os cliques em links, botões e os demais campos. Watir tem sido usado para testes de sistemas, testes funcionais e teste de aceitação do usuário. Como seu próprio nome diz (Web Application Testing in Ruby),

Para o uso do Watir torna-se necessário a instalação do interpretador Ruby e do pacote que contém o Watir. O Watir não utiliza da técnica conhecida como Record/Playback, onde o arquiteto de testes grava o script através do movimento do mouse e teclado.

Os scripts são escritos mesmo “na unha”, portanto o recomendado é que o responsável pelo uso do Watir tenha algum conhecimento de lógica de programação e dos atributos das tags HTML. Esse conhecimento em desenvolvimento se torna importante, visto que, estamos falando de programação de scripts e para que possamos ter um produto final de qualidade, podem ser aplicados todos os conceitos e boas práticas de programação.

Existe um facilitador que é a instalação do aplicativo IE Developer Toolbar que se integra na barra de ferramentas do Internet Explorer facilitando na identificação dos atributos utilizados na automação.

4 comentários:

Hugo Lopes Tavares disse...

Dá pra escrever testes com o Selenium em algumas linguagens - entre elas Python, Java, C# - sem precisar do Selenium IDE.

Segundo a definição do site de XP (Extreme Programming) testes funcionais e testes de aceitação são a mesma coisa.
O termo teste de aceitação entrou em ação por refletir melhor o intuito do teste.

"The name acceptance tests was changed from functional tests. This better reflects the intent, which is to guarantee that a customers requirements have been met and the system is acceptable."
Tirado de http://www.extremeprogramming.org/rules/functionaltests.html

Argentino disse...

Complementando o que o Hugo falou, a ferramenta para escrever testes de aceitação em Java, Python, etc é o Selenium Remote Control, que pode ser encontrado em: http://selenium-rc.seleniumhq.org/

Um pattern interessante para a criação de testes de aceitação é o Page Object: http://dojofloripa.wordpress.com/2008/04/20/como-usar-tdd-e-page-objects-para-construir-interfaces-web/

Sheyla Paula disse...

Gostaria de Saber de uma ferramenta de automação de testes em C#.
Se puder me indicar alguma ficaria agradecida.

Sheyla

Samuel Martins Delfim disse...

Tudo bom Sheyla,

Com o Selenium IDE você consegue exportar também para C#. Entre as linguagens suportadas estão PHP, Java, Perl, Ruby, Groovy. Dê uma olhada nesta ferramenta, pois é bem legal.