Rafael Amaral
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
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
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
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
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
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
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”
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
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
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
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
Patterns-Pirâmidedeautomação
Mike Cohn Martin Fowler
Anti-patterns
Sorvete de automação
Muitos testes manuais de
interface
Menos testes automatizados de
interface
Menos testes de serviço
Poucos testes unitários
Anti-patterns
Cupcake de automação
Quantidades iguais de testes nas
camadas
Replicação de testes
Grande retrabalho
Patterns-Pirâmideideal
Pirâmide ideal
Testes manuais "exploratórios"
Testes automatizados de Interface
Gráfica
Testes automatizados de API,
Integração e componente
Testes automatizados unitários
Ferramentas
5º Congresso Online de TI
Ferramentas
Ferramentas
https://github.com/amaralrfl
https://br.linkedin.com/in/amaralrfl
https://www.facebook.com/groups
/testesoftwaresalvador/
gtsba@googlegroups.com

Introdução a automação de testes - 5º Congresso Online de TI

  • 1.
  • 2.
    Agenda Objetivos Definição Manual x Automatizado Conceitos Porque 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 demaneira 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, autordo 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 muitaatençã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 oROI 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 aautomaçã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 aexecuçã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 testesvai 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çãoe 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 quetodos 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
  • 13.
  • 14.
    Anti-patterns Sorvete de automação Muitostestes manuais de interface Menos testes automatizados de interface Menos testes de serviço Poucos testes unitários
  • 15.
    Anti-patterns Cupcake de automação Quantidadesiguais de testes nas camadas Replicação de testes Grande retrabalho
  • 16.
    Patterns-Pirâmideideal Pirâmide ideal Testes manuais"exploratórios" Testes automatizados de Interface Gráfica Testes automatizados de API, Integração e componente Testes automatizados unitários
  • 17.
  • 18.
  • 19.
  • 20.