Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BDD on mobile - Utilizando Cucumber + Appium pa...

BDD on mobile - Utilizando Cucumber + Appium para executar testes automatizados em Smartphones

Avatar for louisesouza

louisesouza

June 13, 2015
Tweet

Other Decks in Technology

Transcript

  1. 1 BDD on Mobile Louise Souza e Ricardo Nacif Utilizando

    Cucumber + Appium para executar testes automatizados em Smartphones
  2. 2 Apresentação Formada 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. 3 Apresentação QA 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. 4 Sumário 1. BDD 2. Cucumber ◦ Gherkin 3. Selenium

    4. Appium 5. Touch Action Cardápio do dia
  5. 5 Objetivo da apresentação • Testar uma funcionalidade de um

    site mobile utilizando práticas Agile: ◦ BDD ▪ Cucumber ▪ Selenium ▪ Appium ▪ Touch Actions Gem
  6. 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. 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. 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. 10 Exemplo BDD Como um usuário de um eCommerce Eu

    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édito Para que eu possa enviar meus dados de pagamento corretamente
  10. 11 Exemplo BDD Critérios de aceitação 1. A mensagem de

    erro deve informar a quantidade de dígitos esperada 2. Ela deve ser exibida sob o campo de cartão de crédito
  11. 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
  12. 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
  13. 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
  14. 17 Exemplo Cucumber Para que eu possa adicionar novos amigos

    Como um usuário do Facebook Mobile Eu quero ver as indicações de amigos no meu feed de notícias
  15. 18 Feature File [Texto/Imagem/Vídeo] Funcionalidade: Recomendações de amigos no Facebook

    Mobile 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 logado Quando eu percorrer meu feed de notícias Então eu devo ver um painel com as indicações de amizade E eu devo poder deslizar para ver mais indicações
  16. 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.
  17. 20 Appium • Framework open source de testes automatizados para

    smartphones • Realiza testes em aplicativos nativos e web.
  18. 22 Appium - Prós • Open Source • Comunidade crescendo

    a cada dia • Suporta testes em diferentes versões do iOS e do Android
  19. 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.
  20. 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
  21. 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
  22. 34 TouchAction Gem • Tem suporte para Selenium, Watir Webdriver

    e Capybara • Gestos totalmente configuráveis através de opções
  23. 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 logado Quando eu percorrer meu feed de notícias Então eu devo ver um painel com as indicações de amizade E eu devo poder deslizar para ver mais indicações