O documento apresenta os principais conceitos, técnicas e ferramentas de automação de testes, discutindo definições, vantagens e desvantagens de testes manuais versus automatizados, quando e como automatizar, mitos e verdades, padrões e anti-padrões de automação, como gerenciar expectativas e ferramentas utilizadas.
2. Agenda
Objetivos
Definição
Manual x Automatizado
Conceitos
Por que automatizar? x Por que não automatizar?
Quando automatizar? x Quando não automatizar?
Como automatizar? x Como não automatizar?
Prós x Contras
Mitos x Verdades
Técnicas
Patterns
Anti-Patterns
Ferramentas
3. Objetivos
Objetivo geral
Apresentar de maneira introdutória a automação de testes, expondo os principais
conceitos, técnicas e ferramentas utilizadas na automação
Objetivo específico
Permitir que os ouvintes entendam os conceitos básicos da automação de teste e a
partir daí possam desenvolver seus estudos com melhor eficiência
4. Definições
Cem Kaner, autor do livro Lessons Learned in Software Testing
Aplicação de estratégias e ferramentas visando a redução do envolvimento
humano em atividades manuais repetitivas
Outras definições
Conjunto de atividades que incluem o desenvolvimento e execução de scripts de
teste
Técnica de testes que busca direcionar os esforços de execução de casos de teste
para as máquinas
Uso de um software para controlar a execução do teste de outro software, pode
permitir a comparação dos resultados, configurações de execução e outras funções
de controle e geração de relatório e evidências da execução
5. ManualxAutomatizado
Testes Manuais
Requerem muita atenção do testador pois são altamente propensos a erros
Permitem que o testador utilize sua criatividade durante os testes
Requerem maior tempo para execução (são mais lentos)
Não permitem reutilização
Testes Automatizados
Dificultam a utilização de criatividade e exploração em diferentes situações de teste
Requerem menos tempo de execução (são mais rápidos)
Requerem grande esforço de criação e manutenção
Menos propensos a erros
Permitem a reutilização
6. Conceitos
Por que automatizar?
Porque é necessário garantir que as funcionalidades não foram afetadas com a
manutenção do código (Regressão)
Porque automatizar permite aumentar a cobertura dos testes
Porque automatizar pode reduzir tempo e custo de execução
Por que não automatizar?
Porque os projetos são “pequenos” ou de “curta duração”
Porque as expectativas não estão alinhadas
Porque não há tempo ou recursos
7. Conceitos
Quando automatizar?
Quando o ROI para automação compensar
Quando houver baixo risco de mudanças na documentação e layout
Quando há um processo bem definido e executado
Quando os testes estão "maduros"
Quando não automatizar?
Quando o processo de desenvolvimento de software é "imaturo"
Quando a AUT (Application Under Testing) está instável
Quando a automação não é encarada como um projeto
Quando o processo de testes é informal
8. Conceitos
Como automatizar?
Utilize a automação como um complemento aos testes manuais e outras técnicas
Defina um escopo e objetivos para automação
Encare a automação como um projeto
Como não automatizar?
Não confie "cegamente" na ferramenta escolhida
Não automatize “todo” o sistema
Não automatize o “caos”
9. Conceitos
Prós
Permite escalar a execução (paralelizar) Permite eliminar o fator humano na etapa
de execução
Provê velocidade na execução dos scripts
Permite reutilização
Contras
Há certa dificuldade para os Scripts não lidarem com situações inesperadas
Requer muito retrabalho caso ocorra uma grande mudança no projeto
Requer mão-de-obra especializada
Requer grande esforço inicial
10. Conceitos
Mitos
Automatizar os testes vai garantir que o software não tem defeitos
Automatizar os testes vai desempregar os testadores manuais
Automatizar os testes vai resolver os problemas de qualidade
Automatizar os testes vai reduzir os custos
Verdades
A automação dos testes não dispensa a realização de testes manuais
Não é possível automatizar todos os testes
Automatizar testes é caro
O ROI não é imediato
11. Técnicas
Record and Playback
Gravação e reprodução de scripts
Exige menor esforço inicial, difícil manutenção
Não há parametrização de variáveis
Data Driven
Adaptação do Record and Playback
Há reutilização de código e parametrização
Maior esforço inicial e de manutenção
KeyWord Driven
“Framework de automação”
Requer maior conhecimento e esforço inicial
Auto reuso e facilidade de manutenção
12. Gerenciamento deexpectativas
Garantir que todos os interessados estejam cientes dos resultados
esperados
Garantir que todos os interessados estejam cientes dos custos envolvidos
Garantir que a automação é vista como um projeto com características
próprias
Garantir que a ferramenta escolhida atende as necessidades da equipe e
facilite extensão caso seja necessário