SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Automação Mobile com
Ferramentas, linguagem e plataformas..
Pré - requisitos para rodar o calabash
Gherkin
- Given/Dado
- When/Quando
- Then/Então
- And/E
Os três princípios do BDD
● O suficiente é suficiente;
● Entregar valor para os stakeholders;
● Tudo é comportamento!
Feature
Scenario
Steps
Criação de cenários de teste e estrutura
Feature
Scenario
Steps
Funcionalidade: Entrega no endereço
Cenário: Escolher um endereço de entrega
Dado que estou na tela Confidence Cambio
Quando escolher a opção Adquirir moeda
em espécie
Então estarei na tela de seleção moeda ou
pais
E devo escolher a moeda "USD"
Criação de cenários de teste e estrutura
Feature
Scenario
Steps
Funcionalidade: Entrega no endereço
Cenário: Posso escolher um endereço de
entrega
Dado que estou na tela Confidence Cambio
Quando escolher a opcao Adquirir moeda
em espécie
Então estarei na tela de seleção moeda ou
pais
E devo escolher a moeda "USD"
Cenário: Posso escolher uma loja
Criação de cenários de teste e estrutura
Criação de cenários de teste e estrutura
Feature
Scenario
Steps
Funcionalidade: Entrega no endereço
Cenário: Posso escolher um endereço de
entrega
Dado que estou na tela Confidence Cambio
Quando escolher a opção “Adquirir moeda em
espécie”
Então estarei na tela de seleção moeda ou
pais
E devo escolher a moeda "USD"
Gherkin
Feature
Scenario
Steps Ruby Code login_step.rb
Ruby
Tradução de linguagem
Principais comandos do Calabash
~$ calabash-android gen
~$ calabash-android console <apk>
~$ start_test_server_in_background
~$ query(“*”)
~$ calabash-android run <apk>
<feature><arquivo.feature>
Principais funções para acessar os componentes
Localizar textos(assertions):
elements_exists, wait_for_elements_exist
Clicar em componentes(Touching - texfield,
buttons,etc):
touch , tap_mark
Preencher um campo(Inputs):
query ,enter_text
Canned steps
Buttons
press_user_action_button
press_back_buton
Assertions
Then /^I see the text "([^"]*)"$/
Texts
Then /^I clear "([^"]*)"$/ do |identifier|
Touching
Given /^I press the "([^"]*)" button$/ do
|text|
Como localizo os componentes?
query (“*”)
Como localizo os componentes?
UiAutomator
Recapitulando os passos para criação
do teste
1. Criação da Estrutura
2. Escrever a Feature
3. Executar a Feature
4. Criar os Steps Definitions
5. Identificar os elementos pelo console
6. Atualizar os Steps Definitions
7. Executar a Feature
Principais dificuldades na automação mobile
● Muitas mudanças de layout, componentes,
textos ,durante o projeto;
● Pouco conhecimento sobre a ferramenta,
linguagem e plataforma;
● Tempo hábil e dedicação(estudo);
● Diferente versões das ferramentas e
comandos obsoletos;
● Configuração e erros.
Boas práticas de automação mobile:
● Plano de cobertura de teste;
● Padronização de componentes;
● Não utilizar IDs internos nas
features(cenários) ;
● Evite referenciar usando textos, prefira
usar id’s nos arquivos ruby;
● Reaproveitar cenários(features) ;
● Pair Programming (QA + DEV)
Desafio - Testing Dojo
Testando o login com o calabash
Como você escreveria o cenário para essa tela?
E para a tela de cadastro?
Etapa 1:
Escreva os cenários usando as palavras
chaves (Dado, Quando, Então, E) para a
tela de cadastro de login com os
seguintes campos: cpf, nome, data de
nascimento,email e senha e demais
necessários.
Obs: O arquivo deve ser salvo com a
extensão .feature
CPF:15442068608
Etapa 2:
Em um terminal, rode o comando do calabash
para gerar os steps, em seguida, copie as
saídas geradas, e cole
No arquivo com extensão .rb ( pasta
step_definitions)
Se atentar ao nome dos arquivos!!!!*
Etapa 3:
Ache os elementos(ids/text) na tela de
cadastro de login dos seguintes campos:
cpf, nome, data de nascimento,email e
senha e demais necessários. Guarde-os para
uso futuro.
Dica: Use o console do calabash ou
UiAutomator do android
Etapa 4:
Edite o arquivo .rb criado anteriormente
e use as funções do Calabash para escrever
a sequência de comandos, utilizando os
elementos encontrados.
Execute o calabash novamente e acompanhe
os steps.
Links Úteis
http://calaba.sh/
http://cukes.info/
https://github.com/calabash
http://testmunk.readthedocs.io/en/latest/android.html
OBRIGADO!
gislaine.melo@dextra-sw.com

Mais conteúdo relacionado

Semelhante a Automação Mobile com Calabash

pepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSSpepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSSRodrigo Urubatan
 
MobileConf 2013: PhoneGap
MobileConf 2013: PhoneGapMobileConf 2013: PhoneGap
MobileConf 2013: PhoneGapLoiane Groner
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralVanderson Silva
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalEduardo Bregaida
 
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Loiane Groner
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cpcesarvianna
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenterPaulino Michelazzo
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinO uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinDavid Robert Camargo de Campos
 
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiraTDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiratdc-globalcode
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraDiego Gabriel Cardoso
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Gilmar PSL
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SThoughtworks
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbridodrbatiston
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 

Semelhante a Automação Mobile com Calabash (20)

pepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSSpepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSS
 
MobileConf 2013: PhoneGap
MobileConf 2013: PhoneGapMobileConf 2013: PhoneGap
MobileConf 2013: PhoneGap
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso Total
 
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cp
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinO uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
 
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiraTDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
 
TDC 2015 Florianopolis
TDC 2015 FlorianopolisTDC 2015 Florianopolis
TDC 2015 Florianopolis
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.S
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbrido
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 

Automação Mobile com Calabash

  • 2. Ferramentas, linguagem e plataformas..
  • 3. Pré - requisitos para rodar o calabash
  • 4.
  • 6. Os três princípios do BDD ● O suficiente é suficiente; ● Entregar valor para os stakeholders; ● Tudo é comportamento!
  • 8. Feature Scenario Steps Funcionalidade: Entrega no endereço Cenário: Escolher um endereço de entrega Dado que estou na tela Confidence Cambio Quando escolher a opção Adquirir moeda em espécie Então estarei na tela de seleção moeda ou pais E devo escolher a moeda "USD" Criação de cenários de teste e estrutura
  • 9. Feature Scenario Steps Funcionalidade: Entrega no endereço Cenário: Posso escolher um endereço de entrega Dado que estou na tela Confidence Cambio Quando escolher a opcao Adquirir moeda em espécie Então estarei na tela de seleção moeda ou pais E devo escolher a moeda "USD" Cenário: Posso escolher uma loja Criação de cenários de teste e estrutura
  • 10. Criação de cenários de teste e estrutura Feature Scenario Steps Funcionalidade: Entrega no endereço Cenário: Posso escolher um endereço de entrega Dado que estou na tela Confidence Cambio Quando escolher a opção “Adquirir moeda em espécie” Então estarei na tela de seleção moeda ou pais E devo escolher a moeda "USD"
  • 11. Gherkin Feature Scenario Steps Ruby Code login_step.rb Ruby Tradução de linguagem
  • 12. Principais comandos do Calabash ~$ calabash-android gen ~$ calabash-android console <apk> ~$ start_test_server_in_background ~$ query(“*”) ~$ calabash-android run <apk> <feature><arquivo.feature>
  • 13. Principais funções para acessar os componentes Localizar textos(assertions): elements_exists, wait_for_elements_exist Clicar em componentes(Touching - texfield, buttons,etc): touch , tap_mark Preencher um campo(Inputs): query ,enter_text
  • 14. Canned steps Buttons press_user_action_button press_back_buton Assertions Then /^I see the text "([^"]*)"$/ Texts Then /^I clear "([^"]*)"$/ do |identifier| Touching Given /^I press the "([^"]*)" button$/ do |text|
  • 15. Como localizo os componentes? query (“*”)
  • 16. Como localizo os componentes? UiAutomator
  • 17. Recapitulando os passos para criação do teste 1. Criação da Estrutura 2. Escrever a Feature 3. Executar a Feature 4. Criar os Steps Definitions 5. Identificar os elementos pelo console 6. Atualizar os Steps Definitions 7. Executar a Feature
  • 18. Principais dificuldades na automação mobile ● Muitas mudanças de layout, componentes, textos ,durante o projeto; ● Pouco conhecimento sobre a ferramenta, linguagem e plataforma; ● Tempo hábil e dedicação(estudo); ● Diferente versões das ferramentas e comandos obsoletos; ● Configuração e erros.
  • 19. Boas práticas de automação mobile: ● Plano de cobertura de teste; ● Padronização de componentes; ● Não utilizar IDs internos nas features(cenários) ; ● Evite referenciar usando textos, prefira usar id’s nos arquivos ruby; ● Reaproveitar cenários(features) ; ● Pair Programming (QA + DEV)
  • 20. Desafio - Testing Dojo Testando o login com o calabash
  • 21. Como você escreveria o cenário para essa tela?
  • 22. E para a tela de cadastro?
  • 23. Etapa 1: Escreva os cenários usando as palavras chaves (Dado, Quando, Então, E) para a tela de cadastro de login com os seguintes campos: cpf, nome, data de nascimento,email e senha e demais necessários. Obs: O arquivo deve ser salvo com a extensão .feature CPF:15442068608
  • 24. Etapa 2: Em um terminal, rode o comando do calabash para gerar os steps, em seguida, copie as saídas geradas, e cole No arquivo com extensão .rb ( pasta step_definitions) Se atentar ao nome dos arquivos!!!!*
  • 25. Etapa 3: Ache os elementos(ids/text) na tela de cadastro de login dos seguintes campos: cpf, nome, data de nascimento,email e senha e demais necessários. Guarde-os para uso futuro. Dica: Use o console do calabash ou UiAutomator do android
  • 26. Etapa 4: Edite o arquivo .rb criado anteriormente e use as funções do Calabash para escrever a sequência de comandos, utilizando os elementos encontrados. Execute o calabash novamente e acompanhe os steps.