Este documento resume uma apresentação sobre automação de testes. Resume três pontos principais:
1) Apresenta uma comunidade dedicada à qualidade de software chamada GUTS Talks e seus objetivos de compartilhar conhecimento e promover debates sobre o tema.
2) Discute estratégias de planejamento para automação de testes em diferentes níveis como release, feature, história e tarefa. Enfatiza a importância de considerar retorno sobre investimento, complexidade e esforço de manutenção ao selecionar quais testes automatizar.
3)
2. Quem somos...
Comunidade
apaixonada por
Qualidade de
Software Ajudamos
pessoas
interessadas
em Qualidade
Conectamos
pessoas para
compartilhar
conhecimento Realizamos
eventos,
promovemos
debates...
...com o apoio
de voluntários
e da SUCESU-
RS
Esperamos a
sua
participação
ativa...
...trocando
experiências,
palestrando,
ouvindo...
...sempre
respeitando
opiniões
divergentes
Crie,
Inove,
Faça parte
desta colmeia!
3.
4. Fique ligado nos
próximos eventos!
Projetando a sua carreira de testes
para 2018
Dia 12/12
Vagas limitadas!!!
8. Nível de Release
• Pensar em:
• Ferramentas | Ambientes | Práticas e Técnicas (performance)
• Fazer PoC | Levantar riscos
9. Nível de Feature (Planejamento da Iteração)
• Determinar o tamanho da Feature levando em
conta o esforço de automação
• Analisar quais podem ser impactadas por requisitos
não funcionais (performance | segurança)
10. Nível de Story
• Separação das Stories por níveis
• Unitário | integração | API | Funcional | Aceitação/E2E
• Preparar massa de dados de teste
• Criar/atualizar os ambientes necessários
11. Nível de Story - Exemplo prático
Como um possível passageiro
Eu desejo pesquisar por voos
Para que eu possa passar férias
Pesquisar por voos
Seleção de voos
Como um possível passageiro
Eu desejo selecionar o voo de minha
preferência
Para que eu possa comprar o voo
Preencher dados e pagamento
Localizador da passagem
Como um passageiro
Eu desejo informar meus dados
pessoais e de cartão de crédito
Para que eu possa efetuar a compra
da passagem
Como um passageiro
Eu desejo visualizar o localizador da
passagem
Para que eu possa fazer meu checkin
A
B C
D
13. Nível de Tarefas
• Ao menos, pensar em todas as tarefas relacionadas a
automação
• Criação/Atualização de Scripts | Criação/Atualização de massa de dados,
etc..
14. Seleção dos Testes
• Devemos considerar, sempre, ao menos 3 fatores:
• ROI
Tentar associar ao impacto e risco no projeto e ganho de
tempo para execução
• Complexidade de desenvolvimento
O quão complexo/demorado é o esforço de automação
• Esforço de manutenção
Analisar de a funcionalidade está passando por constantes
mudanças ou tem uma concentração grande de bugs
15. Seleção dos Testes – Exemplo prático
• Criar uma matriz para ajudar na seleção
• Estabelecer Critérios para considerar
• Pontuação
• Prioridade
• Esforço de implementação
18. ALINE ZANIN
• Mestra em Ciência da
Computação;
• Especialista em Qualidade de
Software;
• Professora;
• Pesquisadora;
• “Agilista”
19. Por que Selenium?
• Simples de configurar;
• Leve para “rodar”;
• Fácil para aprender;
• Útil para testar;
20. Por onde Começo?
• Selenium é uma biblioteca que você
adiciona em um projeto e te permite
interagir com elementos de páginas
da web;
• Para começar faça download do
Selenium e extraia os arquivos;
• Crie um projeto Java;
• Adicione a biblioteca do Seleniun
neste projeto;
• Adicione a bibliteca do Junit neste
projeto
38. Desafios
• Unificar os mapeamentos de telas
• Base de testes, cenários e métodos auxiliares
únicos
• Execução unificada
• Geração de reports unificados
39. Um pouco sobre Ruby
• Linguagem dinâmica
• Open source
• Foco na simplicidade e na produtividade
• Tem uma sintaxe elegante de leitura natural e fácil
escrita
Fonte: https://www.ruby-lang.org/pt/
40. Um pouco sobre Cucumber
• Framework para escrita em uma linguagem
semelhante à natural
• Conceitos Gherkin
• Behavior Driven Development
Fonte: https://cucumber.io/
41. Um pouco sobre Appium
- Open Source
- Android, iOS, Windows*
- Protocolo Webdriver
- https://w3c.github.io/webdri
ver/webdriver-spec.html
Fonte: http://appium.io/
43. Como estruturamos nossa solução?
● app: Onde colocamos os aplicativos Android e IOS.
● config: Onde colocamos as configurações passadas para o
appium_lib.
● features: Core da aplicação com:
○ elementos mapeados para ambas as plataformas
○ features com os cenários que serão executados
○ pageObjects com abstrações que facilitam a criação dos testes
○ passos para execução dos testes
● support: classes e métodos auxiliares
● rake_tasks: aqui é onde boa parte da mágica acontece,
onde é possível rodar um teste para uma determinada
plataforma com um simples comando.