Post on 12-Feb-2017
Os três princípios do BDD
● O suficiente é suficiente;
● Entregar valor para os stakeholders;
● Tudo é comportamento!
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"
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 stepsButtons press_user_action_button
press_back_buton
Assertions
Then /^I see the text "([^\"]*)"$/
TextsThen /^I clear "([^\"]*)"$/ do |identifier|
TouchingGiven /^I press the "([^\"]*)" button$/ do |text|
Recapitulando os passos para criação do teste
1. Criação da Estrutura2. Escrever a Feature3. Executar a Feature4. Criar os Steps Definitions5. Identificar os elementos pelo console6. Atualizar os Steps Definitions7. 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
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 coleNo 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