Testes Funcionais com
Selenium
Uma empresa
C.E.S.A.R
Tadeu Marinho
tadeu.marinho@pitang.com
segunda-feira, 2 de janeiro de 2012
Agenda
Definição de teste;
Teste de software;
Por que testar?
Testes manuais x automatizados;
Testes Funcionais;
Selenium.
segunda-feira, 2 de janeiro de 2012
Motivação
O impulso interno que leva à ação.
segunda-feira, 2 de janeiro de 2012
Definição de Teste
Prova, verificação da eficiência ou do bom funcionamento (de
máquinas, materiais etc.) - Dicionário Aurélio
Outras:
– ato de verificar se algo está funcionando;
– evento ou situação que mostra o quão bom ou ruim algo é;
– maneira de verificar se algo existe ou está presente.
segunda-feira, 2 de janeiro de 2012
Novos Sabores
segunda-feira, 2 de janeiro de 2012
Novos Conhecimentos
segunda-feira, 2 de janeiro de 2012
Formas de Ensino
segunda-feira, 2 de janeiro de 2012
Novas Manobras
segunda-feira, 2 de janeiro de 2012
Segurança
segunda-feira, 2 de janeiro de 2012
Paixões
segunda-feira, 2 de janeiro de 2012
...
segunda-feira, 2 de janeiro de 2012
Faz Parte do Cotidiano
segunda-feira, 2 de janeiro de 2012
Testes de Software
“Consiste em executar o programa com a intenção de
encontrar erros (bugs).”
The Art of Software Testing - Glendford Myers, John Wiley & Son, 1979
segunda-feira, 2 de janeiro de 2012
Testes de Software
“É o processo formal de avaliar um sistema ou
componente de um sistema por meios manuais ou
automáticos para verificar se ele satisfaz os requisitos
especificados ou identificar diferenças entre os
resultados esperados e os obtidos.”
IEEE 729 - Glossary of Software Engineering Terminology, 1983
segunda-feira, 2 de janeiro de 2012
Testes de Software
“Consiste na verificação dinâmica do comportamento
de um programa, através de um conjunto finito de
casos de teste, adequadamente selecionado a partir de
um conjunto infinito de possibilidades, contra um
comportamento esperado especificado.”
SWEBOK - Guide to the Software Engineering Body of Knowledge
segunda-feira, 2 de janeiro de 2012
Por Que Testar?
“A economia norte-americana perde 60 bilhões de
dólares por ano com erros de software, dos quais 20
bilhões poderia ser economizados com melhorias nos
testes.”
Critical Testing Processes - Rex Black
segunda-feira, 2 de janeiro de 2012
Por Que Testar?
Processos de teste inadequados aumentam o risco de
atraso ou cancelamento de projetos entre 25% a 300%.
Critical Testing Processes - Rex Black
Mais de 1/3 das falhas poderiam ser evitadas com testes.
NIST - http://www.nist.gov/public_affairs/
Cerca de 50% das falhas só são descobertas em produção.
NIST - http://www.nist.gov/public_affairs/
segunda-feira, 2 de janeiro de 2012
O Custo
segunda-feira, 2 de janeiro de 2012
Teste Manual
Requer um grande esforço na criação e manutenção;
Baixa reutilização;
Dependente da linguagem natural que é ambígua;
Demorados e chatos de se executar;
Suscetível ao humor do testador;
Permite a exploração de situações diferentes;
Exige profissionais com experiência em testes.
segunda-feira, 2 de janeiro de 2012
Teste Manual
Ciclo 1Ciclo 1Ciclo 1
Ciclo 2
Ciclo N - 1
Ciclo N
Desafio:
segunda-feira, 2 de janeiro de 2012
Automação de Testes
“O propósito da automação de testes pode ser
resumidamente descrito como a aplicação de
estratégias e ferramentas tendo em vista a redução do
envolvimento humano em atividades manuais
repetitivas.”
Cem Kaner - Lessons Learned in Software Testing
segunda-feira, 2 de janeiro de 2012
IMPORTANTE
Automação de testes não exclui o fator humano.
segunda-feira, 2 de janeiro de 2012
Automação de Testes
Requer grande esforço na criação e manutenção;
Alta reutilização;
Exigem que cada ação seja programada;
São rápidos;
Suscetíveis a pequenas mudanças no ambiente;
Repetíveis e consistentes;
Exige profissionais altamente qualificados.
segunda-feira, 2 de janeiro de 2012
Falsas Expectativas
Uma ferramenta de testes
automatizados é a solução
de todos os problemas de
qualidade!
Quer dizer que para criar
testes automatizados será
necessário modificar o
sistema?
Teste automatizado é
moleza. Basta gravar e
depois executar o script!
segunda-feira, 2 de janeiro de 2012
Testes Funcionais
“Procedimento que deriva e/ou seleciona casos de
testes com base em uma análise da especificação da
funcionalidade de um componente ou sistema sem
fazer referência a sua estrutura interna.”
Glossário - ISTQB (International Software Testing Qualification Board
segunda-feira, 2 de janeiro de 2012
Testes Funcionais
“O Teste Funcional procura entre outras coisas, mostrar
que os requisitos funcionais do software são satisfeitos,
que a entrada é adequadamente aceita, que a saída
esperada é produzida e que a integridade das
informações externas é mantida; por isso, não existe
preocupação com a estrutura lógica interna do
sistema.”
Pressman, 2002
segunda-feira, 2 de janeiro de 2012
Aplicações Web
Como testar a camada de apresentação?
Como testar a compatibilidade entre browsers?
Como testar se a página foi renderizada corretamente?
Como automatizar tudo isto?
segunda-feira, 2 de janeiro de 2012
Selenium
Automação de testes funcionais em aplicações WEB;
segunda-feira, 2 de janeiro de 2012
Selenese
Conteúdo específico;
Componentes HTML;
Funcionalidades Ajax;
Manipulação de eventos;
Tamanho de janela/Posição do mouse;
Janelas pop-up;
...
segunda-feira, 2 de janeiro de 2012
Selenese
Actions: Comandos que geralmente manipulam o estado da
aplicação;
Accessors: Examinam o estado da aplicação e armazenam o
resultado em variáveis;
Assertions: Acessores que verificam conformidades:
– assert: aborta o teste;
– verify: teste continua, logando o erro;
– waitFor: verify com timeout.
segunda-feira, 2 de janeiro de 2012
Selenese
Exemplos:
Comando Target Valor
goBackAndWait
verifyTextPresent Welcome to My Page
type id=phone (555) 666-7066
type id=address1 ${myVariableAddress}
segunda-feira, 2 de janeiro de 2012
Componentes
Slelenium IDE
Slelenium Remote Control
Slelenium Grid
segunda-feira, 2 de janeiro de 2012
Selenium IDE
Extensão do Firefox;
– Permite:
– Gravar;
– Editar;
– Debugar.
Transforma ações gravadas em código em várias linguagens;
segunda-feira, 2 de janeiro de 2012
Selenium IDE
Vantagens:
– A instalação é local e simples;
– É muito fácil de usar;
– Permite gravar sessões de teste para uso posterior;
– Permite exportar as sessões de teste como arquivos fonte Java, C#,
Perl, PHP, Python e Ruby, que podem ser usados pelo Selenium RC;
– Excelente para quem inicia o uso do Selenium;
– Não é preciso saber programar.
Desvantagens:
– Funciona como plugin apenas no FireFox;
– Possui algumas limitações para testes mais complexos;
– Pode apresentar o mesmo comportamento irregular relatado no item
Selenuim Core. (colocar link local para #L1) .
segunda-feira, 2 de janeiro de 2012
Selenium RC
Permite rodar testes em browsers de diversos fabricantes;
Utiliza recursos de linguagens de programação;
Controle mais apurado do tempo;
Controle de sequência de eventos.
segunda-feira, 2 de janeiro de 2012
Selenium RC
Vantagens:
– É possível importar os testes gerados pelo Selenium IDE;
– Muito mais flexível e poderoso.
Desvantagens:
– A instalação e configuração do ambiente é um pouco mais trabalhosa;
– É necessário saber programar;
– Pode ser mais complicado escrever os testes à partir do zero .
segunda-feira, 2 de janeiro de 2012
Selenium RC
segunda-feira, 2 de janeiro de 2012
Selenium Grid
Permite a execução de múltiplos testes em paralelo, em várias
máquinas e em diferentes SOs.
segunda-feira, 2 de janeiro de 2012
Resumo
segunda-feira, 2 de janeiro de 2012
Referências
http://seleniumhq.org/
segunda-feira, 2 de janeiro de 2012
Tadeu Marinho
81 3134.5875
tadeu.marinho@pitang.com
www.pitang.com.br
segunda-feira, 2 de janeiro de 2012

Selenium

  • 1.
    Testes Funcionais com Selenium Umaempresa C.E.S.A.R Tadeu Marinho tadeu.marinho@pitang.com segunda-feira, 2 de janeiro de 2012
  • 2.
    Agenda Definição de teste; Testede software; Por que testar? Testes manuais x automatizados; Testes Funcionais; Selenium. segunda-feira, 2 de janeiro de 2012
  • 3.
    Motivação O impulso internoque leva à ação. segunda-feira, 2 de janeiro de 2012
  • 4.
    Definição de Teste Prova,verificação da eficiência ou do bom funcionamento (de máquinas, materiais etc.) - Dicionário Aurélio Outras: – ato de verificar se algo está funcionando; – evento ou situação que mostra o quão bom ou ruim algo é; – maneira de verificar se algo existe ou está presente. segunda-feira, 2 de janeiro de 2012
  • 5.
  • 6.
  • 7.
    Formas de Ensino segunda-feira,2 de janeiro de 2012
  • 8.
  • 9.
  • 10.
  • 11.
    ... segunda-feira, 2 dejaneiro de 2012
  • 12.
    Faz Parte doCotidiano segunda-feira, 2 de janeiro de 2012
  • 13.
    Testes de Software “Consisteem executar o programa com a intenção de encontrar erros (bugs).” The Art of Software Testing - Glendford Myers, John Wiley & Son, 1979 segunda-feira, 2 de janeiro de 2012
  • 14.
    Testes de Software “Éo processo formal de avaliar um sistema ou componente de um sistema por meios manuais ou automáticos para verificar se ele satisfaz os requisitos especificados ou identificar diferenças entre os resultados esperados e os obtidos.” IEEE 729 - Glossary of Software Engineering Terminology, 1983 segunda-feira, 2 de janeiro de 2012
  • 15.
    Testes de Software “Consistena verificação dinâmica do comportamento de um programa, através de um conjunto finito de casos de teste, adequadamente selecionado a partir de um conjunto infinito de possibilidades, contra um comportamento esperado especificado.” SWEBOK - Guide to the Software Engineering Body of Knowledge segunda-feira, 2 de janeiro de 2012
  • 16.
    Por Que Testar? “Aeconomia norte-americana perde 60 bilhões de dólares por ano com erros de software, dos quais 20 bilhões poderia ser economizados com melhorias nos testes.” Critical Testing Processes - Rex Black segunda-feira, 2 de janeiro de 2012
  • 17.
    Por Que Testar? Processosde teste inadequados aumentam o risco de atraso ou cancelamento de projetos entre 25% a 300%. Critical Testing Processes - Rex Black Mais de 1/3 das falhas poderiam ser evitadas com testes. NIST - http://www.nist.gov/public_affairs/ Cerca de 50% das falhas só são descobertas em produção. NIST - http://www.nist.gov/public_affairs/ segunda-feira, 2 de janeiro de 2012
  • 18.
    O Custo segunda-feira, 2de janeiro de 2012
  • 19.
    Teste Manual Requer umgrande esforço na criação e manutenção; Baixa reutilização; Dependente da linguagem natural que é ambígua; Demorados e chatos de se executar; Suscetível ao humor do testador; Permite a exploração de situações diferentes; Exige profissionais com experiência em testes. segunda-feira, 2 de janeiro de 2012
  • 20.
    Teste Manual Ciclo 1Ciclo1Ciclo 1 Ciclo 2 Ciclo N - 1 Ciclo N Desafio: segunda-feira, 2 de janeiro de 2012
  • 21.
    Automação de Testes “Opropósito da automação de testes pode ser resumidamente descrito como a aplicação de estratégias e ferramentas tendo em vista a redução do envolvimento humano em atividades manuais repetitivas.” Cem Kaner - Lessons Learned in Software Testing segunda-feira, 2 de janeiro de 2012
  • 22.
    IMPORTANTE Automação de testesnão exclui o fator humano. segunda-feira, 2 de janeiro de 2012
  • 23.
    Automação de Testes Requergrande esforço na criação e manutenção; Alta reutilização; Exigem que cada ação seja programada; São rápidos; Suscetíveis a pequenas mudanças no ambiente; Repetíveis e consistentes; Exige profissionais altamente qualificados. segunda-feira, 2 de janeiro de 2012
  • 24.
    Falsas Expectativas Uma ferramentade testes automatizados é a solução de todos os problemas de qualidade! Quer dizer que para criar testes automatizados será necessário modificar o sistema? Teste automatizado é moleza. Basta gravar e depois executar o script! segunda-feira, 2 de janeiro de 2012
  • 25.
    Testes Funcionais “Procedimento quederiva e/ou seleciona casos de testes com base em uma análise da especificação da funcionalidade de um componente ou sistema sem fazer referência a sua estrutura interna.” Glossário - ISTQB (International Software Testing Qualification Board segunda-feira, 2 de janeiro de 2012
  • 26.
    Testes Funcionais “O TesteFuncional procura entre outras coisas, mostrar que os requisitos funcionais do software são satisfeitos, que a entrada é adequadamente aceita, que a saída esperada é produzida e que a integridade das informações externas é mantida; por isso, não existe preocupação com a estrutura lógica interna do sistema.” Pressman, 2002 segunda-feira, 2 de janeiro de 2012
  • 27.
    Aplicações Web Como testara camada de apresentação? Como testar a compatibilidade entre browsers? Como testar se a página foi renderizada corretamente? Como automatizar tudo isto? segunda-feira, 2 de janeiro de 2012
  • 28.
    Selenium Automação de testesfuncionais em aplicações WEB; segunda-feira, 2 de janeiro de 2012
  • 29.
    Selenese Conteúdo específico; Componentes HTML; FuncionalidadesAjax; Manipulação de eventos; Tamanho de janela/Posição do mouse; Janelas pop-up; ... segunda-feira, 2 de janeiro de 2012
  • 30.
    Selenese Actions: Comandos quegeralmente manipulam o estado da aplicação; Accessors: Examinam o estado da aplicação e armazenam o resultado em variáveis; Assertions: Acessores que verificam conformidades: – assert: aborta o teste; – verify: teste continua, logando o erro; – waitFor: verify com timeout. segunda-feira, 2 de janeiro de 2012
  • 31.
    Selenese Exemplos: Comando Target Valor goBackAndWait verifyTextPresentWelcome to My Page type id=phone (555) 666-7066 type id=address1 ${myVariableAddress} segunda-feira, 2 de janeiro de 2012
  • 32.
    Componentes Slelenium IDE Slelenium RemoteControl Slelenium Grid segunda-feira, 2 de janeiro de 2012
  • 33.
    Selenium IDE Extensão doFirefox; – Permite: – Gravar; – Editar; – Debugar. Transforma ações gravadas em código em várias linguagens; segunda-feira, 2 de janeiro de 2012
  • 34.
    Selenium IDE Vantagens: – Ainstalação é local e simples; – É muito fácil de usar; – Permite gravar sessões de teste para uso posterior; – Permite exportar as sessões de teste como arquivos fonte Java, C#, Perl, PHP, Python e Ruby, que podem ser usados pelo Selenium RC; – Excelente para quem inicia o uso do Selenium; – Não é preciso saber programar. Desvantagens: – Funciona como plugin apenas no FireFox; – Possui algumas limitações para testes mais complexos; – Pode apresentar o mesmo comportamento irregular relatado no item Selenuim Core. (colocar link local para #L1) . segunda-feira, 2 de janeiro de 2012
  • 35.
    Selenium RC Permite rodartestes em browsers de diversos fabricantes; Utiliza recursos de linguagens de programação; Controle mais apurado do tempo; Controle de sequência de eventos. segunda-feira, 2 de janeiro de 2012
  • 36.
    Selenium RC Vantagens: – Épossível importar os testes gerados pelo Selenium IDE; – Muito mais flexível e poderoso. Desvantagens: – A instalação e configuração do ambiente é um pouco mais trabalhosa; – É necessário saber programar; – Pode ser mais complicado escrever os testes à partir do zero . segunda-feira, 2 de janeiro de 2012
  • 37.
    Selenium RC segunda-feira, 2de janeiro de 2012
  • 38.
    Selenium Grid Permite aexecução de múltiplos testes em paralelo, em várias máquinas e em diferentes SOs. segunda-feira, 2 de janeiro de 2012
  • 39.
  • 40.
  • 41.