43
1 BDD on Mobile Louise Souza e Ricardo Nacif Utilizando Cucumber + Appium para executar testes automatizados em Smartphones

BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

Embed Size (px)

Citation preview

Page 1: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

1

BDD on Mobile

Louise Souza e Ricardo Nacif

Utilizando Cucumber + Appium para executar testes automatizados em Smartphones

Page 2: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 3: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 4: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

4

Sumário

1. BDD2. Cucumbero Gherkin

3. Selenium4. Appium5. Touch Action

Cardápio do dia

Page 5: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

5

Objetivo da apresentação

● Testar uma funcionalidade de um site mobile utilizando práticas Agile:○ BDD

■ Cucumber■ Selenium■ Appium■ Touch Actions Gem

Louise Avelar de Souza
Ricardo, vou deixar esse slide aqui.. sei q ta ruim mas depois a gente discute sobre!
Ricardo Junior
Só por uns bullets points e tirar a ultima frase na minha opinião
Page 6: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 7: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 8: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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>

Page 9: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

9

Exemplo

Validar a quantidade de dígitos do cartão de crédito informado pelo usuário.

Page 10: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Ricardo Junior
Seria: Como um usuárioEu quero que uma mensagem de erro seja exibida quando a quantidade de dígitos digitada for menor que 16 no campo de cartão de créditoPara que eu possa enviar meus dados de pagamento corretamente
Page 11: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 12: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

12

Exemplo BDD

Page 13: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 14: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

14

Gherkin

Documentação e Automação

Testes!!!!!

Page 15: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 16: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 17: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 18: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 19: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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.

Page 20: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

20

Appium

● Framework open source de testes automatizados para smartphones

● Realiza testes em aplicativos nativos e web.

Page 21: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

21

Appium

Page 22: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

22

Appium - Prós

● Open Source● Comunidade crescendo a cada dia● Suporta testes em diferentes versões do

iOS e do Android

Page 23: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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.

Page 24: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 25: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

25

Touch ActionOpen Source Ruby Gem

Page 26: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

26

Gestos TouchAction

Toque

Page 27: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

27

Gestos TouchAction

Toque - Duplo

Page 28: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

28

Gestos TouchAction

Pressionar

Page 29: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

29

Gestos TouchAction

Deslizar

Page 30: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

30

Gestos TouchAction

Mover

Page 31: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

31

Gestos TouchAction

Pinça

Page 32: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

32

Gestos TouchAction

Rotacionar

Page 33: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 34: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

34

TouchAction Gem

● Tem suporte para Selenium, Watir Webdriver e Capybara

● Gestos totalmente configuráveis através de opções

Page 35: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

35

TouchAction Gem

Page 36: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

36

Demonstração

Page 37: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

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

Page 38: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

38

Facebook Automation

FOTO CODIGO

Page 39: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

39

Facebook Automation

Page 40: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

40

Facebook Automation

Page 41: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

41

TouchAction Gem

github.com/Ricardonacif/cucumber_appium

Page 42: BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizados em smartphones - Louise Souza e Ricardo Nacif

42

jobs.net/jobs/avenuecode/