Agile Testers TechTalks | Test War Stories - Andreia Gaita @ Tech Lead do GitHub. Saiba mais aqui

Automação de Testes Mobile com Appium



  • Olá a todos os desenvolvedores, analistas e testadores!

    Eu sou a Camila Dias, sou programadora, eu trabalho em uma empresa de automatização de testes mobile.

    No momento estou fazendo uma pesquisa para que possamos interagir e refletir sobre as experiências com as execuções dos testes com Appium:

    1 - Você usa quais ferramentas para realizar os testes de automatização mobile?

    2 - O que mais você priorizaria para alavancar em desenvolvimento de teste mobile no Appium?

    3 - Argumenta sobre os prós e contras do Appium.

    4 - Quais linguagens de scripts você aplica no Appium?

    5 - Os testes que você aplica têm compatibilidade em quais plataformas (Android/iOS)?

    6 - Você aplica o teste em caixa branca?

    7 - Você realiza screenshots no Appium?

    8 - Você realiza a coleta de logs durantes os testes?

    Cordialmente,
    Camila Dias.



  • movido para geral :)



  • Olá Camila tudo bom? Meu Nome é Luiz Lohn, e trabalho com Automação Mobile, especificamente com Appium e reconhecimento de imagens com uma biblioteca específica para Mobile.

    1 - Você usa quais ferramentas para realizar os testes de automatização mobile?
    Utilizo Appium

    2 - O que mais você priorizaria para alavancar em desenvolvimento de teste mobile no Appium?
    Levando em consideração o maior risco de Churn

    3 - Argumenta sobre os prós e contras do Appium.
    Contras: Alguns momentos podem ocorrer problema com app iOS por conta do Instuments. Prós: Utilizo o mesmo código para automatizar Android e IOS, fácil de utilizar, me atende em todos os aspecto, posso integrar com outros frameworks

    4 - Quais linguagens de scripts você aplica no Appium?
    Python, Java e Ruby

    5 - Os testes que você aplica têm compatibilidade em quais plataformas (Android/iOS)?
    Android e iOS

    6 - Você aplica o teste em caixa branca?
    Sim

    7 - Você realiza screenshots no Appium?
    Sim, em determinado pontos quero ter o screenshot para geração do relatório

    8 - Você realiza a coleta de logs durantes os testes?
    Sim, parte importante caso quebre algo.

    Podemos trocar várias ideias sobre o assunto ;)



  • Oi Camila, tudo bem?
    Eu venho ha pouco mais de dois anos ministrando treinamentos sobre Appium e também dando consultorias referente a testes para dispositivos móveis.

    Vou responder também como o Luiz fez, complementando com minha experiência.

    1 - Você usa quais ferramentas para realizar os testes de automatização mobile?
    Eu uso uma gama não tão grande com as seguintes ferramentas:

    • Calabash (Android e iOS)
    • Espresso (Android)
    • Appium (Android, iOS e Híbrido)
    • Robotium (Android e Híbrido)

    2 - O que mais você priorizaria para alavancar em desenvolvimento de teste mobile no Appium?
    Não entendi muito bem… Seria os pontos prós e contras abaixo ou outra questão?

    3 - Argumenta sobre os prós e contras do Appium.
    Contras
    Não consigo enxergar um contra realmente frente a outras ferramentas de teste mobile.
    Talvez só o conjunto de alguns passos de pré condições antes de executar os testes para iOS em dispositivos reais.

    Prós

    • DSL de fácil aprendizado
    • Utilizar os frameworks internos de teste de cada tecnologia (UIAutomation do iOS, UIAutomator do Android e WebDriver para Híbrido)
    • Facilidade de troca de contexto de apps nativas para híbridas e vice-versa no mesmo script
    • Facilidade de executar o script com a app já instalada ou instalando pela primeira vez, além de enviar comandos para reset de dados
    • Escolha da linguagem de programação, suportando as linguagens de desenvolvimento para estas plataformas (Swift para iOS, Java para Android, Javascript para Ionic, C# para Xamarin, etc…)
    • Possibilidade facilitada da escolha de dispositivos para execução: real, simulado ou na núvem
    • Facilidade de execução de testes em uma grid ou em paralelo
    • Possibilidade de executar ações fora do contexto da app (automatizar funções do próprio iOS ou Android)
    • Facilidade de execuções de ações específicas, como swipe, drags, acesso a notificações
    • Ser uma API, o que dá a possibilidade de criar qualquer arquitetura e aplicar qualquer padrão de projeto, como tirar screenshots sob demanda, gerar logs com frameworks externos, etc…

    4 - Quais linguagens de scripts você aplica no Appium?
    Em todas minhas consultorias foi em Java, mas já fiz scripts com C# e Javascript.

    5 - Os testes que você aplica têm compatibilidade em quais plataformas (Android/iOS)?
    Ambas: iOS e Android, tanto em contexto nativo quanto híbrido

    6 - Você aplica o teste em caixa branca?
    Com Appium ou qualquer framework de automação é praticamente impossível.
    O que tu tens como “testes em caixa branca”?

    7 - Você realiza screenshots no Appium?
    Sim. Geralmente tenho uma classe de utils no projeto de automação e tiro ou screenshots por demanda e sempre que um erro ocorre.

    8 - Você realiza a coleta de logs durantes os testes?
    Sim. E também gero logs próprios do script de automação.

    Pode parecer suspeito, por eu dar treinamento e consultoria na ferramenta e de falar dela em várias palestras, mas pra mim, atualmente, ela é a melhor ferramenta de automação mobile.

    No último projeto que eu prestei consultoria, junto com o @julio-lima, nós criamos uma arquitetura bem completa com scheduler, logs, screenshots de evidências e executávamos os scripts em 24 dispositivos de forma simultânea quase que 24/7.

    Abraço!


  • MVP

    1 - Você usa quais ferramentas para realizar os testes de automatização mobile?

    Só vale atualmente ou posso puxar o histórico ?

      1. Android - Espresso, Robotium, Selendroid, UIAutomator
      1. iOS - XCTest , Earlygrey, Frank, ios-driver, KIF
      1. Ambos - Appium, Calabash, IBM RTW

    2 - O que mais você priorizaria para alavancar em desenvolvimento de teste mobile no Appium?
    Ai está. Eu não priorizo, só se torna uma necessidade se o time em que vai utilizar não possui tanta experiencia em automação e seus problemas.

    3 - Argumenta sobre os prós e contras do Appium.
    Prós

    • Suporte a muitas linguagens de programação
    • Comunidade grande e bem ativa
    • Muitos exemplos e gente usando pelo mundo
    • Webdriver “like”

    Contra

    • Depender sempre a “estrutura oficial” de cada empresa (Ou seja, sempre depender do que é permitido por eles… Isso é com qualquer framework, não tem o que fazer…)
    • Lag com UIAutomation (1s além do que a apple já insere por conta…)
    • Aumentar razoavelmente “flaky tests” senão houver um código limpo para rodar.
    • Instrumentação relativamente lenta.

    4 - Quais linguagens de scripts você aplica no Appium?
    Java, Javascript e Python…Mas por algumas diferenças em Python, sempre fiquei mais “preso” em Java.

    5 - Os testes que você aplica têm compatibilidade em quais plataformas (Android/iOS)?
    Yeap, Android e iOS.

    6 - Você aplica o teste em caixa branca?
    Com XCTest e Espresso, até existe uma possibilidade…Com Appium não.

    7 - Você realiza screenshots no Appium?
    Hum…Depende muito, só quando vejo motivo…Senão é mais código para ter que apontar…

    8 - Você realiza a coleta de logs durantes os testes?
    Com Appium senão fizer isso , “flaky tests” ficarão mais “flaky” heheheh



  • Boa tarde a todos,

    Estou lisonjeada pela disposição de vocês determinarem um tempo para responder a pesquisa.
    Portanto, tem mais duas perguntas para complementar.

    9 - Quais ferramentas você utiliza para auxiliar na criação de scripts? (UIAutomator,etc)

    10 - Qual a sua opinião sobre record-and-play?

    Cordialmente,
    Camila Dias.



  • @Camila-Dias
    eita… Desculpe mas não entendi a pergunta 9… rs
    Se for referente a inspeções, etc… eu uso o UIAutomatorViewer para aplicações nativas (quando uso o Appium). Quando é algo fora do Appium vai da ferramenta… usando Espresso eu vejo diretamente nos layout e código e com Calabash na própria ferramenta CLi dele.

    No iOS eu uso o Appium.app para inspecionar e o Accessibility no emulador.
    Em apps híbridas eu uso o Google Chrome Inspector.

    10 - Qual a sua opinião sobre record-and-play?
    Olha, tem seus ganhos se tu souber exatamente o que a ferramenta gera e souber depois alterar/ajustar o script, mas o ideal é tu não usar alguma função de record and play justamente para entender o que o script faz, onde pode ter algum ponto assíncrono (espera) e saber principalmente alterar o script em casos de erro.


  • MVP

    @Camila-Dias :

    • 9 - Quais ferramentas você utiliza para auxiliar na criação de scripts? (UIAutomator,etc)
      Depende do auxílio que quis dizer. Inspeção de elementos é ver no código, UIautomatorView, Accessibility Inspector, por ai vai.
      Se é para validar um comando que queria fazer, usando frames nativos (Espresso ou XCTest por exemplo)
      Se é Validar se os elementos estão presente, tem como fazer isso em teste unitário (dai cai mais a tua pergunta de caixa branca e tal…)

    Tá meio indefinido ai essa pergunta, tem como elaborar ela melhor?

    • 10 - Qual a sua opinião sobre record-and-play?
      alt text

    Mas brincadeiras a parte, se for usando os recursos nativos de Android e iOS (ou seja, android studio e xcode), tem um ganho para ver os tratamentos que precisa elaborar quando se está criando um teste…



  • @ said in Automação de Testes Mobile com Appium:

    Oi Camila, tudo bem?
    Eu venho ha pouco mais de dois anos ministrando treinamentos sobre Appium e também dando consultorias referente a testes para dispositivos móveis.

    Vou responder também como o Luiz fez, complementando com minha experiência.

    1 - Você usa quais ferramentas para realizar os testes de automatização mobile?
    Eu uso uma gama não tão grande com as seguintes ferramentas:

    • Calabash (Android e iOS)
    • Espresso (Android)
    • Appium (Android, iOS e Híbrido)
    • Robotium (Android e Híbrido)

    2 - O que mais você priorizaria para alavancar em desenvolvimento de teste mobile no Appium?
    Não entendi muito bem… Seria os pontos prós e contras abaixo ou outra questão?

    3 - Argumenta sobre os prós e contras do Appium.
    Contras
    Não consigo enxergar um contra realmente frente a outras ferramentas de teste mobile.
    Talvez só o conjunto de alguns passos de pré condições antes de executar os testes para iOS em dispositivos reais.

    Prós

    • DSL de fácil aprendizado
    • Utilizar os frameworks internos de teste de cada tecnologia (UIAutomation do iOS, UIAutomator do Android e WebDriver para Híbrido)
    • Facilidade de troca de contexto de apps nativas para híbridas e vice-versa no mesmo script
    • Facilidade de executar o script com a app já instalada ou instalando pela primeira vez, além de enviar comandos para reset de dados
    • Escolha da linguagem de programação, suportando as linguagens de desenvolvimento para estas plataformas (Swift para iOS, Java para Android, Javascript para Ionic, C# para Xamarin, etc…)
    • Possibilidade facilitada da escolha de dispositivos para execução: real, simulado ou na núvem
    • Facilidade de execução de testes em uma grid ou em paralelo
    • Possibilidade de executar ações fora do contexto da app (automatizar funções do próprio iOS ou Android)
    • Facilidade de execuções de ações específicas, como swipe, drags, acesso a notificações
    • Ser uma API, o que dá a possibilidade de criar qualquer arquitetura e aplicar qualquer padrão de projeto, como tirar screenshots sob demanda, gerar logs com frameworks externos, etc…

    4 - Quais linguagens de scripts você aplica no Appium?
    Em todas minhas consultorias foi em Java, mas já fiz scripts com C# e Javascript.

    5 - Os testes que você aplica têm compatibilidade em quais plataformas (Android/iOS)?
    Ambas: iOS e Android, tanto em contexto nativo quanto híbrido

    6 - Você aplica o teste em caixa branca?
    Com Appium ou qualquer framework de automação é praticamente impossível.
    O que tu tens como “testes em caixa branca”?

    7 - Você realiza screenshots no Appium?
    Sim. Geralmente tenho uma classe de utils no projeto de automação e tiro ou screenshots por demanda e sempre que um erro ocorre.

    8 - Você realiza a coleta de logs durantes os testes?
    Sim. E também gero logs próprios do script de automação.

    Pode parecer suspeito, por eu dar treinamento e consultoria na ferramenta e de falar dela em várias palestras, mas pra mim, atualmente, ela é a melhor ferramenta de automação mobile.

    No último projeto que eu prestei consultoria, junto com o @julio-lima, nós criamos uma arquitetura bem completa com scheduler, logs, screenshots de evidências e executávamos os scripts em 24 dispositivos de forma simultânea quase que 24/7.

    Abraço!

    Oi Guest,
    queria seu contato para treinamento appium.