Testes automatizados - Sistema WEB

9 respostas
N

Vejo muito falar sobre testes automatizados…Testes unitários, testes integrados e etc.

Aonde trabalho estes testes automatizados não são feitos, deixando os testes todos serem feitos na mão.

Já cheguei a questionar sobre a possibilidade de fazer estes testes e a resposta que tive foi que tais testes são difíceis de serem implementados em sistemas web, por terem muitas funcionalidades que dependem de informações que são adquiridas pela navegação. (usuário logado e etc).

Penso que deve ter algum jeito prático e produtivo de realizar estes testes.

A implementação de testes automatizados em sistemas web é realmente difícil?
Quais ferramentas podem vocês recomendam para a implementação destes testes em um sistema no ambiente web?

Abraços

9 Respostas

R

Também cada dia mais sinto a necessidade de abandonar os testes a mão e automatizar o processo, porém acho complicado escrever testes ( aos poucos preciso aprender ).

Mas para ambientes WEB já chegou a olhar o SELENIUM?

N

RafaelViana:
Também cada dia mais sinto a necessidade de abandonar os testes a mão e automatizar o processo, porém acho complicado escrever testes ( aos poucos preciso aprender ).

Mas para ambientes WEB já chegou a olhar o SELENIUM?

Nunca cheguei a fazer realmente os testes automatizados, mas já vi como o selenium funciona…pareceu bem legal.

O que eu queria era mesmo opiniões sobre testes automatizados na web, se eles realmente são difíceis de se implementar, se valem a pena e quais ferramentas recomendadas para implementar esses testes…

valeu a resposta Rafael…

T

Cara já cheguei a utilizar o IMACROS do firefox… Ele quebra um galho para testes repetitivos web, mas só para quebrar o galho…

flw abs…

A

Pras regras de negócio (aquele negócio mais server-side) acho que TDD dá pra ser usado tranquilamento (digo só com jUnit).
Pras telas, o Selenium dá conta.
Pra integração, você pode tanto usar o Selenium (testando o ‘na mão’) como mock objects, apesar de ser mais complicado.

J

Andre Brito:
Pras regras de negócio (aquele negócio mais server-side) acho que TDD dá pra ser usado tranquilamento (digo só com jUnit).
Pras telas, o Selenium dá conta.
Pra integração, você pode tanto usar o Selenium (testando o ‘na mão’) como mock objects, apesar de ser mais complicado.

++

S

Selenium é muito bom, revolve.

Agora se vc quiser algo mais punk, temos o Jmeter.

G

saulods:
Selenium é muito bom, revolve.

Agora se vc quiser algo mais punk, temos o Jmeter.

Depende do seu sistema… Se houver muito javascript, código gerado, talvez fique mais chato de fazer os testes…

T

Blz?

Depende do tipo de teste que você quer fazer.

Selenium é uma ótima opção para testes integrados.

JUnit para testes unitários já é até uma tradição em java.

já o Jmeter é utilizado principalmente para testes de stress e carga. Ele não é utilizado para verificar se uma regra de negócio está certa e sim se pra ver se o sistema rodando em um determinado hardware com uma configuração estabelecida aguenta o tranco.

Infelizmente não tive oportunidade (ou seja, permissão para gastar tempo) para criar testes unitários automatizados com Junit e testes integrados com Selenium, mas cheguei a usar o Jmeter e realmente é uma ferramenta fantástica. É umas daquelas ferramentas que todo desenvolvedor deve conhecer para melhorar suas aplicações.

espero ter ajudado…
flw

L

Pra mim, sistema sem testes já baixa a qualidade do mesmo em 50%

Dificuldade em achar bugs, manutenção complicada e “medo” de refactoring são uns dos motivos pelo qual eu penso assim.

Só que é difícil implantar testes numa equipe sem conhecimento do mesmo, principalmente se você quiser usar TDD: É uma maneira diferente de você codificar, “ver o mundo” da programação com outros olhos.

Pra um sistema ficar bem testado e automatizado, o que eu uso e faço geralmente é:

1- Testes unitários com TestNG

2- Testes de integração também com o TestNG, mas isso vai depender do sistema, pois algumas vezes é necessário usar mocks para os seus requests ou até mesmo fazer testes a partir da camada mais alta, logo abaixo da camada de view (Se for JSF começa-se pelos Backing Beans, se for Struts nos seus Actions etc).

3- Testes de carga com o JMeter (isso, honestamente, raramento eu faço)

4- Cobertura nos testes unitários com o Emma (no eclipse eu uso o EclEmma)

5- Pra finalizar, testes funcionais com o Selenium é legal também.

Você também pode utilizar o Selenium direto nos seus testes de integração, pois ele tem uma API que você coloca no seu código Java e ele faz todos o processo gravado no código! Em um pseudo-código-aportuguesado, ficaria assim:

public void test_login { selenium.abrirTela("login.jsp"); selenium.adicionarCampo("txtNomeUsuario", "Leozin"); selenium.adicionarCampo("txtSenha", "******"); //pegadinha do malandro! selenium.efetuarPost(); Assert.equals(selenium.getPaginaAtual(), "home.jsp"); }

Dicas: Deixando um servidor de Integração Continua rodando, (e também seguindo o processo/metodologia de Integração Continua), fica até mais legal pra trabalhar com esses testes pois como há builds frequentes, é rápido ver se algo quebrou ou não a cada commit/push no seu svn/git.

Criado 25 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 9
Participantes 9