Testes em sistema web

29 respostas
jeh_dias

Olá , bom dia .

Estou realizando testes para sistemas web .

Baixei o Selenium IDE como plugin do firefox .

A minha dúvida é mais geral .

Procuro por dicas , pois estou sem saber como continuar os testes. Já realizei testes e gerei o código em Junit , o que fazer após esses procedimentos ?

Obrigada .

29 Respostas

A

Bom… Se vc fez isso q disse ter feito, vc automatizou um teste, ponto.

O problema do Selenium IDE é q ele é muito limitado, embora prático para quem não programa, pois ele possui uma interface interessante possibilitando exportar para Java, C#…, criar suíte e etc.

Recomendo fortemente vc utilizar o Selenium WebDriver, é uma maravilha de ferramenta OpenSource.

jeh_dias

Então essa ferramenta tem mais funcionalidades , seria isso ?

E o servidor de testes , o selenium standalone ? Tenho que instalá-lo com alguma ferramenta do selenium ?

Procuro por uma sequência de tarefas , seria tipo passos para a realização de testes.

Selenium IDE é uma ferramenta introdutória ?

A

jeh_dias:
Então essa ferramenta tem mais funcionalidades , seria isso ?

E o servidor de testes , o selenium standalone ? Tenho que instalá-lo com alguma ferramenta do selenium ?

Procuro por uma sequência de tarefas , seria tipo passos para a realização de testes.

Selenium IDE é uma ferramenta introdutória ?

Sim. A versão WebDriver é o q chamam de Selenium 2, pesquisando vc pode cair em fóruns com questões sobre o Selenium RC q seria o Selenium 1. Vc não precisa de mais nada além do Selenium, o Selenium é um .jar, sendo assim vc pode adicionar no classpath de seu projeto, utilizo ele nos meus projetos com Eclipse, o link para download da versão é http://selenium.googlecode.com/files/selenium-java-2.32.0.zip, este é o último release liberado recentemente, não é o standalone (à princípio prefiro este), vc não precisa ter mais nada adicional além de suas próprias dependencias, e ele é diferente do Selenium 1 q vc tem de dar start num servidor antes de iniciar a execução automatica de algum teste, o “Selenium IDE é uma ferramenta básica para automatizadores de teste q não programam”…

Por favor, detalhe mais suas intenções com testes em sistema Web automatizados.

abs,
André AS.

jeh_dias

Entendi

Tenho um tutorial sobre tipos de testes e uma introdução de como realizar testes com o selenium ide , mas não sei como funciona o servidor de testes e não sei como executar os códigos gerados pelo junit em netbeans

Então estou sem saber o que seguir

Seria necessária uma metodologia do funcionamento das ferramentas de testes , ai entenderia os comandos e o que posso estar testando

Por exemplo testar inserção de um usuário no sistema , testar se as mensagens de bem-vindo ou alterado com sucesso estão presente nesse sistema

A

Bom, o cenário de testes q vc desenhou é perfeito, o Selenium atende muito bem…

Vc já trabalha com Testes? Entende o conceito de testes (plano de testes, suíte de testes, caso de testes)? Sinceramente, conforme for sua pretensão eu desencanaria do Selenium IDE e iria de kra de WebDriver, vc já começaria num nível mais avançado na plataforma Selenium.

javaflex

Aqui tem um exemplo bem simples pra você começar e depois postar demais dúvidas: http://www.andreluisgomes.com.br/testes-automatizados-com-selenium/

A

Legal a dica, aliás, ensina de “lambuja” configuração do projeto com o Maven.

A

Kra, vc trabalha com Selenium? Reparei q vc costuma responder tb tópicos relacionados ao mesmo… Se sim, pode compartilhar suas experiências?

abs,

javaflex

Kra, vc trabalha com Selenium? Reparei q vc costuma responder tb tópicos relacionados ao mesmo… Se sim, pode compartilhar suas experiências?

abs,
Sim, profissionalmente com .NET, mas a ideia é a mesma. Só não trabalho com a parte servidor/gerenciamento de configuração/integração contínua, só me preocupo mesmo com a parte de programar o teste. Não sei se lembra de outro tópico cheguei a falar como trabalho, basicamente com framework de testes (xUnit) e programando usando a biblioteca WebDriver. Seria algo mais especificamente?

jeh_dias

Comecei tem 2 semanas , já li os conceitos , tipos de testes e as definições das ferramentas .

Então plano de testes seria o planejamento dos testes ?

Casos de testes foi o que citei , o que quero testar ?

Suíte de testes é a execução do conjunto de testes ?

O Selenium IDE só gera scripts , o Selenium WebDriver gera códigos ? Vou instalá-lo aqui , é uma ferramente mais avançada e difícil ?

Vou começar a ler o link que postaram do André Luis Gomes , obrigada.

Conforme for lendo e surgindo dúvidas vou postando .

Obrigada pelas dicas .

A

Kra, vc trabalha com Selenium? Reparei q vc costuma responder tb tópicos relacionados ao mesmo… Se sim, pode compartilhar suas experiências?

abs,
Sim, profissionalmente com .NET, mas a ideia é a mesma. Só não trabalho com a parte servidor/gerenciamento de configuração/integração contínua, só me preocupo mesmo com a parte de programar o teste. Não sei se lembra de outro tópico cheguei a falar como trabalho, basicamente com framework de testes (xUnit) e programando usando a biblioteca WebDriver. Seria algo mais especificamente?

Legal. Ou seja, sua equipe inteira domina programação? Não tem apenas testadores com papel de automatizadores?

A

jeh_dias:
Comecei tem 2 semanas , já li os conceitos , tipos de testes e as definições das ferramentas .

Então plano de testes seria o planejamento dos testes ?


Exato.

Exato. O cenário de testes, podendo ser orientado à dados (massa de dados). Aqui neste link tem um pouco mais deste conceito DD - Data Driven com a ferramenta Testcomplete (paga) —> http://smartbear.com/products/qa-tools/automated-testing-tools/software-testing-types/data-driving-tests

Exato. Vc pode agrupar por funcionalidade/modularização do sistema; por inserção de erro/fluxo alternativo etc…

Não entendi bem o q vc quis dizer, vou tentar abstrair sua colocação, o Selenium IDE é resumido, vc clica no botão Record
e ele automaticamente gera/exporta o código produzido pela ação, na linguagem q vc optar, compativel com o plugin. O WebDriver vc tras para linguagem q domina, por exemplo o Java, e a partir daí o céu é o limite. O grau de dificuldade está em saber programar em Java e ter alguns conceitos claros de testes de software Web e alguma lógica de testes automatizados…


Vou começar a ler o link que postaram do André Luis Gomes , obrigada.
Conforme for lendo e surgindo dúvidas vou postando .
Obrigada pelas dicas .

É nóis! Rs…

javaflex

Kra, vc trabalha com Selenium? Reparei q vc costuma responder tb tópicos relacionados ao mesmo… Se sim, pode compartilhar suas experiências?

abs,
Sim, profissionalmente com .NET, mas a ideia é a mesma. Só não trabalho com a parte servidor/gerenciamento de configuração/integração contínua, só me preocupo mesmo com a parte de programar o teste. Não sei se lembra de outro tópico cheguei a falar como trabalho, basicamente com framework de testes (xUnit) e programando usando a biblioteca WebDriver. Seria algo mais especificamente?

Legal. Ou seja, sua equipe inteira domina programação? Não tem apenas testadores com papel de automatizadores?
Tem equipe de qualidade que faz teste manual, eles não tem conhecimento de programação, mas cogita-se se envolverem com BDD usando SpecFlow no futuro. Atualmente testes automatizados são feitos pelos desenvolvedores mesmo, se pegou a tarefa X, faz teste da tarefa X. Seria muito desmotivante desenvolvedor dedicado a fazer testes.

jeh_dias

Sim todos são desenvolvedores . O rapaz que era responsável pelos testes foi embora e deixou um tutorial , neste tutorial ele fala de testes de unidade e teste de sistema . Ele detalha três comandos do selenium ide , como estou seguindo o tutorial , instalei as mesmas ferramentas que ele utilizava . Mas como tenho dúvidas e não tem ninguém para saná-las é complicado evoluir .

Quando perguntei do selenium ide e do selenium webdriver seria a diferença entre eles , como selenium webdriver é a versão avançada , ele pois recursos avançados . Eu instalei o selenium ide aqui , no tutorial tem a ferramenta selenium cliente driver e selenium server para serem instaladas juntas . Porém só baixei o selenium server , não executei no prompt de comando .

Obrigada pelas respostas , vou ler testes orientado a dados .

Sobre o outro link enviado , já li , porém são ferramentas diferentes das que uso aqui , preciso amadurecer mais e ai consigo mexer em outras .

Obrigada mesmo assim , a página está salva aqui .

Obrigada pelas respostas a todas perguntas que fiz .

javaflex

jeh_dias:
Sim todos são desenvolvedores . O rapaz que era responsável pelos testes foi embora e deixou um tutorial , neste tutorial ele fala de testes de unidade e teste de sistema . Ele detalha três comandos do selenium ide , como estou seguindo o tutorial , instalei as mesmas ferramentas que ele utilizava . Mas como tenho dúvidas e não tem ninguém para saná-las é complicado evoluir .

Quando perguntei do selenium ide e do selenium webdriver seria a diferença entre eles , como selenium webdriver é a versão avançada , ele pois recursos avançados . Eu instalei o selenium ide aqui , no tutorial tem a ferramenta selenium cliente driver e selenium server para serem instaladas juntas . Porém só baixei o selenium server , não executei no prompt de comando .

Obrigada pelas respostas , vou ler testes orientado a dados .

Sobre o outro link enviado , já li , porém são ferramentas diferentes das que uso aqui , preciso amadurecer mais e ai consigo mexer em outras .

Obrigada mesmo assim , a página está salva aqui .

Obrigada pelas respostas a todas perguntas que fiz .


Selenium IDE é visual e WebDriver é para criar o teste programaticamente, sendo mais profissional e com maior controle.

jeh_dias

Entendi , seria programar os testes ?

Como sou iniciante estou realizando testes em ide para amadurecer , depois vou para WebDriver .

Obrigada .

A

Kra, vc trabalha com Selenium? Reparei q vc costuma responder tb tópicos relacionados ao mesmo… Se sim, pode compartilhar suas experiências?

abs,
Sim, profissionalmente com .NET, mas a ideia é a mesma. Só não trabalho com a parte servidor/gerenciamento de configuração/integração contínua, só me preocupo mesmo com a parte de programar o teste. Não sei se lembra de outro tópico cheguei a falar como trabalho, basicamente com framework de testes (xUnit) e programando usando a biblioteca WebDriver. Seria algo mais especificamente?

Legal. Ou seja, sua equipe inteira domina programação? Não tem apenas testadores com papel de automatizadores?
Tem equipe de qualidade que faz teste manual, eles não tem conhecimento de programação, mas cogita-se se envolverem com BDD usando SpecFlow no futuro. Atualmente testes automatizados são feitos pelos desenvolvedores mesmo, se pegou a tarefa X, faz teste da tarefa X. Seria muito desmotivante desenvolvedor dedicado a fazer testes.

Hum… BDD (Testes dirigidos a compartamento)… Interessante… Vc tem alguma exemplificação deste conceito aplicado na sua empresa?

E vcs tem um repositório dos testes automáticos com o Selenium? Digo isso em termos de prover reusabilidade (evitar duplicar código Selenium)…

A

jeh_dias:
Sim todos são desenvolvedores . O rapaz que era responsável pelos testes foi embora e deixou um tutorial , neste tutorial ele fala de testes de unidade e teste de sistema . Ele detalha três comandos do selenium ide , como estou seguindo o tutorial , instalei as mesmas ferramentas que ele utilizava . Mas como tenho dúvidas e não tem ninguém para saná-las é complicado evoluir .

Quando perguntei do selenium ide e do selenium webdriver seria a diferença entre eles , como selenium webdriver é a versão avançada , ele pois recursos avançados . Eu instalei o selenium ide aqui , no tutorial tem a ferramenta selenium cliente driver e selenium server para serem instaladas juntas . Porém só baixei o selenium server , não executei no prompt de comando .

Obrigada pelas respostas , vou ler testes orientado a dados .

Sobre o outro link enviado , já li , porém são ferramentas diferentes das que uso aqui , preciso amadurecer mais e ai consigo mexer em outras .

Obrigada mesmo assim , a página está salva aqui .

Obrigada pelas respostas a todas perguntas que fiz .

Estou entendendo q vc está utilizando a versão antiga do Selenium, o Selenium 1… Vc consegue confirmar este dado (verificando o .jar)?

Na verdade a intenção do link foi apenas para conceitar o DD, visto q o Testcomplete é uma ferramenta paga, aqui no serviço estão com a idéia d implanta-la, não optaria por ela se eu fosse o decisor, escolheria a plataforma de testes da HP, muito mais utilizada no mercado, embora o fator para a escolha do Testcomplete foi unicamente o custo (como sempre! rs…)…

Se vc quiser tenta fazer alguns testes por aí e vai postando, assim vou t ajudando…

A

jeh_dias:
Entendi , seria programar os testes ?

Como sou iniciante estou realizando testes em ide para amadurecer , depois vou para WebDriver .

Obrigada .

Vc trabalha na área de Homologação/Qualidade/Testes? Vcs já tem a cultura de testes automatizados?

javaflex

Não estive envolvido com isso, uma equipe fez experimento, teve apresentação (que não fui) e fiquei sabendo que devem propor para os projetos adotarem mais na frente, então ninguém usa ainda. Mas comentando pelo pouco que li, só pelo fato de ser mais humano que TDD já algo a se dar atenção pelo menos. Não me simpatizo por TDD, particularmente acho que torna o desenvolvimento muito chato, e motivação é mais importante para a qualidade do que alguma técnica que não seja ao gosto da equipe, o que pode acabar atrapalhando, por mais que reconheça “tecnicamente suas vantagens”, nem tudo é melhor para todos.

Cada sistema tem seu próprio projeto para Teste de Aceitação. Neste projeto tem classes de teste de acordo com cada tela do sistema. Reusabilidade só mesmo da parte infraestrutura, que é mais outro projeto separado, só para centralizar códigos que se tornam genéricos conforme for precisando, mas nada para engessar, o uso é livre da instância do WebDriver, como no exemplo do site que passei em Java, nada demais do normal.

jeh_dias

Olha fui em download para ver qual o selenium usado , porém não é o 1 . É selenium-java-2.32.0.jar .

Eu estava tentando testar o título seja bem-vindo na primeira página , porém o comando que estava utilizando era para testar texto digitado na página .
Agora estou a procura do comando para testar o título . Mas consigo entender o processo até a geração dos scripts , depois eu estou descobrindo .

Já estou conseguindo evoluir na ferramenta .

O script que o Selenium Ide lança é um java script certo ? E no caso eu importei como junit4 e abri no netbeans , para executar esse script preciso das classes main e das bibliotecas do Selenium Client Driver ?

Ah entendi , o custo sempre pesa . A ferramenta da hp também é paga ?

E no caso ferramentas como Selenium que usamos , são confiáveis ? O que você acha ?

Obrigada pelas respostas e pelo apoio .

Você é um profissional qualificado e compartilha o que sabe . Parabéns por ser assim .

A

Não estive envolvido com isso, uma equipe fez experimento, teve apresentação (que não fui) e fiquei sabendo que devem propor para os projetos adotarem mais na frente, então ninguém usa ainda. Mas comentando pelo pouco que li, só pelo fato de ser mais humano que TDD já algo a se dar atenção pelo menos. Não me simpatizo por TDD, particularmente acho que torna o desenvolvimento muito chato, e motivação é mais importante para a qualidade do que alguma técnica que não seja ao gosto da equipe, o que pode acabar atrapalhando, por mais que reconheça “tecnicamente suas vantagens”, nem tudo é melhor para todos.

Cada sistema tem seu próprio projeto para Teste de Aceitação. Neste projeto tem classes de teste de acordo com cada tela do sistema. Reusabilidade só mesmo da parte infraestrutura, que é mais outro projeto separado, só para centralizar códigos que se tornam genéricos conforme for precisando, mas nada para engessar, o uso é livre da instância do WebDriver, como no exemplo do site que passei em Java, nada demais do normal.

Vc quer dizer q os desenvolvedores são os mesmos q testam? Ou testam só preliminarmente? Vcs tem algum critério para automatização (visto q nem tudo compensa ser automatizado)?

Aqui automatizamos prioritariamente testes de regressão, isto é, os testes repetitivos, aqueles testes q após sincronização de nova funcionalidade e etc devem sempre ser executados para garantir q o q funcionava continua funcionando, daí estes testes, suíte de testes ficam em um repositório único, podendo ser reusados para qlq. novo projeto.

[color=red]EDITED: Este repositório central é um projeto do Eclipse q está no SVN, sendo assim é baixa-lo e os novos casos de testes são incluídos nele e estando em um novo projeto faz-se referencia dentre projetos.[/color]

A

jeh_dias:
Olha fui em download para ver qual o selenium usado , porém não é o 1 . É selenium-java-2.32.0.jar .

Esta versão do Selenium 2.32 é o do link q passei para download, ela é de fato a WebDriver. Sendo a versão o WebDriver vc não precisa se preocupar com esta questão de Server e Client isto está encapsulado para vc…

Vc pode invocar o método getTitle(); da classe WebDriver, qdo. recuperar o título do formato de String “vc trouxe para o Java” então pode usar o método da API Java para comparar String, o equals();.

Vc tem métodos fundamentalmente das classes WebDriver e Selenium. Sempre procure os comandos lá.

Ex: WebDriver driver = ... driver.getTitle();

Ex: Selenium selenium = ... selenium.?

O Selenium IDE gera código para várias linguagens, vc precisa parametrizar qual. Exportando para o Eclipse com o .jar q vc citou acima “selenium-java-2.32.0.jar” devia funcionar. Mas particularmente não gosto do Selenium IDE, pois gosto de trabalhar diretamente no código, ao invés de ter um código produzido automaticamente e ficar sem entender o q foi exatamente gerado e o porquê (não é meu caso, mas acredito q seja o seu, de não entender o q foi gerado com detalhes,

[color=red]EDITED: visto q ele utiliza de XPath para identificação d elementos DOM no HTML e etc, não significa q vc não vai poder neste caso utilizar do mesmo recurso no WebDriver, mas vc se usar vai saber o porquê q está usando, além do q o XPath não é a melhor opção qdo. se tem mais d uma opção, um problema do XPath é q se o seu sistema muda muito, se a opção do botão por exemplo mudar um pouquinho de posição propriamente dito ele já talvez não irá encontrar mais o elemento na página pois o XPath é a localização exata do mesmo na tela).[/color]


Ah entendi , o custo sempre pesa . A ferramenta da hp também é paga ?

Sim é paga, e muito bem paga rs.

E no caso ferramentas como Selenium que usamos , são confiáveis ? O que você acha ?

.

Sim, das ferramentas free para testes funcionais na plataforma Web, é a melhor (com base em opnião d vários especialistas)…

Valeu.

javaflex

Sim, se o desenvolvedor desenvolveu a tela de cadastro de pedido, tem que em seguida programar o teste de selenium do cadastro de pedido.

Isso não compreendi, mas ok se acima já responde.

Nem tudo é testado mesmo. É testado se o controle de acesso a cada action está conforme o esperado para cada grupo de acesso, se um registro foi gravado com sucesso e se as consultas se mantem retornando um resultado esperado na grid. Por enquanto não cobre mais do que isso, o resto é teste unitário de cada regra de validação das entidades e o teste manual da equipe de qualidade. Mas todas as telas possuem teste. Claro que quando é algo muito urgente o teste fica para depois, mas não é esquecido.

Exatamente, isso é o mais importante desses testes, pois toda vez ter que fazer teste manual de todo sistema pra saber se houve impacto é desumano com o sistema crescendo sem parar.

jeh_dias

Como tenho o WebDriver, eu vou construir meus códigos através dos métodos das classes do Webdriver e Selenium ?

E quando executo o código , estou executando o teste ?

Como você documenta os seus códigos ? Tem o java doc , seria uma alternativa ?

Obrigada .

A

Sim, se o desenvolvedor desenvolveu a tela de cadastro de pedido, tem que em seguida programar o teste de selenium do cadastro de pedido.

Isso não compreendi, mas ok se acima já responde.

Nem tudo é testado mesmo. É testado se o controle de acesso a cada action está conforme o esperado para cada grupo de acesso, se um registro foi gravado com sucesso e se as consultas se mantem retornando um resultado esperado na grid. Por enquanto não cobre mais do que isso, o resto é teste unitário de cada regra de validação das entidades e o teste manual da equipe de qualidade. Mas todas as telas possuem teste. Claro que quando é algo muito urgente o teste fica para depois, mas não é esquecido.

Exatamente, isso é o mais importante desses testes, pois toda vez ter que fazer teste manual de todo sistema pra saber se houve impacto é desumano com o sistema crescendo sem parar.

Então quer dizer q sua equipe de qualidade não utiliza Selenium ou melhor, testes automatizados?

A

Sim.

Sim.

Bom, sua pergunta é interessante… Sabia?! Acredito q um desenvolvedor desatento responderia de kra q sim, q é obvio q usa o JavaDoc. Mas aqui utilizamos além do JavaDoc um artefato que chamamos de Release para a versão correlata, nesta indicamos todas classes, métodos e etc que foram alterados e o porquê, realmente isto facilita a manutenção e implementação de nova funcionalidade, ah e claro lá tem toda uma rastreabilidade (desenvolvedor, data, projeto e etc).

javaflex

Sim, se o desenvolvedor desenvolveu a tela de cadastro de pedido, tem que em seguida programar o teste de selenium do cadastro de pedido.

Isso não compreendi, mas ok se acima já responde.

Nem tudo é testado mesmo. É testado se o controle de acesso a cada action está conforme o esperado para cada grupo de acesso, se um registro foi gravado com sucesso e se as consultas se mantem retornando um resultado esperado na grid. Por enquanto não cobre mais do que isso, o resto é teste unitário de cada regra de validação das entidades e o teste manual da equipe de qualidade. Mas todas as telas possuem teste. Claro que quando é algo muito urgente o teste fica para depois, mas não é esquecido.

Exatamente, isso é o mais importante desses testes, pois toda vez ter que fazer teste manual de todo sistema pra saber se houve impacto é desumano com o sistema crescendo sem parar.

Então quer dizer q sua equipe de qualidade não utiliza Selenium ou melhor, testes automatizados?
Não, pois roda automático todo dia de madrugada no TFS (da Microsoft) e recebemos e-mail se tiver erros. Essa parte de servidor tô por fora nem mexo com isso, só sei que funciona. E também manualmente por um motivo qualquer, como antes de por em produção. Equipe de qualidade no momento só faz teste manual, não se envolve em testes automatizados. Com BDD, caso seja adotado, ai sim a coisa muda um pouco.

jeh_dias

Ah sim , então vocês fazem uma documentação mais elaborada .

No caso como tenho o WebDriver , os métodos que vou usar já estão contidos nas classes quando faço a instalação ?

Faço as importações e posso começar a escrever os códigos ?

Obrigada .

Criado 21 de maio de 2013
Ultima resposta 29 de mai. de 2013
Respostas 29
Participantes 3