View
128
Download
1
Category
Preview:
Citation preview
1
BDD on Mobile
Louise Souza e Ricardo Nacif
Utilizando Cucumber + Appium para executar testes automatizados em Smartphones
2
ApresentaçãoFormada em Ciência da Computação,
trabalha com qualidade de software e automação de testes a 3 anos na Avenue
Code, atuando na criação de frameworks e casos de testes
automatizados para desktop e mobile. Utilizando metodologias ágeis, Louise lidera a equipe de QAs que atuam em
diversos clientes nacionais e internacionais.
Louise Souza
3
ApresentaçãoQA Engineer na Avenue Code e
desenvolvedor web, desenvolve soluções de teste automatizados
utilizando metodologias ágeis. Formado em Sistemas de Informação, trabalha com Ruby desde 2011 e acredita que
ferramentas open source são ideais para um bom processo de CI.
Ricardo Nacif
4
Sumário
1. BDD2. Cucumbero Gherkin
3. Selenium4. Appium5. Touch Action
Cardápio do dia
5
Objetivo da apresentação
● Testar uma funcionalidade de um site mobile utilizando práticas Agile:○ BDD
■ Cucumber■ Selenium■ Appium■ Touch Actions Gem
6
Introdução ao BDD
● Desenvolvimento Guiado por Comportamento○ Técnica de desenvolvimento ágil ○ Encoraja a colaboração entre
desenvolvedores, QA’s e pessoas não técnicas
7
Objetivos do BDD
● Resolver os problemas causados pelo TDD○ Em Destaque: Falta de clareza para a equipe
● Permite que os testes sejam escritos antes do desenvolvimento
Com o BDD, toda a equipe compreende o comportamento esperado e os testes são escritos
em forma de frase.
Assim, quando o desenvolvimento terminar basta executar os testes
8
BDD Layout
● Utiliza uma linguagem ubíqua para definir o processo de analise.
As a <Role>I want <Feature>So that I Receive <Value>
Como um < Papel>Eu quero <O que eu quero alcançar>Para que <Por que eu quero alcançar>
9
Exemplo
Validar a quantidade de dígitos do cartão de crédito informado pelo usuário.
10
Exemplo BDD
Como um usuário de um eCommerceEu quero que uma mensagem de erro seja exibida quando a quantidade de dígitos informada for menor que 16 caracteres no campo de cartão de créditoPara que eu possa enviar meus dados de pagamento corretamente
11
Exemplo BDD
Critérios de aceitação1. A mensagem de erro deve informar a quantidade
de dígitos esperada2. Ela deve ser exibida sob o campo de cartão de
crédito
12
Exemplo BDD
13
● Cucumber é um framework de testes BDD
● Utilizado para automação, torna extremamente fácil essa interação, devido a documentação ser desenvolvida em linguagem usual
● Utiliza a linguagem Gherkin
14
Gherkin
Documentação e Automação
Testes!!!!!
15
Gherkin
● Funcionalidade(Feature)Um texto conciso que descreva a funcionalidade
● Cenário(Scenario)Descrição do teste a ser realizado
● Esquema do Cenário(Scenario Outline)Descrição do teste a ser realizado quando se utiliza uma tabela
16
Gherkin● Dado(Given)
Alguma pré condição● Quando(When)
Alguma ação executada pelo ator(papel)● Então(Then)
Condição a ser alcançada● E(And)
Qualquer outro passo complementar
17
Exemplo Cucumber
Para que eu possa adicionar novos amigosComo um usuário do Facebook MobileEu quero ver as indicações de amigos no meu feed de notícias
18
Feature File
[Texto/Imagem/Vídeo]Funcionalidade: Recomendações de amigos no Facebook MobileCenário: Ver as indicações de amizade no feed de notícias
Dado que estou na página inicial do facebook (www.facebook.com) E que eu estou logadoQuando eu percorrer meu feed de notíciasEntão eu devo ver um painel com as indicações de amizade E eu devo poder deslizar para ver mais indicações
19
Selenium
Selenium é um framework de testes que permite a automação de testes de aceitação ou testes de funcionalidade para executar em um browser.
20
Appium
● Framework open source de testes automatizados para smartphones
● Realiza testes em aplicativos nativos e web.
21
Appium
22
Appium - Prós
● Open Source● Comunidade crescendo a cada dia● Suporta testes em diferentes versões do
iOS e do Android
23
Appium - Prós
● Utiliza o protocolo WebDriver, o mesmo do Selenium
● Testes podem ser executados em dispositivos reais
● É possível rodar os testes em cloud utilizando serviços como Sauce Labs, BrowserStack e Testdroid.
24
Appium - Contras
● Para rodar os testes no iOS, você precisa de um Mac
● Não suporta rodar múltiplos testes em paralelo● É uma ferramenta em desenvolvimento, possuí
bugs● Não possuí suporte nativo para simular gestos
em aplicações web
25
Touch ActionOpen Source Ruby Gem
26
Gestos TouchAction
Toque
27
Gestos TouchAction
Toque - Duplo
28
Gestos TouchAction
Pressionar
29
Gestos TouchAction
Deslizar
30
Gestos TouchAction
Mover
31
Gestos TouchAction
Pinça
32
Gestos TouchAction
Rotacionar
Script manda um código javascript
contendo o YUI e o nome do gesto a
ser executado junto com as
opções
33
TouchAction Gem
Script Ruby/Selenium
com a Touch Action Gem
Servidor do Appium manda o
código pro simulador ou smartphone
34
TouchAction Gem
● Tem suporte para Selenium, Watir Webdriver e Capybara
● Gestos totalmente configuráveis através de opções
36
Demonstração
37
Feature File
[Texto/Imagem/Vídeo]Cenário: Ver as indicações de amizade no feed de notícias
Dado que estou na página inicial do facebook (www.facebook.com) E que eu estou logadoQuando eu percorrer meu feed de notíciasEntão eu devo ver um painel com as indicações de amizade E eu devo poder deslizar para ver mais indicações
38
Facebook Automation
FOTO CODIGO
39
Facebook Automation
41
TouchAction Gem
github.com/Ricardonacif/cucumber_appium
42
jobs.net/jobs/avenuecode/
43
lsouza@avenuecode.com rjunior@avenuecode.com
Recommended