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!


@eliasnogueira

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.


@eliasnogueira

@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…

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.