TestesTestes
com TestLink e Seleniumcom TestLink e Selenium
Quem sou eu?Quem sou eu?
✔André ThiagoAndré Thiago
✔Bacharel em Bacharel em Ciência da Computação – UnBCiência da Computação – UnB
✔Analista de Informática Analista de Informática MPUMPU
✔Arquiteto de Software Arquiteto de Software PGR/MPUPGR/MPU
✔Sócio-fundador e líder técnico da startup Sócio-fundador e líder técnico da startup
TripFansTripFans ( (www.tripfans.com.brwww.tripfans.com.br ))
✔Entusiasta de práticas ágeisEntusiasta de práticas ágeis
O que vamos ver hojeO que vamos ver hoje
✔Testes? Pra quê?Testes? Pra quê?
✔FerramentasFerramentas
✔TestLinkTestLink
✔SeleniumSelenium
✔DemoDemo
✔ProvocaçõesProvocações
Como você verifica se Como você verifica se
um software não tem um software não tem
problemas?problemas?
A resposta é A resposta é
simples: simples:
FAÇA TESTESFAÇA TESTES
Mas testes não são perda Mas testes não são perda
de tempo?de tempo?
Testes == Qualidade ?Testes == Qualidade ?
Tipos de TestesTipos de Testes
Tipos de TestesTipos de Testes
✔Teste de AceitaçãoTeste de Aceitação
Tipos de TestesTipos de Testes
✔Teste de AceitaçãoTeste de Aceitação
✔Teste de carga/stressTeste de carga/stress
Tipos de TestesTipos de Testes
✔Teste de AceitaçãoTeste de Aceitação
✔Teste de carga/stressTeste de carga/stress
✔Teste funcionaisTeste funcionais
Tipos de TestesTipos de Testes
✔Teste de AceitaçãoTeste de Aceitação
✔Teste de carga/stressTeste de carga/stress
✔Teste funcionaisTeste funcionais
✔Teste de integraçãoTeste de integração
Tipos de TestesTipos de Testes
✔Teste de AceitaçãoTeste de Aceitação
✔Teste de carga/stressTeste de carga/stress
✔Teste funcionaisTeste funcionais
✔Teste de integraçãoTeste de integração
✔Teste de unidadeTeste de unidade
Vantagens de se Vantagens de se
testar softwaretestar software
Elementos de um caso de Elementos de um caso de
testeteste
✔Identificação do caso de testeIdentificação do caso de teste
✔DescriçãoDescrição
✔PassosPassos
✔Resultados esperadosResultados esperados
✔Resultados obtidosResultados obtidos
✔Passou/falhouPassou/falhou
Aplicativo web de gerenciamento Aplicativo web de gerenciamento
de testes, provendo suporte para de testes, provendo suporte para
a especificação, execução e a especificação, execução e
monitoramento das atividades de monitoramento das atividades de
teste.teste.
Casos de Teste (Test Casos de Teste (Test
Case)Case)
Suítes de Teste (Test Suítes de Teste (Test
Suite)Suite)
Planos de Teste (Test Planos de Teste (Test
Plan)Plan)
Projeto de Teste (Test Projeto de Teste (Test
Project)Project)
Usuário (User)Usuário (User)
DemoDemo
DemoDemo
✔Cadastrar/gerenciar usuáriosCadastrar/gerenciar usuários
✔Criar um novo projeto de testeCriar um novo projeto de teste
✔Criar suíte de testeCriar suíte de teste
✔Criar casos de testeCriar casos de teste
✔Criar planos de testeCriar planos de teste
✔Criar buildsCriar builds
✔Execução dos testesExecução dos testes
✔RelatóriosRelatórios
Ok, mas o que isso quer Ok, mas o que isso quer
dizer?dizer?
De forma geral, o principal uso De forma geral, o principal uso
do Selenium é do Selenium é automatizarautomatizar
testes em aplicações web.testes em aplicações web.
Teste automatizado necessita
→
Teste automatizado necessita
→
do auxílio de alguma ferramentado auxílio de alguma ferramenta
VantagensVantagens
✔Testes de regressão mais Testes de regressão mais
frequentesfrequentes
VantagensVantagens
✔Testes de regressão mais Testes de regressão mais
frequentesfrequentes
✔Feedback mais rápido para os Feedback mais rápido para os
implementadoresimplementadores
VantagensVantagens
✔Testes de regressão mais Testes de regressão mais
frequentesfrequentes
✔Feedback mais rápido para os Feedback mais rápido para os
implementadoresimplementadores
✔Iterações ilimitadas na execução Iterações ilimitadas na execução
de casos de testede casos de teste
VantagensVantagens
✔Testes de regressão mais Testes de regressão mais
frequentesfrequentes
✔Feedback mais rápido para os Feedback mais rápido para os
implementadoresimplementadores
✔Iterações ilimitadas na execução de Iterações ilimitadas na execução de
casos de testecasos de teste
✔Encontrar defeitos que testes Encontrar defeitos que testes
deixam passardeixam passar
Legal. Mas a automação é sempre Legal. Mas a automação é sempre
vantajosa?vantajosa?
ProjetosProjetos
Selenium IDESelenium IDE
Selenium IDESelenium IDE
✔Ferramenta de prototipaçãoFerramenta de prototipação
para construir scripts de testespara construir scripts de testes
Selenium IDESelenium IDE
✔Ferramenta de prototipaçãoFerramenta de prototipação
para construir scripts de testespara construir scripts de testes
✔Plugin do FirefoxPlugin do Firefox
Selenium IDESelenium IDE
✔Ferramenta de prototipaçãoFerramenta de prototipação
para construir scripts de testespara construir scripts de testes
✔Plugin do FirefoxPlugin do Firefox
✔Função de gravaçãoFunção de gravação
Selenium IDESelenium IDE
✔Ferramenta de prototipaçãoFerramenta de prototipação para para
construir scripts de testesconstruir scripts de testes
✔Plugin do FirefoxPlugin do Firefox
✔Função de gravaçãoFunção de gravação
✔ExportaExporta as ações dos usuários como um as ações dos usuários como um
script reutilizávelscript reutilizável em diferentes em diferentes
linguagens de programaçãolinguagens de programação
AtençãoAtenção
““Selenium IDE não foi projetado para Selenium IDE não foi projetado para
executar seus testes nem foi executar seus testes nem foi
projetado para construir todos os projetado para construir todos os
testes automatizados que você vai testes automatizados que você vai
precisar.”precisar.”
(Documentação do Selenium)(Documentação do Selenium)
Selenium Remote Control (RC)Selenium Remote Control (RC)
Selenium Remote Control Selenium Remote Control
(RC)(RC)
✔Foi o principal projeto do Selenium por um bom tempo, Foi o principal projeto do Selenium por um bom tempo,
antes do merge entre o WebDriver e o Seleniumantes do merge entre o WebDriver e o Selenium
Selenium Remote Control Selenium Remote Control
(RC)(RC)
✔Foi o principal projeto do Selenium por um bom tempo, Foi o principal projeto do Selenium por um bom tempo,
antes do merge entre o WebDriver e o Seleniumantes do merge entre o WebDriver e o Selenium
✔Hoje as releases desse projeto são principalmente Hoje as releases desse projeto são principalmente
corretivascorretivas
Selenium Remote Control Selenium Remote Control
(RC)(RC)
✔Foi o principal projeto do Selenium por um bom tempo, Foi o principal projeto do Selenium por um bom tempo,
antes do merge entre o WebDriver e o Seleniumantes do merge entre o WebDriver e o Selenium
✔Hoje as releases desse projeto são principalmente Hoje as releases desse projeto são principalmente
corretivascorretivas
✔Provê algumas funcionalidades que ainda não estão Provê algumas funcionalidades que ainda não estão
disponíveis no Selenium 2: suporte a diversas linguagens; disponíveis no Selenium 2: suporte a diversas linguagens;
suporte a diversos navegadoressuporte a diversos navegadores
Selenium WebDriver Selenium WebDriver
(Selenium 2)(Selenium 2)
✔API melhoradaAPI melhorada
✔Resoluções de algumas limitações Resoluções de algumas limitações
da versão anteriorda versão anterior
Selenium WebDriver Selenium WebDriver
(Selenium 2)(Selenium 2)
✔API melhoradaAPI melhorada
✔Resoluções de algumas limitações Resoluções de algumas limitações
da versão anteriorda versão anterior
✔Junção ao WebDriverJunção ao WebDriver
Selenium GridSelenium Grid
Selenium GridSelenium Grid
✔Solução escalável para suítes de Solução escalável para suítes de
testes pesadastestes pesadas
Selenium GridSelenium Grid
✔Solução escalável para suítes de Solução escalável para suítes de
testes pesadastestes pesadas
✔Permite a execução de testes em Permite a execução de testes em
paraleloparalelo
Qual devo usar então?Qual devo usar então?
Se não conhece linguagem de Se não conhece linguagem de
programação, use o Selenium IDE programação, use o Selenium IDE
para se familiarizarpara se familiarizar
Para o uso mais efetivo, a Para o uso mais efetivo, a
recomendação é pelo Selenium 2 recomendação é pelo Selenium 2
ou RC em conjunto com alguma ou RC em conjunto com alguma
linguagem de programação.linguagem de programação.
Navegadores e plataforma Navegadores e plataforma
suportadossuportados
Selenium 2 (WebDriver)Selenium 2 (WebDriver)
Navegadores e plataforma Navegadores e plataforma
suportadossuportados
Selenium 1 (RC)Selenium 1 (RC)
Demo Selenium IDEDemo Selenium IDE
✔InstalaçãoInstalação
✔Abrindo o IDE e demonstrando Abrindo o IDE e demonstrando
opçõesopções
✔Construindo Test CasesConstruindo Test Cases
Comandos mais utilizadosComandos mais utilizados
✔open open
✔click/clickAndWaitclick/clickAndWait
✔verifyTitle/assertTitleverifyTitle/assertTitle
✔verifyTextPresent verifyTextPresent
✔verifyElementPresent verifyElementPresent
✔waitForPageToLoad waitForPageToLoad
✔waitForElementPresent waitForElementPresent
Exemplos Selenium Exemplos Selenium
WebDriverWebDriver
✔Configurando um projeto JavaConfigurando um projeto Java
✔Exemplos do IDE e executá-los Exemplos do IDE e executá-los
via Javavia Java
PetclinicPetclinic
✔Testar um casos de usoTestar um casos de uso
✔Adicionar proprietário (owner)Adicionar proprietário (owner)
✔Adicionar animaisAdicionar animais
✔Cadastrar planos de teste no TestLinkCadastrar planos de teste no TestLink
✔Executá-losExecutá-los
ProvocaçõesProvocações
Porque não testar desde Porque não testar desde
o início do ciclo de o início do ciclo de
desenvolvimento?desenvolvimento?