O documento discute testes funcionais automatizados com Selenium, definindo teste de software, explicando porque testar é importante, comparando testes manuais e automatizados, introduzindo testes funcionais e descrevendo os componentes e funcionalidades do Selenium.
2. 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
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
12. Faz Parte do Cotidiano
segunda-feira, 2 de janeiro de 2012
13. 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
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
“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
16. 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
17. 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
19. 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
20. Teste Manual
Ciclo 1Ciclo 1Ciclo 1
Ciclo 2
Ciclo N - 1
Ciclo N
Desafio:
segunda-feira, 2 de janeiro de 2012
21. 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
23. 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
24. 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
25. 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
26. 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
27. 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
30. 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
33. 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
34. 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
35. 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
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