Automação Mobile - Dicas

Buenas!

Fui desafiado no #agiletesters para falar um pouco sobre automação mobile.
Sendo assim, vou abordar algumas coisas que "pentelham" um pouco na hora de fazer automação, (lembrando que nem tudo é dificuldade técnica).

"Well", vamos lá:

1) Propósito/Objetivo: Ano passado listei isso como dica e hoje continuo fazendo isso. Por que?? Exatamente, por que TODA automação precisa de um propósito, já vi gente conversando em ter automação em alguns projetos,vários dispositivos, tempo de execução, blá blá blá...; mas você já parou para analisar, se no seu contexto e no local onde trabalha isso é viável? Se o projeto suporta isso? É engraçado, mas já vi projetos de automação que eram maiores que a aplicação em si. Na minha visão isso é MUITO errado,é preciso entender o que está testando, como está testando e ver a viabilidade de ter a automação. Por mais, que seja complicado testar manualmente, as vezes, o contexto em que se trabalha vai tornar a automação uma tarefa mais complicada, (tenha isso sempre em mente).

2) Fragmentação: Isso é um problema. Fato.
O grande vilão: ANDROID. Ele é o sistema que mais tem fragmentação no mercado,e com cada empresa fazendo a sua modificação, sim samsung, me refiro a você , fica gerando certos padrões de "bugs",
mas podemos contornar, um pouco, tendo em vista alguns pontos:
1) API mínima suportada no projeto; 2) Aparelhos mais vendidos; 3) Ter alguns aparelhos "in house"; Item 3 pode ser uma incomodação, por isso, tenha sempre como um plano B rodar seus testes na nuvem.
Para isso, existem alguns serviços que podem ajudar:

AWS Device Farm

Sauce Lab

Xamarin Test Cloud

Testdroid

Perfecto Mobile

3) App "write any language, compile native": Quando falo isso, me refiro a soluções escreva em qualquer linguagem e compile um app nativo, esse tipo de aplicação tende a ter muitas "camadas" nos elementos e com isso a captação torna-se um trabalho tortuoso. Para esse tipo de app,tente sempre pegar um exemplo, (ou pedir, se não achar na internet), para ver a dificuldade que irá enfrentar.

4) "Unexpected behaviors": Então..., tudo ajustado..., script configurado..., tudo no seu devido lugar, e então, do nada, vem uma mensagem de um outro app no meio da sua automação? É amiguinho, pode acontecer,por isso, verifique sempre se, ao utilizar um equipamento, ele se encontra sem outras aplicações rodando (ou se estejam rodando, pelo menos não interfiram no seu teste).

5) Ferramentas: Item mais delicado de se conversar. Devido a falta de maturidade de *TODAS as ferramentas de automatização, a escolha precisa ser bem cautelosa em relação a qual usar. Essa pesquisa, depende muito do que sabe de automação e como consegue "contornar" um problema. Segue algumas ferramentas, para se estudar um pouco:
Open source:

1) Appium - iOS/Android
2) Calabash - iOS/Android
3) KIF - iOS
4) Robotium - Android
5) EarlGrey - iOS
6) espresso - Android
7) iOS driver (Muito em desuso)
8) Selendroid (Muito usado com o Appium, para versões antigas de android

Pagas:
1) IBM RTW
2) Ranorex
3) Squish

*Nem as ferramentas pagas tem maturidade para gerar um teste automatizado de qualidade. Atualmente, Appium é a ferramenta com mais maturidade, pois tem um suporte grande por parte da comunidade

BÔNUS: Talvez, você esteja em um projeto que possua uma galera "taradinha por relatórios. Algo do tipo: "relatório da máquina de café".
Para isso, tenho dois tipos de frameworks que uso para montar relatórios:

ExtentReports allure Caso use CI, ignore esse bônus ( hehehehe)

alt