Você está na página 1de 17

GUIA SOBRE

TESTES AUTOMATIZADOS

EM APLICATIVOS MOBILE
Conheça essa prática e saiba porque você deve realizar

Evolução dos acessos

em dispositivos mobile:

Faz anos que a utilização de


celulares é parte das nossas DEZ 2012 DEZ 2022
vidas, inclusive são mais
utilizados que computadores na 15%
atualidade. O comparativo dos 62%
últimos 10 anos é surpreendente.
Em dezembro de 2012, somente
15% das pessoas usavam
dispositivos móveis, contra 85% 85% 39%
que utilizavam computadores.
Hoje este gráfico é totalmente
diferente, de 15% passamos para
quase 62% na utilização de
celulares, enquanto os desktops
caíram para menos de 39%.

Fonte: https://gs.statcounter.com/platform-market-share/desktop-mobile/worldwide/#monthly-201212-202212
Em 2019 chegamos ao marco de 204 bilhões de aplicativos mobile

baixados, sendo constatado que, na média, uma pessoa possui

aproximadamente 40 aplicativos instalados no celular.

Quando lançamos um aplicativo,

queremos ser um destes 40 instalados

e, para que isso seja possível, precisamos

garantir que o mesmo seja relevante,

intuitivo e sem bugs, ou seja, um

aplicativo com qualidade.

Porém, algumas vezes o processo de qualidade pode ser bastante custoso para a

empresa e dependendo do tamanho e complexidade do aplicativo, os testes manuais

podem levar dias, até semanas para serem realizados. Nas aplicações WEB, temos a

solução de realizar a escrita de scripts de automação dos testes para diminuir o

tempo de execução, mas ainda existe muita dúvida sobre a possibilidade de realizar

essa mesma automação em aplicativos mobile. E sim, isso é possível, e é exatamente

sobre essa técnica aplicada ao mobile que falaremos neste E-book.


O QUE VOCÊ ENCONTRARÁ NESTE E-BOOK:

01 02 03 04 05
Diferença entre
Aplicativos
Ferramentas e
Execução local
Limitações
automação
Nativos, Híbridos
linguagens para
e Device Farms
WEB e MOBILE e PWA automação mobile
Página 04 Página 06 Página 08 Página 12 Página 14

Sobre o autor: Mateus Freitas


Engenheiro de teste de software
Como comentado anteriormente, é possível realizar a automação
dos testes para aplicativos mobiles, e esta prática está em alta no
mercado. Em alguns aspectos as automações WEB e MOBILE são
bem parecidas, podemos realizar os mesmos testes (E2E, Carga,
Regressão, etc.), e algumas vezes usando até os mesmos

01
frameworks e linguagens de programação (Selenium, Java, Junit,
etc.). Porém, existem diversas diferenças entre a execução da
automação para aplicações mobile e WEB.

Quando tratamos de sistemas WEB, estamos acessando o site


através de um navegador, como, por exemplo, o Chrome, Firefox
ou Safari, que está instalado em um computador com um
Diferença entre
sistema operacional qualquer. O navegador ficará responsável por
realizar a comunicação com o servidor que hospeda o website, e
automação
exibir o conteúdo para o usuário, independente do navegador
instalado. Deste modo, sempre teremos os mesmos elementos,
WEB e MOBILE indiferente do SO (Sistema Operacional), bem como sua
execução.

04
Já quando falamos de aplicação MOBILE
é bem diferente, pois é criada automação
para executar diretamente no SO do
celular, e não para rodar em um
navegador (com algumas exceções, que
serão apresentadas a seguir). Ademais,
dispositivos móveis tem limitações
quando comparados a um computador,
possuem uma tela menor, menos
processamento, menor armazenamento,
variações de internet (Wi-Fi e dados
móveis), etc. Além das limitações,
existem as ações que só celulares
realizam, como biometria, FaceID, toques
touch, gestos, entre outras, fazendo assim
com que a automação tome um caminho $
01
bem diferente das aplicações WEB.

Outra diferença que podemos citar é que


devido à abundância de usuários mobile,
o desenvolvimento das aplicações
também mudou. Hoje, as aplicações
Diferença entre
WEB são mais B2B (Business-to-
business), enquanto as aplicações
automação
MOBILE são mais B2C (Business-to-
consumer), o que também impacta um
WEB e MOBILE pouco no momento de escolher as
ferramentas para automação.

05
Agora que entendemos a diferença entre

uma aplicação WEB e um aplicativo MOBILE,

também temos que entender que existem

diferenças entre os devices da população.

Hoje existem 2 grandes sistemas operacionais quando falamos de dispositivos


móveis: Android e iOS. Conforme o GS Stat Counter, cerca de 72% dos celulares
do mundo rodam Android, contra quase 27% que rodam iOS. Por serem dois
sistemas diferentes, os aplicativos são construídos de maneiras diferentes também.

02 Quando pegamos para analisar os


aplicativos de iOS, eles abrangem
uma quantidade menor de
Já o Android é mais abrangente,
por ser um sistema open-source
(de livre utilização) usado por
dispositivos e versões do SO, várias empresas. Além disso, é
Aplicativos
principalmente por ser um sistema comum realizarem uma
operacional de código fechado, personalização no sistema, dando
Nativos, Híbridos
onde é a Apple quem dita quais a sua própria “marca” ao Android,
versões do SO existem e quais os como por exemplo, a Samsung,
e PWA devices que podem rodá-las. que utiliza o OneUI, a Xiaomi com
o MIUI e muitas outras, o que
também impactará em como o
aplicativo irá se comportar.
06
Devido a essas diferenças, os aplicativos mobiles são divididos em 3 categorias:

Nativos, Híbridos e PWA (Progressive Web Application).

Aplicativos Nativos são desenvolvidos Aplicações Híbridas são uma mistura Por último, temos as Web-App,
especialmente para um sistema do desenvolvimento nativo e WEB. também conhecidas como PWA.
operacional, com uma linguagem de Com essa abordagem é possível ter Nesta abordagem, diferente dos
programação específica. As vantagens somente um código para as duas aplicativos híbridos e nativos, o
deste desenvolvimento é que os plataformas mobiles, e usando as usuário não instala um aplicativo
aplicativos ficam mais rápidos e linguagens de programação para através das lojas do SO (AppStore
performáticos. Porém, caso queira WEB, como HTML, CSS, JavaScript, ou Play Store), ele acessa um link que
que este aplicativo esteja disponível TypeScript entre outras. Essa direciona para uma aplicação WEB
tanto para Android quanto para iOS, abordagem consegue unir o melhor (website), através do navegador do
então será necessário manter dois dos dois mundos, e mesmo assim celular. Apesar de parecer que
códigos separados, tendo assim um conseguindo criar uma aplicação estamos usando um aplicativo, é o
trabalho dobrado para a equipe de performática. navegador programado para exibir
desenvolvimento. desta maneira responsiva. 

02
Aplicativos

Nativos, Híbridos

e PWA 07
03 Assim como na automação WEB, existem diversos
frameworks e linguagens de programação que
podemos usar para escrever os scripts para a
versão mobile. Algumas ferramentas são
específicas para um sistema operacional, e outras
Ferramentas e
funcionam em ambos. A seguir, citaremos
linguagens para
algumas ferramentas que estão em alta no
mercado, mas claro, existem muitas outras.
automação mobile

08
Uma das principais ferramentas do mercado é o Appium.

Com ele conseguimos realizar automação tanto para iOS


quanto para Android, sendo possível rodar em devices
físicos e emulados. Além disso, utiliza o WebDriver do
Selenium, fazendo assim com que possua suporte para
diversas linguagens de programação, como Java,
JavaScript, Python, Ruby e muitas outras

O projeto do Appium é open-source e possui uma filosofia


muito interessante, que foca em automatizar qualquer
aplicativo mobile, de qualquer linguagem de programação,
utilizando qualquer ferramenta de teste, tornando-o assim
muito versátil e útil em qualquer ambiente.

03
Ferramentas e

linguagens para

automação mobile 09
Quando falamos de testes em dispositivos iOS,

um dos principais nomes que aparecem é o XCUITest.


Esta é uma ferramenta integrada ao
func checkText() {

Xcode da Apple, e com ela é possível


let obj = XCUIApplication()

rodar testes de interface gráfica em


obj.otherElements.containing(.image, identifier:"Automacao").element.tap()

aplicativos iOS. Por ser uma ferramenta


obj.buttons["Saiba mais"].tap()

mais integrada com o desenvolvimento,


XCTAssert(obj.staticTexts["Testes de iOS com XCUITest"].exists)

somente suporta Objective-C e Swift


}
como linguagens de programação.
Umas das vantagens desta ferramenta
Exemplo de código de automação do XCUITest
é que o time de desenvolvimento e
testes ficam mais próximos, visto que
usam a mesma linguagem para a
automação e para o desenvolvimento,
gerando então mais confiança para os
próprios desenvolvedores criarem seus
scripts de automação. Sem contar que,
por ser uma ferramenta nativa, os testes
são mais performáticos e confiáveis.

03
Ferramentas e

linguagens para

automação mobile 10
Semelhante ao iOS, o Android também tem uma
ferramenta própria de testes, chamada Espresso.

A sua ideia é bem parecida com a do


XCUITest, ter uma ferramenta integrada com @Test

o desenvolvimento, que suporta somente as fun greeterSaysHello( ) {

linguagens usadas para desenvolver os onView(withId(R.id.name_field)).perform(typeText(“Mateus”))

aplicativos (Java e Kotlin). Com essa onView(withId(R.id.greet_button)).perform(click())

abordagem, os testes automatizados de UI onView(withText(“Olá Mateus!”)).check(matches(isDisplayed()))

(interface do usuário) ficam mais próximos }

do time de desenvolvimento, e por ser uma


ferramenta mais fácil de aprender, os Exemplo de código de automação do Espresso

próprios desenvolvedores podem se


aventurar e criar suas automações.

Ferramentas e

03 linguagens para

automação mobile 11
Até aqui conseguimos entender as diferenças de um
aplicativo web e mobile, tipos de aplicações e

04
ferramentas de automação, mas ainda não falamos
onde essa execução é realizada.

Como comentado anteriormente, existem diversas


versões de dispositivos que rodam os sistemas
operacionais mobiles. Quando falamos de iOS, temos
Execução local
aproximadamente 20 a 25 versões, porém, quando o
assunto é Android, essa quantidade é exorbitante,
e Device Farms visto que muitas empresas usam esse sistema
operacional (Samsung, Xiaomi, Motorola, entre outras).

12
Quando testamos nossos aplicativos, temos que
garantir que funcionem em todas as versões atuais
dos SO’s, mas fazer isso com devices físicos é
inviável, levando os testadores a usarem
emuladores, rodando com as versões desejadas de
cada SO.

Entretanto, manter dezenas de emuladores Dentre essas empresas voltadas às


atualizados e rodando é bastante trabalhoso, sem Device Farms, temos algumas que se
contar na quantidade de processamento requerido. destacam, como BrowserStack e AWS
Device Farm. Seus serviços podem
Pensando nessas dificuldades, começaram a surgir variar, mas de modo geral são vendidos
as Device Farms, um sistema (normalmente pago), na forma de pacote, no qual o usuário
paga para acessar um ou diversos
que disponibiliza diversas versões de celulares e devices, e pode ser cobrado por tempo
sistemas operacionais sobre demanda, para que o de execução dos dispositivos.
time de desenvolvimento consiga testar suas
aplicações de forma rápida e fácil, sem se
preocupar com as manutenções dos devices e
emuladores.

04 Execução local

e Device Farms
13
Com o aumento da quantidade de dispositivos
móveis e da quantidade de aplicativos, um ponto
que chama atenção é a segurança.

05
Por isso, as fabricantes disponibilizam algumas
soluções nativas para que os desenvolvedores
apliquem nos aplicativos, como biometria e FaceID.
Além dessas, também possuímos os 2FA
(autenticação de dois fatores) e captcha. Nestes
Limitações casos, a automação não é aplicada, e caso o
aplicativo testado possua uma dessas etapas, o
correto é solicitar que sejam desativadas para que a
automação prossiga, visto que o intuito dessas
tecnologias é justamente não serem burladas.
14
E a sua empresa já trabalha com testes
automatizados? Nossos especialistas estão
preparados para propor soluções que melhor
se adequem as necessidades do cliente no
que diz respeito a testes automatizados.

Fale gratuitamente com um consultor


clicando aqui!

(51) 9 9233-8382 atendimento@testingcompany.com.br Matriz | Pedro Adams Filho, 5857 - Centro, NH - RS


https://www.linkedin.com/company/testing-
https://www.facebook.com/TestingCompany
testingcompanytc company-qualidade-software/mycompany/
https://www.facebook.com/TestingCompany https://www.linkedin.com/company/
testing-company-qualidade-
software/mycompany/
www.youtube.com/@testingcompanytc/videos https://www.linkedin.com/company/testing-

pany

pany
company-qualidade-software/mycompany/

https://www.linkedin.com/company/testing-
company-qualidade-software/mycompany/
https://www.facebook.com/TestingCom

https://www.facebook.com/TestingCom

https://www.linkedin.com/company/
pany

https://www.linkedin.com/company/testing-
pany
testing

company-qualidade-software/mycompany/
https://twitter.com/testingcompany

https://www.facebook.com/TestingCom
https://www.facebook.com/TestingCom

testing-company-qualidade-
compan
https://twitter.com/testingcompany

ytc

software/mycompany/
qualidade-software/mycompany/
company/testing-company-
https://www.linkedin.com/
https://twitter.com/testingcompany
https://twitter.com/testingcompany

testingcompanytc https://www.linkedin.com/company/
testing-company-qualidade-
software/mycompany/

Você também pode gostar